我在 Interface Builder 中设置了一个表格视图,将 Separator 设置为 Single Line,在数据源类中我有以下代码:
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.row == 0) {
UIImageView *topCellBackgroundImageView = [[UIImageView alloc] initWithImage:[[UIImage imageNamed:@"grouped-cell-bg-top"] resizableImageWithCapInsets:UIEdgeInsetsMake(10.0, 10.0, 10.0, 10.0)]];
cell.backgroundView = topCellBackgroundImageView;
}
// If it's the last row
else if (indexPath.row == ([tableView numberOfRowsInSection:0] - 1)) {
UIImageView *bottomCellBackgroundImageView = [[UIImageView alloc] initWithImage:[[UIImage imageNamed:@"grouped-cell-bg-bottom"] resizableImageWithCapInsets:UIEdgeInsetsMake(10.0, 10.0, 10.0, 10.0)]];
cell.backgroundView = bottomCellBackgroundImageView;
}
else {
UIImageView *middleCellBackgroundImageView = [[UIImageView alloc] initWithImage:[[UIImage imageNamed:@"grouped-cell-bg"] resizableImageWithCapInsets:UIEdgeInsetsMake(3.0, 3.0, 3.0, 3.0)]];
cell.backgroundView = middleCellBackgroundImageView;
}
}
在viewDidLoad
我做:
- (void)viewDidLoad
{
[super viewDidLoad];
self.tableView.separatorColor = [UIColor redColor];
self.tableView.backgroundView = nil;
self.tableView.backgroundColor = [UIColor colorWithRed:245/255.0 green:244/255.0 blue:240/255.0 alpha:1.0];
}
但是边框颜色永远不会出现。我尝试将它们设置在图像中,但显然这会导致图像出现很多居中问题,并且它们的边界重叠。
更新:
在环顾四周之后,它确实被设置了,但似乎设置单元格的 backgroundView 会将您设置为 backgroundView的内容放在separatorColor 上。当我删除该willDisplayCell:
方法时,红色显示良好(当我选择单元格时即使设置了 backgroundView 也会显示红色,直到我取消选择它)。问题是,如果我设置了 backgroundView,我该如何设置 separatorColor?