时间:2010-07-06 18:59:33

标签: objective-c scrollbar hide uitableview

我正在使用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

5 个答案:

答案 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: