IOS 7中的自定义UtiAbbar问题
我定制uitabar的方式在IOS 5和IOS 6中运行良好,但在IOS 7中,选项卡栏没有显示任何图像 IOS6结果: IOS7结果: 在做了一些研究之后,我试图修复现有的代码,但没有成功IOS 7中的自定义UtiAbbar问题,ios,iphone,ios7,uitabbarcontroller,Ios,Iphone,Ios7,Uitabbarcontroller,我定制uitabar的方式在IOS 5和IOS 6中运行良好,但在IOS 7中,选项卡栏没有显示任何图像 IOS6结果: IOS7结果: 在做了一些研究之后,我试图修复现有的代码,但没有成功 #import <Foundation/Foundation.h> @interface CustomTabBarItem : UITabBarItem { UIImage *selectedImg; UIImage *unSelectedImg; } @property (non
#import <Foundation/Foundation.h>
@interface CustomTabBarItem : UITabBarItem
{
UIImage *selectedImg;
UIImage *unSelectedImg;
}
@property (nonatomic, retain) UIImage *selectedImg;
@property (nonatomic, retain) UIImage *unSelectedImg;
@end
#import "CustomTabBarItem.h"
@implementation CustomTabBarItem
@synthesize selectedImg;
@synthesize unSelectedImg;
-(UIImage *) selectedImage
{
return self.selectedImg;
}
-(UIImage *) unselectedImage
{
return self.unSelectedImg;
}
@end
但结果仍然是一样的,任何帮助都将不胜感激。这不是色调,但你可以用图像来完成:
[self.tabBarItem setFinishedSelectedImage:[UIImage imageNamed:@"item_seleted.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"item_unselected.png"]];
您是否尝试过直接在选项卡栏的实例上而不是在UIAppearance代理上设置BarIntColor?
这是iOS 7中的一个已知问题。tintColor用于选定的选项卡图像。selectedImageTintColor完全被忽略。无法着色未选定的选项卡图像
请参阅苹果开发者论坛上的相关讨论。这不是色调,但您可以通过图像来实现:
[self.tabBarItem setFinishedSelectedImage:[UIImage imageNamed:@"item_seleted.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"item_unselected.png"]];
您是否尝试过直接在选项卡栏的实例上而不是在UIAppearance代理上设置BarIntColor?
这是iOS 7中的一个已知问题。tintColor用于选定的选项卡图像。selectedImageTintColor完全被忽略。无法着色未选定的选项卡图像
请参阅苹果开发者论坛上关于这一点的讨论。请参阅我的答案
我相信在ios7中使用这个外观类属性是有限制的,或者是有缺陷的
您的选项卡栏项目正在使用图标图像作为模板,并使用着色颜色对其着色。苹果真正想让你做的是为标签栏设计图标,这些图标大部分是透明的,这样它们就可以用作模板图像
有关设计这些按钮的讨论,请参见第204页MobileHIG文档中的栏按钮图标
因此,要设置所选的选项卡栏项,您需要在可以从UIViewContoller获得的“UITableItem”上调用“setSelectedImage:”。如果UIViewController的子类由选项卡上的NavigationController包装,则从该ViewController获取选项卡栏项
我使用故事板,因此可以在Interface Builder中设置选项卡图像。selectedImage属性现在不可用,因此您必须在代码中进行设置。我在每个选项卡的导航控制器堆栈顶部显示的每个主视图控制器中都执行了此操作
您的示例需要按照设计的方式渲染图像,因此还需要设置图像的渲染模式
- (void)viewDidLoad
{
[super viewDidLoad];
...
[self.navigationController.tabBarItem setSelectedImage:[[UIImage imageNamed:@"MySelectedIcon.png"]
imageWithRenderingMode: UIImageRenderingModeAlwaysOriginal]];
}
请参阅我的答案,了解我的计算结果
我相信在ios7中使用这个外观类属性是有限制的,或者是有缺陷的
您的选项卡栏项目正在使用图标图像作为模板,并使用着色颜色对其着色。苹果真正想让你做的是为标签栏设计图标,这些图标大部分是透明的,这样它们就可以用作模板图像
有关设计这些按钮的讨论,请参见第204页MobileHIG文档中的栏按钮图标
因此,要设置所选的选项卡栏项,您需要在可以从UIViewContoller获得的“UITableItem”上调用“setSelectedImage:”。如果UIViewController的子类由选项卡上的NavigationController包装,则从该ViewController获取选项卡栏项
我使用故事板,因此可以在Interface Builder中设置选项卡图像。selectedImage属性现在不可用,因此您必须在代码中进行设置。我在每个选项卡的导航控制器堆栈顶部显示的每个主视图控制器中都执行了此操作
您的示例需要按照设计的方式渲染图像,因此还需要设置图像的渲染模式
- (void)viewDidLoad
{
[super viewDidLoad];
...
[self.navigationController.tabBarItem setSelectedImage:[[UIImage imageNamed:@"MySelectedIcon.png"]
imageWithRenderingMode: UIImageRenderingModeAlwaysOriginal]];
}