您的位置:首页 > 其它

设置导航栏的左侧、中间、右侧内容

2016-09-23 16:54 459 查看
1、假设导航栏的中间显示的是图片

// 设置导航栏标题
self.navigationItem.titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"enen"]];

备注:通过initWithImage:的好处是:imageView的尺寸和图片的尺寸是一样的。


2、设置导航栏左边的内容

// 设置导航栏左边的按钮
UIButton *tagButton = [UIButton buttonWithType:UIButtonTypeCustom];
[tagButton setBackgroundImage:[UIImage imageNamed:@"en1"] forState:UIControlStateNormal];
[tagButton setBackgroundImage:[UIImage imageNamed:@"en2"] forState:UIControlStateHighlighted];
tagButton.size = tagButton.currentBackgroundImage.size;
[tagButton addTarget:self action:@selector(tagClick) forControlEvents:UIControlEventTouchUpInside];

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:tagButton];

备注:使用的是initWithCustomView:(UIView *)方法,该方法的参数是一个UIView,即控件;把一个控件传入该方法,将其包装成一个UIBarButtonItem。


3、设置导航栏右边的内容(假设右边有两张图片,代码可以自己去封装简化)

// 设置导航栏标题
self.navigationItem.title = @"恩恩";

// 设置导航栏右边的按钮
UIButton *settingButton = [UIButton buttonWithType:UIButtonTypeCustom];
[settingButton setBackgroundImage:[UIImage imageNamed:@"en3"] forState:UIControlStateNormal];
[settingButton setBackgroundImage:[UIImage imageNamed:@"en4"] forState:UIControlStateHighlighted];
settingButton.size = settingButton.currentBackgroundImage.size;
[settingButton addTarget:self action:@selector(settingClick) forControlEvents:UIControlEventTouchUpInside];

UIButton *nightModeButton = [UIButton buttonWithType:UIButtonTypeCustom];
[nightModeButton setBackgroundImage:[UIImage imageNamed:@"en5"] forState:UIControlStateNormal];
[nightModeButton setBackgroundImage:[UIImage imageNamed:@"en6"] forState:UIControlStateHighlighted];
nightModeButton.size = nightModeButton.currentBackgroundImage.size;
[nightModeButton addTarget:self action:@selector(nightModeClick) forControlEvents:UIControlEventTouchUpInside];

// 注意:使用的是rightBarButtonItems,而不是rightBarButtonItem
self.navigationItem.rightBarButtonItems = @[
[[UIBarButtonItem alloc] initWithCustomView:settingButton],
[[UIBarButtonItem alloc] initWithCustomView:nightModeButton]
];


4、注意点

// 设置导航栏标题
self.navigationItem.title = @"我的关注";

// 假如使用如下方法
self.title = @"我的关注"; // 相当于下面两行代码,会同时改变“导航栏上的标题文字“和“底部tabBarItem中的文字“

self.navigationItem.title = @"我的关注";
self.tabBarItem.title = @"我的关注";
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐