自定义导航按钮UIBarButtonItem
来源:互联网 发布:mac翻墙回国软件 编辑:程序博客网 时间:2024/05/02 00:27
基本上每个iOS APP里面都有导航,比如微信、QQ、支付宝。导航可以很方便地帮助我们管理视图控制器(UIViewController)。导航的重要性不言而喻,基本上是每一位iOS初学者都要接触到的问题。
iOS系统导航栏中有leftBarButtonItem
和rightBarButtonItem
,我们可以根据自己的需求来自定义这两个UIBarButtonItem
。
四种创建方法
系统提供了四种创建的方法:
- (instancetype)initWithBarButtonSystemItem:(UIBarButtonSystemItem)systemItem target:(id)target action:(SEL)action;- (instancetype)initWithImage:(UIImage *)image style:(UIBarButtonItemStyle)style target:(id)target action:(SEL)action;- (instancetype)initWithTitle:(NSString *)title style:(UIBarButtonItemStyle)style target:(id)target action:(SEL)action;- (instancetype)initWithBarButtonSystemItem:(UIBarButtonSystemItem)systemItem target:(id)target action:(SEL)action;- (instancetype)initWithCustomView:(UIView *)customView;
通过系统UIBarButtonSystemItem创建
自定义rightBarButtonItem
,代码如下:
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(right:)];
UIBarButtonSystemItem有以下样式可以供选择:
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,#if __IPHONE_3_0 <= __IPHONE_OS_VERSION_MAX_ALLOWED UIBarButtonSystemItemUndo, UIBarButtonSystemItemRedo,#endif#if __IPHONE_4_0 <= __IPHONE_OS_VERSION_MAX_ALLOWED UIBarButtonSystemItemPageCurl,#endif};
最后别忘了实现right:
方法:
- (void)right:(id)sender{ NSLog(@"rightBarButtonItem");}
自定义文字的UIBarButtonItem
在文章关于导航栏的六个小技巧的第五个技巧里面有自定义rightBarButtonItem
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"back" style:UIBarButtonItemStylePlain target:self action:@selector(back:)];
UIBarButtonItemStyle有以下三种选择:
typedef NS_ENUM(NSInteger, UIBarButtonItemStyle) { UIBarButtonItemStylePlain, UIBarButtonItemStyleBordered NS_ENUM_DEPRECATED_IOS(2_0, 8_0, "Use UIBarButtonItemStylePlain when minimum deployment target is iOS7 or later"), UIBarButtonItemStyleDone,};
实现back:
方法:
- (void)back:(id)sender{ [self.navigationController popViewControllerAnimated:YES];}
自定义照片的UIBarButtonItem
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"test"] style:UIBarButtonItemStylePlain target:self action:@selector(right:)];
自定义UIView的UIBarButtonItem
自定义UIView
,然后通过initWithCustomView:
方法来创建UIBarButtonItem
。
UIView *testView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 40, 60)];self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:testView];
看到有朋友在后台提问:
刚哥,我现在即需要改那个导航原生的返回图片,也要改返回文字,应该怎么改呢,求指教。
其实,这个就可以用initWithCustomView:
来解决,自定义UIView
你可以放UIImageView
和UILabel
。可以自定义UIView
,那么想怎么定义都是可以的。
0 0
- 自定义导航按钮UIBarButtonItem
- 自定义导航按钮UIBarButtonItem
- 自定义导航按钮UIBarButtonItem
- 自定义导航按钮UIBarButtonItem
- 自定义导航栏按钮UIBarButtonItem 文字或图片
- 自定义导航栏按钮UIBarButtonItem 文字或图片
- 自定义导航栏按钮UIBarButtonItem 文字或图片
- 自定义导航栏按钮UIBarButtonItem 文字或图片
- iOS之自定义导航按钮UIBarButtonItem的样式
- 自定义导航栏按钮UIBarButtonItem 文字或图片
- 自定义导航栏按钮UIBarButtonItem 文字或图片(定制)
- UIBarButtonItem导航条按钮封装
- IOS-9-UIBarButtonItem导航条-添加自定义Left或者Right按钮
- UIBarButtonItem-添加自定义Left或者Right按钮
- UIBarButtonItem按钮
- IOS开发(10)UIBarButtonItem导航栏添加按钮
- UIBarButtonItem类目-返回一个有图片的导航栏按钮
- DataGrid自定义导航按钮
- Xcode修改项目名,绝对可行
- LINUX下解压缩方法
- UITextField隐藏软键盘心得(隐藏自身软键盘、点击Return自动转到下个文本框、轻触背景隐藏软键盘)
- weblogic使用说明
- linux 下的source命令的作用是什么?
- 自定义导航按钮UIBarButtonItem
- 边框属性border
- 计算机网络(一)
- mysql mysqldump只导出表结构或只导出数据的实现方法
- POJ 2492 A Bug's Life(扩展并查集)
- linux下Qt安装问题
- 提升linux下tcp服务器并发连接数限制
- c# Serialization: 序列化内容至CData
- HDU - 2955 Robberies