标签栏项目具有不同的宽度

时间:2014-03-01 05:11:13

标签: ios iphone ios7 custom-controls uitabbar

我正在创建一个iPhone应用程序,我需要显示5个标签栏项目。我的要求是我希望第一个标签栏项目的宽度小于其他4。是否有可能以及如何去做这件事。请建议。

3 个答案:

答案 0 :(得分:1)

我认为不可能这样做。 UITabBarUITabBarItemUIKit中两个可自定义最少的类。 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];




 }

将此子类设置为标签栏控制器。