基本上我想改变标签栏的高度,为此,我找到了多个通过子类化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];
但该财产是只读的。
答案 0 :(得分:0)
我对Objective-C
不确定,但在Swift
中您可以通过将tabBar
覆盖为computed property来实现此目的:
open class MyTabBarController: UITabBarController {
open override var tabBar: MyTabBar {
return MyTabBar()
}
}
答案 1 :(得分:0)
您可以将自定义的UITabBar子类替换为UITabBarController的标签栏,但前提是必须在情节提要中创建标签栏控制器。对于用代码创建的选项卡栏控制器,无法做到这一点。