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

Jon*_*ang 5 uitabbarcontroller uitabbar ios

基本上我想更改选项卡栏的高度,为此,我找到了多个通过子类化 UITabBar 来工作的解决方案。

然而,要在选项卡控制器中实际使用该子类,他们(其他SO线程中的人)似乎告诉我在故事板中更改它(子类)。但是我正在使用的应用程序以编程方式创建选项卡控制器,因此我无法更改故事板中的子类。

这是一个 SO 问题的示例,其中发布了解决方案,但它使用故事板来使用新的选项卡栏控制器子类。

所以。有没有办法在我的 UITabBarController 中使用我的子类 UITabBar?


例如。假设我从这个线程中获取解决方案,改变 iOS7/8 中 UITabBar 的高度?

@implementation MyTabBar

-(CGSize)sizeThatFits:(CGSize)size
{
    CGSize sizeThatFits = [super sizeThatFits:size];
    sizeThatFits.height = 100;

    return sizeThatFits;
}

@end
Run Code Online (Sandbox Code Playgroud)

现在。如何使用此类 (MyTabBar) 作为我以编程方式构建的 UITabBarController 中选择的选项卡栏。

我的第一个想法是做类似的事情

self.tabBar = [[MyTabBar alloc] init];
Run Code Online (Sandbox Code Playgroud)

但该属性是只读的。

Col*_*i88 1

我不确定,Objective-C但您可以通过覆盖为计算属性Swift来做到这一点:tabBar

open class MyTabBarController: UITabBarController {
    open override var tabBar: MyTabBar {
        return MyTabBar()
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 这似乎不起作用。还有什么需要做的吗? (2认同)

归档时间:

查看次数:

2241 次

最近记录:

6 年,6 月 前