适用于App Store等UITableView的范围栏?

时间:2010-07-03 20:30:06

标签: ios uitableview uisearchbar uisegmentedcontrol

有谁知道如何将范围栏添加到UITableView? App Store应用程序有时会这样做,如下图所示。

我想使用此范围栏为UITableView中的元素添加排序选项。这比使用UISegmentControl的工具栏更方便。

我只是不知道如何实现这一点。我甚至不知道元素的名称(我称之为范围栏,因为它看起来就像UISearchBar的范围栏,但它不是。)

image showing what I want

4 个答案:

答案 0 :(得分:13)

实际上,与其他人所说的不同,此UISegmentedControl的.segmentedControlStyle属性设置为未记录的值7。

 theSegCtrl.segmentedControlStyle = 7;

@Macatomy的答案更安全AppStore(尽管Apple无论如何都无法检测到这一点)。

答案 1 :(得分:4)

可能你已经解决了这个问题,但我相信这对其他人有帮助。

在您在TableViewController中使用的ViewController中,应插入以下代码:

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {

NSArray *segmentTextContent = [NSArray arrayWithObjects: @"one",@"two",@"three", nil];
UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:segmentTextContent];
segmentedControl.frame = CGRectMake(2, 5, 316, 35);

[self.segmentedControl addTarget:self action:@selector(segmentChanged:) forControlEvents:UIControlEventValueChanged];
self.segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar; //changes the default style
self.segmentedControl.tintColor = [UIColor darkGrayColor]; //changes the default color
self.segmentedControl.enabled = true;
self.segmentedControl.selectedSegmentIndex = 0;

return self.segmentedControl;

}

插入一个分段控件作为表格标题,当您到达列表顶部时(如果您愿意)也会反弹,同时在列表中滚动时始终保持可见状态。

希望它有所帮助。

答案 2 :(得分:2)

元素是具有UISegmentedControlStyleBar样式的UISegmentedControl。您可以设置tintColor属性以获得所需的颜色。只需将视图放在表格视图上方,您就可以获得看起来像截图的内容。

答案 3 :(得分:1)

UISegmentedControl

您可以创建它,设置其细分,并设置其委托。然后,每当所选分段发生变化时,代表就会采取某种行动。