【问题标题】:Adding Custom UIBarButtonItem not working添加自定义 UIBarButtonItem 不起作用
【发布时间】:2013-06-12 02:36:17
【问题描述】:

我的目标是在导航项的右侧添加一个按钮。问题是,我的 UINavigationItem 上的 tintColor 是深灰色,但我希望按钮 (UIBarButtonSystemItemAdd) 是白色的,而不是灰色的。

在阅读之后,看来我必须制作自己的白色自定义图像才能完成此操作,我已经完成了,并且我正在使用以下代码进行设置:

UIBarButtonItem *addButton = [[UIBarButtonItem alloc] 
                             initWithImage:[UIImage imageNamed:@"CustomAddButton.png"]                                                                   
                                                         style:UIBarButtonItemStylePlain
                                                        target:self
                                                        action:@selector(addNewItem)];
self.navigationItem.rightBarButtonItem = addButton;

其中 CustomAddButton@2x.png 是一个 40x40 的图像,带有一个 alpha 层并且只有一个白色加号。 它不是显示为白色的图像,而是比 tintColor 稍浅的灰色 它包含在其中的 navigationItem 中。有没有办法让 UIBarButtonSystemItemAdd 在不创建自定义图像的情况下显示为白色?如果不是,我是什么 做错了吗?

谢谢!

【问题讨论】:

    标签: ios uinavigationbar uibarbuttonitem uinavigationitem


    【解决方案1】:

    UIBarButtonItemStylePlainUINavigationBar 上看起来不像您想象的那样,您可以使用以下代码:

    UIImage* addImage = [UIImage imageNamed:@"add.png"];
    CGRect frame = CGRectMake(0, 0, addImage.size.width, addImage.size.height);
    UIButton *addButton = [[UIButton alloc] initWithFrame:frame];
    [addButton setBackgroundImage:addImage forState:UIControlStateNormal];
    [addButton addTarget:self action:@selector(addAction) forControlEvents:UIControlEventTouchUpInside];
    [addButton setShowsTouchWhenHighlighted:YES];
    UIBarButtonItem *addBarButtonItem =[[UIBarButtonItem alloc] initWithCustomView:addButton];
    self.navigationItem.leftBarButtonItem = addBarButtonItem;
    

    干杯..

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-27
      • 1970-01-01
      • 2018-03-15
      • 1970-01-01
      • 2011-12-04
      • 1970-01-01
      • 2019-01-14
      相关资源
      最近更新 更多