【发布时间】:2017-03-17 07:44:03
【问题描述】:
基本上我想改变标签栏的高度,为此,我找到了多个通过继承 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];
但该属性是只读的。
【问题讨论】:
-
@Sneak 抱歉,我添加了更多信息。而且您发布的链接与我遇到的问题无关。
-
我唯一的问题是——如何以编程方式更改 UITabBarController 上的 tabBar 属性的类。不多也不少。
-
如果您查看我提供的链接 - 子类化 UITabBar 本身确实有效。但它需要一个故事板。我的问题很简单,如果我可以在没有情节提要要求的情况下做他们所做的事情。
-
我的问题是是否可以这样做。我目前正在使用您在我的解决方案中描述的方式。但我很好奇它是否有效,因为它感觉比更换框架更干净。因此问题本身。
-
当然是一个UIView的扩展。子类化它,然后正如我再次所说,子类化一个自定义“UITabBarController”并在您的自定义类中覆盖它作为我提供的链接,使用您的 UITabBar 的子类完成 UITabBarController 已经为您完成的工作并实现所有链接提供的委托方法。但是,正如我所说,当您被交给 UITabBarController 来为您完成这项工作时,我看不出您想要这样做的原因。另外,您的问题是关于高度的。
标签: ios uitabbarcontroller uitabbar