11

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

我想使用这个范围栏为UITableView. 这比使用带有UISegmentControl.

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

显示我想要的图像

4

4 回答 4

13

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

 theSegCtrl.segmentedControlStyle = 7;

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

于 2010-07-03T20:38:38.213 回答
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;

}

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

希望能帮助到你。

于 2013-01-10T12:50:19.400 回答
2

该元素是具有样式的UISegmentedControl 。UISegmentedControlStyleBar您可以设置tintColor属性以获得所需的颜色。只需将视图放在表格视图上方,您就可以得到类似于该屏幕截图的内容。

于 2010-07-03T20:34:25.507 回答
1

UISegmentedControl

您创建它,设置它的段,并设置它的委托。然后,每次选定的段发生变化时,委托都会采取某种行动。

于 2010-07-03T20:32:33.760 回答