我想为我的分组tableview单元格而不是默认的圆角设置方角,我不只是想使用图像来提供这种效果。有可能吗?
答案 0 :(得分:13)
最简单的说,就是tableView:cellForRowAtIndexPath:
使用
cell.backgroundView = [[[UIView alloc] initWithFrame:cell.bounds] autorelease];
答案 1 :(得分:1)
您可以将UITableViewCell的backgroundView
和selectedBackgroundView
设置为您自己创建的自定义UIView。这应该给你一个方格单元。
答案 2 :(得分:1)
接受的答案效果很好,但遗憾的是删除了单元格之间的分隔线。如果你有一个3x3像素的TableCellBackground.png,前两行像素为白色,最下面的第三行为灰色(与分隔符颜色相匹配),你可以这样做:
// To square the corners, we replace the background view of the top and bottom cells.
// In addition, the top cell needs a separator, which we get from TableCellBackground.png.
UIImage *stretchableImage = [UIImage imageNamed:@"TableCellBackground.png"];
UIImage *cellImage = [stretchableImage resizableImageWithCapInsets:UIEdgeInsetsMake(1, 1, 1, 1)];
UIImageView *imageView = [[UIImageView alloc] initWithFrame:cell.bounds];
imageView.image = cellImage;
cell.backgroundView = imageView;
答案 3 :(得分:0)
首先根据需要设置单元格的背景视图,然后设置单元格选定的背景视图(与单元格背景相同的边界)
你可以指定cornerRadius
属性,这样就可以根据需要设置角点的舍入,我在我的情况下省略了这个属性
以下是两者的代码:
UIView *bg = [[UIView alloc] initWithFrame:cell.bounds];
bg.backgroundColor = [UIColor colorWithRed:0.980 green:0.988 blue:0.984 alpha:1];
bg.layer.borderColor = [UIColor colorWithRed:0.827 green:0.827 blue:0.835 alpha:1].CGColor;
bg.layer.borderWidth = kCellBorderWidth;
// bg.layer.cornerRadius= kCellBorderRadius;
cell.backgroundView = bg;
// to make cell selection square and not round (which is by default)
UIView *bg_selected = [[UIView alloc] initWithFrame:cell.bounds];
bg_selected.backgroundColor = [UIColor lightGrayColor];
bg_selected.layer.borderColor = [UIColor colorWithRed:0.827 green:0.827 blue:0.835 alpha:1].CGColor;
bg_selected.layer.borderWidth = kCellBorderWidth;
cell.selectedBackgroundView = bg_selected;