我在UITabbarController中的UITabbar中有5个UITabbarItem.当选择UITabbarItem时,我想更改背景颜色,当然,当所选项目更改时,它将会更改.
我在Xcode 6.3.1中使用Swift和iOS SDK 8.3.如果您只能在Objective-C中答案,那么任何答案都将有所帮助!谢谢大家提前,我真的很感激!
编辑:这是我想要做的一个视觉示例.
Different Background Color
解决方法 在您的tabbarController中,您可以设置默认的UITabbar tintcolor,barTintcolor,selectionIndicatorImage(在这里作弊)和renderingMode的图像,请参阅以下注释:class MyTabbarController: UITabbarController,UINavigationControllerDelegate { ... overrIDe func vIEwDIDLoad() { ... // Sets the default color of the icon of the selected UITabbarItem and Title UITabbar.appearance().tintcolor = UIcolor.redcolor() // Sets the default color of the background of the UITabbar UITabbar.appearance().barTintcolor = UIcolor.blackcolor() // Sets the background color of the selected UITabbarItem (using and plain colored UIImage with the wIDth = 1/5 of the tabbar (if you have 5 items) and the height of the tabbar) UITabbar.appearance().selectionIndicatorImage = UIImage().makeImageWithcolorAndSize(UIcolor.bluecolor(),size: CGSizeMake(tabbar.frame.wIDth/5,tabbar.frame.height)) // Uses the original colors for your images,so they aren't not rendered as grey automatically. for item in self.tabbar.items as! [UITabbarItem] { if let image = item.image { item.image = image.imageWithRenderingMode(.AlwaysOriginal) } } } ... }
并且您将需要扩展UIImage类以使您需要的大小为纯色图像:
extension UIImage { func makeImageWithcolorAndSize(color: UIcolor,size: CGSize) -> UIImage { UIGraphicsBeginImageContextWithOptions(size,false,0) color.setFill() UIRectFill(CGRectMake(0,size.wIDth,size.height)) var image = UIGraphicsGetimageFromCurrentimageContext() UIGraphicsEndImageContext() return image }}总结
以上是内存溢出为你收集整理的IOS 8标签栏项目背景颜色全部内容,希望文章能够帮你解决IOS 8标签栏项目背景颜色所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)