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

来源:互联网 发布:nba骑士vs活塞数据 编辑:程序博客网 时间:2024/05/08 18:12

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 = @"我的关注";
1 0
原创粉丝点击