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 未在 ios 7 中显示所选项目图像

UITabBar 在 iOS7 上更改一个 UITabBarItem 的背景颜色

iOS 8、iOS 9、iOS 10 和 iOS 11 上的 UITabBar 的高度是多少?

iOS 13:调整 UITabBar 高度不起作用 [重复]

更改 UITabBar 高度

IOS:UITabbar 项目单击一次又一次,它正在减少IOS 7 中的UITabbar 按钮项目大小