有没有办法让我可以增加单个选项卡(UITabbarItem)的高度,保持 UITabBar 中的其余选项卡具有相同的高度。
问问题
1722 次
4 回答
5
我只是猜测您正在尝试拥有一个 instagram(以前的 instagram)或类似界面的界面,其中一个 tabBarItems 比其他的要大得多。
你有两个选择。
创建一个 customTabBar ,其中一个项目要大得多。(我不会推荐这个)
只需保持现有的 tabBarItems 不变。没有必要定制一个。您只需创建
UIButton
具有所需高度和形状的 a 并将其添加到您的 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];
于 2012-09-28T05:09:31.440 回答
1
根据我的经验,您必须扩展 UITabBar 类,并且在初始化 UITabBarItems 时,相应地设置它们的高度。此外,为您的 UITabBar 创建一个背景图像。
于 2012-09-28T05:07:33.970 回答
1
您可以使用 customTabBar,在这里您可以获取它的示例,它的好类,您可以根据您的大小设置 tabBar 项目。
于 2012-09-28T06:20:27.327 回答
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)
于 2015-12-10T21:38:54.223 回答