UITableView的范围栏像App Store?

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

我想使用这个范围栏来添加UITableView的元素的sorting选项。 这比使用带有UISegmentControl的工具栏更方便。

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

显示我想要的图像

该元素是UISegmentedControlStyleBar样式的UISegmentedControlStyleBar 。 你可以设置tintColor属性来获得所需的颜色。 只要把视图放在表格视图上面,你就可以得到一些看起来像那个截图的东西。

实际上,与其他人所说的不同,这个UISegmentedControl的.segmentedControlStyle属性被设置为一个无证的值7。

  theSegCtrl.segmentedControlStyle = 7; 

但@Macatomy的答案是更多的AppStore安全(尽pipe苹果无法检测到这一点)。

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

在你使用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; 

}

这将插入一个分段的控件作为表头,当你到达列表顶部,并且同时在列表中滚动时,它将始终保持可见。

希望能帮助到你。

UISegmentedControl

您创build它,设置其细分,并设置其委托。 每当选定的分段发生变化时,代表就会采取某种行动。