Ответ 1
Я не полностью понимаю вашу P.S., но вы можете сделать:
tabViewController.tabBar.frame.size.height
Я выяснил, что высота UITabBar равна 49px (или 50px, в зависимости от источника).
Поскольку мне не нравится использовать слишком много закодированных значений в моем коде, мне было интересно, можно ли программно получить высоту табло.
С уважением,
Нильс Р.
PS: Причина, по которой я спрашиваю, заключается в том, что у меня есть контроллер представления (со списком, содержащим текстовые поля), который либо просто нажимается навигационным контроллером (pushViewController), либо представлен как модальный (presentModalViewController). Как только появляется клавиатура, размер представления уменьшается, но я должен учесть, что табба видна только тогда, когда контроллер представления нажат и не представлен как модальный.
Я не полностью понимаю вашу P.S., но вы можете сделать:
tabViewController.tabBar.frame.size.height
Если вы хотите получить стандартную высоту для элемента управления UITabBar, вы можете сделать следующее:
UITabBarController *tabBarController = [UITabBarController new];
CGFloat tabBarHeight = tabBarController.tabBar.frame.size.height;
красивее
CGRectGetHeight(self.tabBarController.tabBar.frame)
В Swift 3
вы можете получить высоту UITabBar
с помощью этого кода ниже.
self.tabBarController!.tabBar.frame.size.height
Что вернет значение CGFloat
высоты
Если объект основан на UIView (большинство визуальных элементов в библиотеке), вы можете получить размер из кадра "ivar".
UITabBar
наследуется от UIView
, пока вы имеете доступ к вашему экземпляру UITabBar, вы можете получить доступ и изменить кадр UITabBar,
CGRect myRect = myTabBar.frame;
проверьте это в своем vc
bottomLayoutGuide.length