我希望在没有使用图像的情况下完成此任务,如果可能的话.有没有办法以编程方式创建图像显示,而不必将每个选项卡作为图像呈现?
我在SO上审查过的每个问题都将标签保存为JPG,这比我觉得应该是更多的工作.
有任何想法吗?
解决方法
我对@matcartmill采取了类似的方法,但不需要特殊的图像.这个解决方案只是基于你的颜色.
// set red as selected background color let numberOfItems = CGFloat(tabBar.items!.count) let tabBarItemSize = CGSize(width: tabBar.frame.width / numberOfItems,height: tabBar.frame.height) tabBar.selectionIndicatorImage = UIImage.imageWithColor(UIColor.redColor(),size: tabBarItemSize).resizableImageWithCapInsets(UIEdgeInsetsZero) // remove default border tabBar.frame.size.width = self.view.frame.width + 4 tabBar.frame.origin.x = -2
我正在使用UIImage的以下扩展名:
extension UIImage { class func imageWithColor(color: UIColor,size: CGSize) -> UIImage { let rect: CGRect = CGRectMake(0,size.width,size.height) UIGraphicsBeginImageContextWithOptions(size,false,0) color.setFill() UIRectFill(rect) let image: UIImage = UIGraphicsGetImageFromCurrentImageContext() UIGraphicsEndImageContext() return image } }
我希望这有帮助!