[英]Setting Selected Image in Tab Bar Controller with Storyboard
我正在使用Storyboarding,我有一个带有五个标签的标签栏控制器。 在故事板中,我可以设置标签栏项目的图像。 Apple文档建议每个标签栏项目有两个图标 - 一个用于选定状态,另一个用于未选择状态。
我无法弄清楚如何使用故事板来做到这一点。
您可以使用故事板设置选定的tabbar图像。 我试过,它对我有用。 选择UITabbarItem并添加运行时属性'selectedImage',选择Type作为'Image'并将图像的名称作为其值。
我使用的是XCode 6.0,我的最低部署目标是iOS 8.0。
是的,这不能使用故事板来完成 - 需要编写代码。
在UINavigationViewController
的viewDidLoad
方法中,我们可以编写以下代码 -
UITabBar *tabBar = self.tabBar;
UITabBarItem *targetTabBarItem = [[tabbar items] objectAtIndex:0]; // whichever tab-item
UIImage *selectedIcon = [UIImage imageNamed:@"name-of-selected-image.png"];
[targetTabBarItem setSelectedImage:selectedIcon];
您现在可以在故事板中轻松完成此操作。 在您拥有的每个tabview控制器上,它应该在层次结构中包含一个Tab Bar项(看起来像一个小蓝星),单击此按钮,右侧的设置应如下图所示。 标签栏标题和图像可以在此处更改。
应在相应的视图控制器中设置图标。 执行此操作时,您可以自由重新排列故事板主选项卡控制器内的视图控制器的顺序,而无需为每个图标更改代码( objectAtIndex:0
)。
viewDidLoad
下行放入viewDidLoad
方法:
if (self.navigationController.viewControllers.count < 2)
self.navigationController.tabBarItem.selectedImage = [UIImage imageNamed:@"image-selected.png"];
if
条件确保仅为最顶层的视图控制器更改按钮。 将导航层次结构中的视图控制器重用为子视图控制器时,这是必需的。
SWIFT 3.0 - >设置标签栏按钮图像的理想方法如下:
首先设置要用于按钮的图像:
let homeImage = UIImage(named: "TabHome")
let homeTappedImage = UIImage(named: "TabHomeRed")
然后设置UITabButtonItem类型的按钮:
let homeButton = UITabBarItem(title: homeText, image: homeImage, selectedImage: homeTappedImage)
//with this method you set the image when the button is not selected
homeButton.image = homeImage?.withRenderingMode(UIImageRenderingMode.alwaysOriginal)
//with this method you set the image when the button is selected
homeButton.selectedImage = homeTappedImage?.withRenderingMode(.alwaysOriginal)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.