首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用UIBarButtonSystemItem API自定义UIAppearance色彩

用UIBarButtonSystemItem API自定义UIAppearance色彩
EN

Stack Overflow用户
提问于 2013-02-21 16:51:41
回答 2查看 7.6K关注 0票数 5

我知道我可以通过

代码语言:javascript
复制
setTitleTextAttributes:forState:

还有一种自定义UITabBar图标的方法

代码语言:javascript
复制
setSelectedImageTintColor:

是否有一种方法可以自定义UIBarButtonSystemItem的色调颜色(例如垃圾图标颜色),以便有一个一致的UX?我什么也找不到。

如果这是不可能的话,我如何进行呢?我应该保存图标的颜色修改版本吗?我在哪里可以找到它?修改它最简单的方法是什么?

编辑

为了澄清,我要求的不是UIBarButtonItem的背景色,而是图标轮廓的颜色。

编辑

设置UIBarButtonItem的色调会产生按钮集的背景色。

代码语言:javascript
复制
- (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

结果表明,系统图标的轮廓颜色实际上可以通过UIBarButtonItemUIBarButtonItem属性来设置,但前提是它的style属性具有UIBarButtonItemStylePlain值。(即使如此,一些颜色是特殊的,并留下轮廓白色。这样的颜色之一是[UIColor blackColor]),但是,在UINavigationBar中使用UIBarButtonItem时,style必须是UIBarButtonItemStyleBordered。在这种情况下,tintColor设置按钮的背景色,并将轮廓保持为白色。

当我在导航栏中使用UIBarButtonItems时,我的问题仍然没有解决。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-21 19:52:40

我已经通过在外部编辑器中更改条形按钮系统项png文件的颜色来解决我的问题,包括该图像到项目中并通过

代码语言:javascript
复制
[[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"UIButtonBarTrashBlack"] style:UIBarButtonItemStyleBordered target:self action:@selector(myAction)];

我已经使用有用的UIKit-Artwork-Extractor找到了内部系统映像。

我已经编辑了颜色的艺术作品使用自由软件GIMP

票数 6
EN

Stack Overflow用户

发布于 2013-02-21 17:05:17

注意事项:以下只适用于添加到工具栏中的按钮,而不是导航条。

使用tintColor属性UIBarButtonItem。或者在特定实例上调用它,或者对所有按钮项在appearance上调用它。

注意通过appearance设置所有按钮项的颜色。设置颜色时,并不是所有的按钮项目看起来都是正确的。

更新:

代码语言:javascript
复制
UIBarButtonItem *btnAdd = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(addAction)];
btnAdd.tintColor = [UIColor blackColor];

这将使按钮的图标变黑(不管工具栏的色调是什么,背景都是黑色的)。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15007853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档