有没有办法让我可以增加单个标签(UITabbarItem)的高度,使其余的标签在UITabBar中保持相同的高度。
答案 0 :(得分:5)
我只是猜测你正试图拥有一个Instagram(以前的版本)或类似于界面的界面,其中一个tabBarItems比其余部分大得多。
您有两种选择。
创建一个customTabBar,其中一个项目要大得多。 (我不会建议)
保持现有的tabBarItems不变。不需要定制的。
您只需要创建一个具有所需高度和形状的UIButton
,并将其添加到tabBarItem之上。
然后我们的工作归结为创建UITabBarController的子类并在UITabBar之上添加自定义UIButton。
UIButton* button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(0.0, 0.0, buttonImage.size.width, buttonImage.size.height);
[button setBackgroundImage:buttonImage forState:UIControlStateNormal];
[button setBackgroundImage:highlightImage forState:UIControlStateHighlighted];
CGFloat heightDifference = buttonImage.size.height - self.tabBar.frame.size.height;
if (heightDifference < 0)
button.center = self.tabBar.center;
else
{
CGPoint center = self.tabBar.center;
center.y = center.y - heightDifference/2.0;
button.center = center;
}
[self.view addSubview:button];
答案 1 :(得分:1)
根据我的经验,您必须扩展UITabBar类,并在初始化UITabBarItem时,相应地设置它们的高度。另外,为UITabBar创建背景图像。
答案 2 :(得分:1)
你可以使用customTabBar,在这里你可以得到它的样本,它很好的类,你可以根据你的大小设置tabBar项目。
答案 3 :(得分:1)
在Swift 2.0中,您可以拥有UITabBarController的子类,并使用以下代码添加UIButton:
let button: UIButton = UIButton(type: UIButtonType.Custom)
button.backgroundColor = UIColor.clearColor()
let buttonImage: UIImage = UIImage(named: "logo")!
let buttonImageHighlighted: UIImage = UIImage(named: "logoHighlighted")!
button.frame = CGRectMake(0.0, 0.0, buttonImage.size.width, buttonImage.size.height);
button.setBackgroundImage(buttonImage, forState: UIControlState.Normal)
button.setBackgroundImage(buttonImageHighlighted, forState: UIControlState.Highlighted)
let heightDifference:CGFloat = buttonImage.size.height - self.tabBar.frame.size.height;
if (heightDifference < 0) {
button.center = self.tabBar.center;
} else {
var center: CGPoint = self.tabBar.center;
center.y = center.y - heightDifference/2.0;
button.center = center;
}
self.view.addSubview(button)