【发布时间】:2013-02-21 16:51:41
【问题描述】:
我知道我可以通过以下方式自定义UIBarButtonItem 文本
setTitleTextAttributes:forState:
还有一种方法可以自定义UITabBar图标通过
setSelectedImageTintColor:
有没有办法自定义UIBarButtonSystemItem 的色调(例如垃圾桶图标颜色),只是为了获得一致的用户体验?我找不到任何东西。
如果这不可能,我将如何进行?我应该保存图标的颜色修改版本吗?我在哪里可以找到它?修改它的最简单方法是什么?
编辑
澄清一下,我要求的不是UIBarButtonItem的背景颜色,而是图标轮廓的颜色。
编辑
设置UIBarButtonItem 的色调颜色会生成按钮集的背景颜色。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
[[UINavigationBar appearance] setTintColor:[UIColor greenColor]];
UIBarButtonItem* trashButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemTrash target:nil action:nil];
trashButton.tintColor = [UIColor blackColor];
UIViewController* viewController = [[UIViewController alloc] init];
UINavigationController* navController = [[UINavigationController alloc] initWithRootViewController:viewController];
[viewController.navigationItem setRightBarButtonItem:trashButton];
self.window.rootViewController = navController;
return YES;
}
产生this。
编辑 2
事实证明,系统图标的轮廓颜色实际上可以通过UIBarButtonItem的tintColor属性设置,但前提是其style属性的值为UIBarButtonItemStylePlain。 (即便如此,有些颜色是特殊的,并且使轮廓保持白色。一种这样的颜色是[UIColor blackColor])但是,在UINavigationBar 中使用UIBarButtonItem,style 被强制为UIBarButtonItemStyleBordered。在这种情况下,tintColor 设置按钮的背景颜色并将轮廓保留为白色。
当我在导航栏中使用UIBarButtonItems 时,我的问题仍未解决。
【问题讨论】:
标签: ios objective-c uikit uibarbuttonitem uiappearance