2

使用 iOS 5 中新的自定义 API,是否可以增加 UITabBar 的高度?如果不是,如果我想针对 iOS 5,有哪些开源选项?谢谢

4

5 回答 5

9

我自定义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)

于 2013-01-02T18:28:39.363 回答
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!
于 2013-09-18T09:29:31.673 回答
1

你不能用UITabBar. 我建议您创建自己的UIToolBar并使其看起来像一个 tabBar,您可以添加UIButtons到它并使它们看起来像tabBarItems.

它看起来像一个tabBar,并为您提供了很大的自定义空间,您还可以向其添加超过 5 个选项卡并在按钮之间实现“滚动”动画。:)

于 2012-05-24T22:49:10.393 回答
0

UIAppearance 代理不可能

我建议这样做的方法是在 UIViewController 中使用容器 ViewController 方法(它位于实现容器视图控制器的标题下)。Apple 的文档基本上告诉你如何自己动手。

于 2012-05-24T16:59:05.297 回答
0

我会建议BCTabBarController。我在我的一个项目中使用了它,效果很好。不过,您仍然需要对其进行自定义。

于 2012-05-24T17:39:22.753 回答