UITableViewCell分组样式中的方形而不是圆角

时间:2011-10-08 06:13:40

标签: iphone objective-c uitableview cell tableview

我想为我的分组tableview单元格而不是默认的圆角设置方角,我不只是想使用图像来提供这种效果。有可能吗?

4 个答案:

答案 0 :(得分:13)

最简单的说,就是tableView:cellForRowAtIndexPath:使用

cell.backgroundView = [[[UIView alloc] initWithFrame:cell.bounds] autorelease];

答案 1 :(得分:1)

您可以将UITableViewCell的backgroundViewselectedBackgroundView设置为您自己创建的自定义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;