以编程方式更改UITabBarControllers tabBar属性的类

问题描述 投票:2回答:1

基本上,我想更改选项卡栏的高度,为此,我找到了通过对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];

但是该属性是只读的。

ios uitabbarcontroller uitabbar
1个回答
0
投票

我不确定Objective-C,但可以在Swift中通过将tabBar覆盖为computed property

open class MyTabBarController: UITabBarController {
    open override var tabBar: MyTabBar {
        return MyTabBar()
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.