我有一个分组的tableview,我在viewDidload中设置了它的背景;
self.tableView.backgroundView = nil;
self.tableView.backgroundColor = [UIColor clearColor];
self.tableView.separatorColor= [UIColor APP_SEPERATOR_COLOR];
这是我设定的方法:
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
cell.backgroundColor=[UIColor clearColor];
cell.backgroundView.alpha=0;
cell.textLabel.text=cellValue;
return cell;
这样可以正常工作,但是当有30-40个单元格时,当我向下滚动时,分隔线和表格边框开始迷路,并且再也不会再回来......当我向上滚动时。
任何想法?
答案 0 :(得分:1)
当细胞滚动和离开屏幕时,细胞会被重复使用。在这种情况下,将调用tableView:cellForRowAtIndexPath:
中的自定义。这将覆盖已绘制的内容,包括边框。
只需将代码样式移动到单元格定义部分:
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
cell.backgroundColor=[UIColor clearColor];
cell.backgroundView.alpha=0;
}
cell.textLabel.text=cellValue;
cell.textLabel.font = [UIFont APP_QUESTIONS_FONT];
cell.textLabel.textColor=[UIColor APP_TEXT_COLOR];
return cell;
答案 1 :(得分:-2)
为什么不能说
self.tableView.separatorColor = [UIColor colorWithHue:0.56f saturation:0.98 brightness:0.65 alpha:0.6];
有自己吗?因为滚动UITableView时每个单元格调用APP_SEPERATOR_COLOR然后需要时间重新绘制。有没有理由使用APP_SEPERATOR_COLOR作为单独的方法?