iOS 5 中的 UITabBar 高度
Posted
技术标签:
【中文标题】iOS 5 中的 UITabBar 高度【英文标题】:UITabBar height in iOS 5 【发布时间】:2012-05-24 16:51:55 【问题描述】:随着 ios 5 中新的自定义 API,是否可以增加 UITabBar 的高度?如果不是,如果我想针对 iOS 5,有哪些开源选项? 谢谢
【问题讨论】:
【参考方案1】:我自定义UITabBarController的tabbar的方式是先自定义UITabBarController本身。
UITabBarcontroller 里面有两个子视图。一个 UITransitionView 和一个 UITabBar。 UITransitionView 是屏幕上半部分放置视图控制器的区域。
为了自定义UITabbar的高度,还需要编辑UITransitionView的frame。所以,例如,如果你想改变高度,你可以这样做;
[[tabbarController.view.subviews objectAtIndex:0] setFrame:CGRectMake(0, 0, 320, 440)];
[tabbarController.tabBar setFrame:CGRectMake(0, 440, 320, 50)];
这将创建一个 50 px 高度的标签栏,(默认为 48 px)
【讨论】:
【参考方案2】:你可以写一个UItabbar的类别
这里是代码:
.h 文件:
#import <UIKit/UIKit.h>
@interface UITabBar (NewSize)
- (CGSize)sizeThatFits:(CGSize)size;
@end
.m 文件:
#import "UITabBar+NewSize.h"
@implementation UITabBar (NewSize)
- (CGSize)sizeThatFits:(CGSize)size
CGSize newSize = CGSizeMake(size.width,44);
return newSize;
@end
然后
#import "UITabBar+NewSize.h"
self.tabBarController = [[UITabBarController alloc] init];
[self.tabBarController.tabBar sizeThatFits:CGSizeMake(320, 44)];
self.tabBarController.tabBar.shadowImage = [[UIImage alloc]init]; //delete the default tabbar shadow!
【讨论】:
【参考方案3】:UITabBar
无法做到这一点。我建议你创建自己的UIToolBar
,让它看起来像一个tabBar,你可以添加UIButtons
,让它看起来像tabBarItems
。
它将看起来像tabBar
,并为您提供了很大的自定义空间,您还可以向其添加超过 5 个选项卡并在按钮之间实现“滚动”动画。 :)
【讨论】:
【参考方案4】:我建议BCTabBarController。我在我的一个项目中使用了它,效果很好。不过,您仍然需要对其进行自定义。
【讨论】:
【参考方案5】:使用 UIAppearance 代理是不可能的
我推荐的方法是在 UIViewController 中使用容器 ViewController 方法(它位于实现容器视图控制器的标题下)。 Apple 的文档基本上告诉你如何自己动手。
【讨论】:
以上是关于iOS 5 中的 UITabBar 高度的主要内容,如果未能解决你的问题,请参考以下文章
UITabBar 在 iOS7 上更改一个 UITabBarItem 的背景颜色
iOS 8、iOS 9、iOS 10 和 iOS 11 上的 UITabBar 的高度是多少?