uitableview第一个和最后一个可见的单元格颜色变化

时间:2012-07-26 17:11:09

标签: ios uitableview

我正试图在UITableView中为iPhone实现此功能:始终只有FIRST和LAST VISIBLE单元格具有不同的背景颜色,比如红色,而其他单元格的颜色保持白色。滚动时平滑变化 我试过了:

<{1>}文件中的

.m

但滚动回来时颜色不会更新。

2 个答案:

答案 0 :(得分:5)

如果需要,可以在cellForRowAtIndexPath中完成所有操作。

 
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    NSString *tableViewCellID = @"cellID";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:tableViewCellID]; if (!cell) cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:tableViewCellID]; [[cell textLabel] setText:[NSString stringWithFormat:@"some sting %i", [indexPath row]]]; NSArray *visibleCells = [tableView visibleCells]; for (int i = 0; i < [visibleCells count]; i++) { UITableViewCell *cell = [visibleCells objectAtIndex:i]; if (i == 0 || i == [visibleCells count] - 1) [cell setBackgroundColor:[UIColor redColor]]; else [cell setBackgroundColor:[UIColor clearColor]]; } return cell;

}

答案 1 :(得分:-1)

在你的

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

尝试这样的事情

//Find the first row
if(indexPath.row == 0){
    cell.contentView.backgroundColor = [UIColor redColor];
}

要检查最后一行,您应该重复使用您为

制作的代码
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section