我正在创建一个iPhone应用程序,我需要显示5个标签栏项目。我的要求是我希望第一个标签栏项目的宽度小于其他4。是否有可能以及如何去做这件事。请建议。
答案 0 :(得分:1)
我认为不可能这样做。 UITabBar
和UITabBarItem
是UIKit
中两个可自定义最少的类。 UITabBarItem
甚至没有继承UIView
。
我需要类似的东西,最后滚动我自己的TabBarController
,TabBar和TabBarItem
类。如果您只需要基本的标签栏功能,那就不算太多了。如果你想要花哨的新iOS 7过渡,那将会有更多的工作。
答案 1 :(得分:0)
请查看自定义标签栏:https://github.com/aalittle/ALCustomTabBarController
在此示例中,请转到TabBarView.xib文件,您可以根据需要更改所有选项卡按钮的宽度和高度。
希望,这可能会有所帮助,
:)
答案 2 :(得分:-1)
从UITabBarController创建一个子类,并在viewDidLoad中编写此代码。
-(void)viewDidLoad
{
[super viewDidLoad];
[self addCustomElements];
}
-(void)addCustomElements
{
// Backgroun
UIImageView* bgView = Your backgroun image for tab bar;
bgView.frame = CGRectMake(0, self.view.frame.size.height-50, 320, 50);
[self.view addSubview:bgView];
// Initialise our two images
UIImage *btnImage = default image for your tab item;
UIImage *btnImageSelected = selected image for your tab item;
tab1 = [UIButton buttonWithType:UIButtonTypeCustom]; //Setup the button
tab1.frame = // Set the frame (size and position) of the button)
[tab1 setImage:btnImage forState:UIControlStateNormal];
[btnMore setBackgroundImage:btnImageSelected forState:UIControlStateSelected];
[tab1 setTitle:@"title for 1st button" forState:UIControlStateNormal];
[tab1 setTag:0];
// Add my new buttons to the view
[self.view addSubview:tab1];
//repeat same for remaining button
// Setup event handlers so that the buttonClicked method will respond to the touch up inside event.
[tab1 addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
}
将此子类设置为标签栏控制器。