5

我知道我可以UIBarButtonItem通过自定义文本

setTitleTextAttributes:forState:

还有一种方法可以UITabBar通过以下方式自定义图标

setSelectedImageTintColor:

有没有办法自定义 a 的色调颜色UIBarButtonSystemItem(例如垃圾桶图标颜色),只是为了获得一致的用户体验?我什么也找不到。

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

编辑

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

编辑

设置 tint colorUIBarButtonItem生成按钮集的背景颜色。

- (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;
}

产生这个

编辑 2

事实证明,系统图标的轮廓颜色实际上可以通过tintColor的属性设置UIBarButtonItem,但前提是其style属性具有值UIBarButtonItemStylePlain。(即便如此,有些颜色是特殊的,并留下轮廓白色。其中一种颜色是[UIColor blackColor])但是,UIBarButtonItem在 a中使用UINavigationBarthestyle是被迫的UIBarButtonItemStyleBordered。在这种情况下,tintColor设置按钮的背景颜色并将轮廓留白。

当我UIBarButtonItem在导航栏中使用 s 时,我的问题仍未解决。

4

3 回答 3

10

注意:以下仅适用于添加到工具栏的按钮,不适用于导航栏。

使用 的tintColor属性UIBarButtonItem。要么在特定实例上调用它,要么在appearance所有按钮项上调用它。

小心设置所有按钮项目的色调appearance。设置色调时,并非所有按钮项看起来都正确。

更新:

UIBarButtonItem *btnAdd = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(addAction)];
btnAdd.tintColor = [UIColor blackColor];

这将使按钮的图标变黑(背景将是工具栏的色调)。

于 2013-02-21T17:05:17.997 回答
6

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

[[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"UIButtonBarTrashBlack"] style:UIBarButtonItemStyleBordered target:self action:@selector(myAction)];

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

我使用免费软件GIMP编辑了艺术品的颜色。

于 2013-02-21T19:52:40.063 回答
-1

而不是使用黑色,使用这个:

[UIColor colorWithRed:0 green:0 blue:0 alpha:1]; // [UIColor blackColor] 使其变为白色

于 2013-11-15T01:39:09.153 回答