Как получить высоту панели вкладок программно? - PullRequest
51 голосов
/ 22 марта 2011

Я обнаружил, что высота UITabBar составляет 49 пикселей (или 50 пикселей, в зависимости от источника).

Поскольку я не люблю использовать слишком много жестко закодированных значений в своем коде, яМне было интересно, можно ли программно получить высоту панели вкладок.

С уважением,
Нильс Р.

PS: я спрашиваю, потому что у меня есть представлениеконтроллер (с представлением списка, содержащим текстовые поля), который либо просто выдвигается навигационным контроллером (pushViewController), либо представляется как модальный (presentModalViewController).Как только появится клавиатура, размер представления уменьшится, но я должен принять во внимание, что панель вкладок видна только тогда, когда контроллер представления нажат и не представлен как модальный.

Ответы [ 7 ]

131 голосов
/ 22 марта 2011

Я не совсем понимаю ваш P.S., но вы можете сделать:

tabBarController?.tabBar.frame.size.height
14 голосов
/ 16 июня 2015

Если вы хотите получить стандартную высоту для элемента управления UITabBar, вы можете сделать:

    UITabBarController *tabBarController = [UITabBarController new];
    CGFloat tabBarHeight = tabBarController.tabBar.frame.size.height;
10 голосов
/ 19 июня 2015

красивее

CGRectGetHeight(self.tabBarController.tabBar.frame)
3 голосов
/ 09 октября 2017

проверьте это в своем виртуальном канале

bottomLayoutGuide.length
3 голосов
/ 01 июня 2017

В Swift 3 вы можете получить высоту UITabBar с помощью этого кода ниже.

self.tabBarController!.tabBar.frame.size.height

, который вернет CGFloat значение высоты

1 голос
/ 22 марта 2011

UITabBar наследуется от UIView, пока у вас есть доступ к вашему экземпляру UITabBar, вы можете получить доступ и изменить фрейм UITabBar,

CGRect myRect = myTabBar.frame;
1 голос
/ 22 марта 2011

Если объект основан на UIView (что большинство визуальных элементов в библиотеке), вы можете получить размер из "кадра" ivar.

...