我正在使用UITableView创建一个具有几个部分(2)的应用程序,当我运行时,表视图侧面有这个恼人的灰色索引栏,就像“iPod”应用程序中的那个一样,但它有2个选项。我的问题是,如何隐藏“索引栏”,因为这是不必要的空间浪费?
例:
http://img824.imageshack.us/img824/7278/grayscrollbar.png
代码段:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return [sections count];
}
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView {
return sections;
}
// Customize the number of rows in the table view.
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
if (section == 0) {
return 2;
}
return 1;
}
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
return [sections objectAtIndex:section];
}
// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
// Configure the cell.
cell.textLabel.text = [content objectAtIndex:(indexPath.row + [[sectionAmounts objectAtIndex:indexPath.section] intValue])];
tableView.showsVerticalScrollIndicator = NO;
return cell;
}
- (void)viewDidLoad {
[super viewDidLoad];
content = [NSArray arrayWithObjects:@"Sphere", @"Cylinder", @"Circle", nil];
sections = [NSArray arrayWithObjects:@"3d", @"2d", nil];
sectionAmounts = [NSArray arrayWithObjects:[NSNumber numberWithInt:0], [NSNumber numberWithInt:2], nil]; //Second number is objects in first section... odd huh?
self.tableView.showsVerticalScrollIndicator = NO;
[content retain];
[sections retain];
// Uncomment the following line to display an Edit button in the navigation bar for this view controller.
// self.navigationItem.rightBarButtonItem = self.editButtonItem;
}
(记住我的奇怪评论......)
HiGuy
答案 0 :(得分:15)
我尝试了这个,但它对我不起作用。 所以我浏览了表视图属性,并得到了这个。
self.tableView.showsVerticalScrollIndicator = NO;
就像一个魅力。
*任何想要在将来做这件事的人。
答案 1 :(得分:14)
“滚动条”是你的索引栏,假设你在谈论巨大的灰色事物。
从sectionIndexTitlesForTableView返回nil,它会消失。
答案 2 :(得分:0)
我有类似的问题,但不得不处理我的页眉/页脚。基本上我只是删除了以下方法
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
return @" "; //@"Top";
}
- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section
{
return @" "; //@"Bottom";
}
答案 3 :(得分:0)
您只需使用以下代码,灰色条就会出现....
tableViewBrowse.sectionIndexTrackingBackgroundColor = [UIColor clearColor];
答案 4 :(得分:0)
使用sectionIndexBackgroundColor
的{{1}}属性设置索引栏的颜色以清除颜色,因为隐藏滚动条也会隐藏索引。
将其添加到UITableView
,如下所示:
viewDidLoad: