XCode 中 UINavigationBar 右侧多按钮问题

jackslong 2014-09-23 09:12:29
网上百度了很多都是通过代码添加的 XCode 没有直接提供这个功能么
如图:
http://www.cocoachina.com/ask/app/webroot/upload/201305/20130513141913_59887.png
...全文
138 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ReyZhang 2014-09-25
  • 打赏
  • 举报
回复
引用 8 楼 jackslong 的回复:
[quote=引用 7 楼 zhanglei5415 的回复:] [quote=引用 6 楼 zhangao0086 的回复:] 可以直接在Storyboard里拖一个UISegmentedControl到NavigationBar上。 另外,上面的代码不是没有效果(看上去像是哪里拖过来的),而是你把tintColor的alpha设为0了,完全透明你怎么看得到呢。
确实是从以前的工程中拷过来的。这里的tintColor的alpha属性值为1. 这样应该就能看到你想的了。tintColor这个属性你可以不设置,注释掉。[/quote] 我试了 还是看不到 不管是 alpha 设置为 1,还是直接注释 tintColor 这个属性,都没有效果。是不是因为我自己拖了一个navigationbar 的原因?[/quote] 有可能是这个原因,你可以先移除再运行一下看看效果。如果你当前的控制器是UINavigationController导航控制器中的一员的话(contains in viewcontrollers), 在xib中不需要再额外添加uinavigationbar
ReyZhang 2014-09-24
  • 打赏
  • 举报
回复
引用 6 楼 zhangao0086 的回复:
可以直接在Storyboard里拖一个UISegmentedControl到NavigationBar上。 另外,上面的代码不是没有效果(看上去像是哪里拖过来的),而是你把tintColor的alpha设为0了,完全透明你怎么看得到呢。
确实是从以前的工程中拷过来的。这里的tintColor的alpha属性值为1. 这样应该就能看到你想的了。tintColor这个属性你可以不设置,注释掉。
jackslong 2014-09-24
  • 打赏
  • 举报
回复
引用 7 楼 zhanglei5415 的回复:
[quote=引用 6 楼 zhangao0086 的回复:] 可以直接在Storyboard里拖一个UISegmentedControl到NavigationBar上。 另外,上面的代码不是没有效果(看上去像是哪里拖过来的),而是你把tintColor的alpha设为0了,完全透明你怎么看得到呢。
确实是从以前的工程中拷过来的。这里的tintColor的alpha属性值为1. 这样应该就能看到你想的了。tintColor这个属性你可以不设置,注释掉。[/quote] 我试了 还是看不到 不管是 alpha 设置为 1,还是直接注释 tintColor 这个属性,都没有效果。是不是因为我自己拖了一个navigationbar 的原因?
Bannings 2014-09-24
  • 打赏
  • 举报
回复
可以直接在Storyboard里拖一个UISegmentedControl到NavigationBar上。 另外,上面的代码不是没有效果(看上去像是哪里拖过来的),而是你把tintColor的alpha设为0了,完全透明你怎么看得到呢。
jackslong 2014-09-23
  • 打赏
  • 举报
回复
引用 3 楼 zhanglei5415 的回复:
[quote=引用 2 楼 jackslong 的回复:] [quote=引用 1 楼 zhanglei5415 的回复:] 多按钮的话,需要设置customView ,好像不提供可视化的设置吧。
设置 customView 是什么意思? 就是写代码?[/quote] 你可以使用UISegmentedControl 来模拟多按钮,伪代码如下:
UISegmentedControl *SegmentedControl = [[UISegmentedControl alloc] initWithItems:  
                                         [NSArray arrayWithObjects:  
                                          @"开始",  
                                          @"暂停", nil]];  
[SegmentedControl addTarget:self action:@selector(segmentAction:)   
            forControlEvents:UIControlEventValueChanged];  
SegmentedControl.frame = CGRectMake(0, 0, 80, 30);  
SegmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;  
SegmentedControl.momentary = YES;  
SegmentedControl.tintColor = [UIColor colorWithHue:0.6 saturation:0.33 brightness:0.69 alpha:0];  
//defaultTintColor = [segmentedControl.tintColor retain];    // keep track of this for later  
UIBarButtonItem *segmentBarItem = [[UIBarButtonItem alloc]   
                                       initWithCustomView:SegmentedControl];  
self.navigationItem.rightBarButtonItem = segmentBarItem;
[/quote] 我测试了一下 在 viewDidLoad 方法中添加后 完全没有效果
jackslong 2014-09-23
  • 打赏
  • 举报
回复
引用 3 楼 zhanglei5415 的回复:
[quote=引用 2 楼 jackslong 的回复:] [quote=引用 1 楼 zhanglei5415 的回复:] 多按钮的话,需要设置customView ,好像不提供可视化的设置吧。
设置 customView 是什么意思? 就是写代码?[/quote] 你可以使用UISegmentedControl 来模拟多按钮,伪代码如下:
UISegmentedControl *SegmentedControl = [[UISegmentedControl alloc] initWithItems:  
                                         [NSArray arrayWithObjects:  
                                          @"开始",  
                                          @"暂停", nil]];  
[SegmentedControl addTarget:self action:@selector(segmentAction:)   
            forControlEvents:UIControlEventValueChanged];  
SegmentedControl.frame = CGRectMake(0, 0, 80, 30);  
SegmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;  
SegmentedControl.momentary = YES;  
SegmentedControl.tintColor = [UIColor colorWithHue:0.6 saturation:0.33 brightness:0.69 alpha:0];  
//defaultTintColor = [segmentedControl.tintColor retain];    // keep track of this for later  
UIBarButtonItem *segmentBarItem = [[UIBarButtonItem alloc]   
                                       initWithCustomView:SegmentedControl];  
self.navigationItem.rightBarButtonItem = segmentBarItem;
[/quote] 这个是要放在 viewDidLoad 方法中么?(PS:不好意思 手残了 点了个板砖。。
ReyZhang 2014-09-23
  • 打赏
  • 举报
回复
引用 2 楼 jackslong 的回复:
[quote=引用 1 楼 zhanglei5415 的回复:] 多按钮的话,需要设置customView ,好像不提供可视化的设置吧。
设置 customView 是什么意思? 就是写代码?[/quote] 你可以使用UISegmentedControl 来模拟多按钮,伪代码如下:
UISegmentedControl *SegmentedControl = [[UISegmentedControl alloc] initWithItems:  
                                         [NSArray arrayWithObjects:  
                                          @"开始",  
                                          @"暂停", nil]];  
[SegmentedControl addTarget:self action:@selector(segmentAction:)   
            forControlEvents:UIControlEventValueChanged];  
SegmentedControl.frame = CGRectMake(0, 0, 80, 30);  
SegmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;  
SegmentedControl.momentary = YES;  
SegmentedControl.tintColor = [UIColor colorWithHue:0.6 saturation:0.33 brightness:0.69 alpha:0];  
//defaultTintColor = [segmentedControl.tintColor retain];    // keep track of this for later  
UIBarButtonItem *segmentBarItem = [[UIBarButtonItem alloc]   
                                       initWithCustomView:SegmentedControl];  
self.navigationItem.rightBarButtonItem = segmentBarItem;
jackslong 2014-09-23
  • 打赏
  • 举报
回复
引用 1 楼 zhanglei5415 的回复:
多按钮的话,需要设置customView ,好像不提供可视化的设置吧。
设置 customView 是什么意思? 就是写代码?
ReyZhang 2014-09-23
  • 打赏
  • 举报
回复
多按钮的话,需要设置customView ,好像不提供可视化的设置吧。

29,027

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧