【问题标题】:How to change UINavigationBar rightButton image? [duplicate]如何更改 UINavigationBar rightButton 图像? [复制]
【发布时间】:2016-06-30 19:58:44
【问题描述】:

我想更改 viewWillAppear 中的 UINavigationBar rightButton 图像,为此我正在尝试:

self.navigationController?.navigationItem.rightBarButtonItem?.image = UIImage(named: "bookmark")

但它不会改变我的 rightButton 的图像。如何修复它并更改我的图像?

【问题讨论】:

  • @EICaptain 但我不想每次都删除并添加我的按钮
  • @KumarKL 在将其设置为 重复 之前仔细阅读了我的问题!

标签: ios swift uinavigationbar uinavigationitem


【解决方案1】:

试试这个

var changeImage:UIImage = UIImage(named: "bookmark")!
changeImage = changeImage.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)
var rightButton = UIBarButtonItem(image: changeImage, style: UIBarButtonItemStyle.Bordered, target: self, action: "xxxx")
self.navigationItem.rightBarButtonItem = rightButton

选择 2

书签使用UIBarButtonSystemItemBookmarks的默认功能

var rightButton: UIBarButtonItem = UIBarButtonItem(barButtonSystemItem: .Bookmarks, target: self, action: "xxxx")
self.navigationItem.rightBarButtonItem = rightButton

一些默认的UIBarbuttonItems

typedef NS_ENUM(NSInteger, UIBarButtonSystemItem) {
UIBarButtonSystemItemDone,
UIBarButtonSystemItemCancel,
UIBarButtonSystemItemEdit,  
UIBarButtonSystemItemSave,  
UIBarButtonSystemItemAdd,
UIBarButtonSystemItemFlexibleSpace,
UIBarButtonSystemItemFixedSpace,
UIBarButtonSystemItemCompose,
UIBarButtonSystemItemReply,
UIBarButtonSystemItemAction,
UIBarButtonSystemItemOrganize,
UIBarButtonSystemItemBookmarks,
UIBarButtonSystemItemSearch,
UIBarButtonSystemItemRefresh,
UIBarButtonSystemItemStop,
UIBarButtonSystemItemCamera,
UIBarButtonSystemItemTrash,
UIBarButtonSystemItemPlay,
UIBarButtonSystemItemPause,
UIBarButtonSystemItemRewind,
UIBarButtonSystemItemFastForward,
UIBarButtonSystemItemUndo NS_ENUM_AVAILABLE_IOS(3_0),
UIBarButtonSystemItemRedo NS_ENUM_AVAILABLE_IOS(3_0),
UIBarButtonSystemItemPageCurl NS_ENUM_AVAILABLE_IOS(4_0),
};

【讨论】:

  • 我不熟悉 swift ,试一次
【解决方案2】:

self.navigationController?.navigationItem.rightBarButtonItem?.image= UIBarButtonItem(image: //Image Name, style: UIBarButtonItemStyle.Plain, target: self, action: //ACTION NAME)

【讨论】:

    【解决方案3】:

    试试这个,我是 swift 新手,所以我在 Objective C 中完成了这段代码。

    UIButton *btnRight = [UIButton buttonWithType:UIButtonTypeCustom];
    
    
    [btnRight setFrame : CGRectMake(0, 0, 60, 35)];
    
    [btnRight setImage:[UIImage imageNamed:@"prefferedImage"] forState:UIControlStateNormal];
    [btnRight addTarget:self action:@selector(defindeActionMethod:) forControlEvents:UIControlEventTouchUpInside];
    
    [btnRight setContentHorizontalAlignment:UIControlContentHorizontalAlignmentRight];
    
    btnRight.imageView.contentMode = UIViewContentModeScaleAspectFit;
    btnRight.contentHorizontalAlignment = UIControlContentHorizontalAlignmentRight;
    btnRight.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
    
    UIBarButtonItem *rightBarButton = [[UIBarButtonItem alloc] initWithCustomView:btnRight];
    [rightBarButton setTintColor:[UIColor whiteColor]];
    self.navigationItem.rightBarButtonItem = rightBarButton;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多