【发布时间】:2014-07-20 19:52:34
【问题描述】:
如何以编程方式将 UISegmentedControl 添加到 UINavigationBar?
我不想为此使用 XIB 文件。
我有一个 UIView 和一个作为子视图添加的 UITableView。
我尝试了两种方法,但都不满意:
1)
self.segmentedControl = [[UISegmentedControl alloc]initWithItems:[NSArray arrayWithObjects:@"All",@"Subject",@"Category",@"Finished",nil]];
self.segmentedControl.backgroundColor = [UIColor cloudsColor];
[self.segmentedControl setSelectedSegmentIndex:0];
[self.segmentedControl addTarget:self action:@selector(segmentedControlHasChangedValue) forControlEvents:UIControlEventValueChanged];
self.mainView.tableHeaderView = self.segmentedControl;
第一个失败的原因是在 UITableView 中,当用户滚动时,分段控件也会滚动!我不希望这种情况发生。它必须固定在顶部。
2) 第二次尝试
UISegmentedControl *statFilter = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:@"Filter_Personnal", @"Filter_Department", @"Filter_Company", nil]];
[statFilter setSegmentedControlStyle:UISegmentedControlStyleBar];
[statFilter sizeToFit];
self.navigationItem.titleView = statFilter;
这会删除我的标题!!!我在 UINavigationBar 的顶部有一个标题,这个方法将它删除!!
这是我想要完成的示例:UISegmentedControl below UINavigationbar in iOS 7
UISegmentedControl 必须作为 UINavigationBar 的一部分固定在下方,并且必须位于标题下方!
谢谢!
【问题讨论】:
-
将分段控件添加为表格视图上方的子视图。这有什么复杂的?
-
呃……好吧,我一开始没有尝试这个,因为我不想弄乱我的 UITableView 的边界……
-
重新定位表格是一行代码。您在他们使用工具栏的地方发布的链接也是一种简单的方法。
-
@WayWay 我回答了这个问题:UISegmentedControl below UINavigationbar in iOS 7
标签: ios objective-c uinavigationbar uisegmentedcontrol