我正在尝试设置 UITableViewCell 的 backgroundView 参数,但 backgroundView 与单元格的边界重叠。我尝试将 masksToBounds 设置为 YES,但这似乎没有什么不同。你能告诉我哪里出错了吗?
这是一张显示我的问题的图片:
这是我的代码:
UIImageView *iv = [[[UIImageView alloc] initWithFrame:cell.frame] autorelease];
[iv setImage:[UIImage imageNamed:@"paper"]];
[iv.layer setMasksToBounds:YES];
[cell.layer setMasksToBounds:YES];
[cell.contentView.layer setMasksToBounds:YES];
[cell setBackgroundView:iv];
最佳答案
使用 masksToBounds
不起作用,因为单元格的边界是一个矩形。
即使单元格的角是圆的,它们仍然是单元格的一部分(但它们包含透明像素)。当一个单元格显示在分组 TableView 中时,其背景 View (及其选定的背景 View )根据其在其部分中的位置(中间、顶部、底部、单个)绘制。
因此,如果您想提供自定义背景 View ,您需要计算单元格在其部分中的位置并提供足够的背景:
- 使用 4 张不同的图片
- 或者使用背景图片图层的 mask 属性
- 或者通过子类化 UIView 并实现 drawRect: 以便在绘制图像之前裁剪图形上下文。
关于objective-c - UITableViewCell 的 backgroundView 重叠 contentView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8554700/