2017-12-05 26 views
1

아이템의 너비를 얻으려면 UITabBar 너비를 얻고 싶습니다. 이를 위해 , 내가 사용 : 내가 얻을 폭이 잘못된 것 같습니다 그러나스토리 보드를 사용하는 UITabBar 너비

let itemWidth = tabBar.frame.size.width/tabBar.items.count 

...

tabBar.frame.size.width 미리보기의 따라 스토리 보드에 나에게 한 tabBar의 폭을 제공합니다 ...

내 스토리 보드 미리보기가 로 설정되어있는 경우 코드가 아이폰 5S에서 실행되는 경우에도 다른 말로

, 아이 패드 프로 12.9 ", tabBar.frame.size.width1024.0를 반환합니다.

무엇이 여기에 있습니까?

답변

1

UITabBar의 크기 은 기능이 실행 된 후에 만 ​​정확한이됩니다. 하위 클래스는 UITabBarController이고, 탭 막대의 크기는 viewDidLayoutSubviews()입니다.

class CustomTabBarController: UITabBarController { 
    override func viewDidLayoutSubviews() { 
     super.viewDidLayoutSubviews() 

     print(tabBar.frame.width) //this will print the actual width 
    } 
} 
+1

굉장! 감사 ! 'layoutSubviews'가 Storyboard에 표시된 것과 같은 값이었던 이유는 무엇입니까? (설명이있는 경우 ....) – Azartys

+0

간단합니다. 프로그래밍 방식이 아닌 뷰의 초기 크기는 ** 항상 ** Interface Builder에서 설정 한 것입니다. – the4kman