基本上,我想更改选项卡栏的高度,为此,我找到了通过对UITabBar进行子类化而起作用的多种解决方案。
然而,他们(其他SO线程中的人)似乎实际上是在选项卡控制器中使用该子类,似乎告诉我在情节提要中对其进行更改(该子类)。但是我正在使用的应用程序以编程方式创建了选项卡控制器,因此我无法在情节提要中更改子类。
这里是发布解决方案的SO问题的示例,但是它使用情节提要来使用新的选项卡栏控制器子类。
所以是否可以在UITabBarController中使用子类化的UITabBar?
例如。假设我从该线程changing the height of UITabBar in iOS7/8?
中获取解决方案@implementation MyTabBar
-(CGSize)sizeThatFits:(CGSize)size
{
CGSize sizeThatFits = [super sizeThatFits:size];
sizeThatFits.height = 100;
return sizeThatFits;
}
@end
现在。如何在以编程方式构建的UITabBarController中使用此类(MyTabBar)作为选项卡栏。
我最初想到的是做类似的事情
self.tabBar = [[MyTabBar alloc] init];
但是该属性是只读的。
我不确定Objective-C
,但可以在Swift
中通过将tabBar
覆盖为computed property:
open class MyTabBarController: UITabBarController {
open override var tabBar: MyTabBar {
return MyTabBar()
}
}