【发布时间】:2017-10-05 02:11:57
【问题描述】:
我尝试更改标签栏项目图像的颜色,为此我使用下一个代码:
// Generate a tinted unselected image based on image passed via the storyboard.
for (UIViewController *vc in tabBarController.viewControllers) {
UITabBarItem *item = vc.tabBarItem;
UIImage *image = item.image;
UIImage *imageSel = [image imageWithColor:selectedColor];
UIImage *imageUnsel = [image imageWithColor:unselectedColor];
// Next is not working to set unselected image!
// But setFinishedSelectedImage does.
//item.selectedImage = imageSel;
item.image = imageSel;
//[item setFinishedSelectedImage:imageSel withFinishedUnselectedImage:imageUnsel];
}
UITabBarItem *item = tabBarController.moreNavigationController.tabBarItem;
UIImage *image = [UIImage imageNamed:@"menu-more"];
UIImage *imageSel = [image imageWithColor:selectedColor];
UIImage *imageUnsel = [image imageWithColor:unselectedColor];
item.image = imageSel;
// [item setFinishedSelectedImage:imageSel withFinishedUnselectedImage:imageUnsel];
imageWithColor: 是 UIImage 扩展,使用原始图像的 alpha 值生成带颜色的图像。
代码第一次执行时,一切正常。
更改颜色后(调用上面的代码),所有标签栏项目都显示在标签栏的左侧,并带有文本。发生在模拟器和设备(iPhone + iPad)中。这是一个错误吗?
【问题讨论】:
标签: ios objective-c iphone uitabbaritem