如何更改 UINavigationBar rightButton 图像?
How to change UINavigationBar rightButton image?
我想更改 viewWillAppear
中的 UINavigationBar rightButton 图像,为此我尝试这样做:
self.navigationController?.navigationItem.rightBarButtonItem?.image = UIImage(named: "bookmark")
但它不会改变我的 rightButton 的图像。我该如何修复它并更改我的形象?
试试这个
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),
};
self.navigationController?.navigationItem.rightBarButtonItem?.image= UIBarButtonItem(image: //Image Name, style: UIBarButtonItemStyle.Plain, target: self, action: //ACTION NAME)
试试这个,我是 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;
我想更改 viewWillAppear
中的 UINavigationBar rightButton 图像,为此我尝试这样做:
self.navigationController?.navigationItem.rightBarButtonItem?.image = UIImage(named: "bookmark")
但它不会改变我的 rightButton 的图像。我该如何修复它并更改我的形象?
试试这个
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),
};
self.navigationController?.navigationItem.rightBarButtonItem?.image= UIBarButtonItem(image: //Image Name, style: UIBarButtonItemStyle.Plain, target: self, action: //ACTION NAME)
试试这个,我是 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;