【发布时间】:2016-11-11 22:03:58
【问题描述】:
在“项目位置”选项上使用“填充”值时如何去除标签栏项目之间的间距?
我尝试了以下方法:
let tabBarController = window!.rootViewController as! UITabBarController
tabBarController.tabBar.itemSpacing = 0
let numberOfItems = CGFloat(tabBarController.tabBar.items!.count)
let tabBarItemSize = CGSize(width: tabBarController.tabBar.frame.width / numberOfItems, height: tabBarController.tabBar.frame.height)
tabBarController.tabBar.selectionIndicatorImage = UIImage.imageWithColor(color: UIColor.secondaryHighlight(), size: tabBarItemSize).resizableImage(withCapInsets: UIEdgeInsets.zero)
for item in tabBarController.tabBar.items! {
item.imageInsets = UIEdgeInsetsMake(0, 0, 0, 0)
}
extension UIImage {
class func imageWithColor(color: UIColor, size: CGSize) -> UIImage {
let rect: CGRect = CGRect(x: 0, y: 0, width: size.width, height: size.height)
UIGraphicsBeginImageContextWithOptions(size, false, 0)
color.setFill()
UIRectFill(rect)
let image: UIImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
return image
}
}
这个结果总是这样(注意第一个标签栏项目左边的绿线):
【问题讨论】:
-
只是一个注释@user3427013,我看到你从编辑中删除了
!,它是图像显示所必需的(降价语法)。我已经给你加回来了。 -
感谢钟雨辰
-
仅供参考,标签栏的典型用例是在选择/取消选择标签栏项目时图像和文本本身会改变颜色(例如,圆圈和“第一个”文本)。您通常不会更改整个标签栏项目的背景颜色。
-
感谢您的回复@AdamPro13,但客户要求此 UI...我别无选择,只能复制 photoshop 文件。
标签: ios swift uitabbaritem