UITableViewCell's backgroundView overlapping contentView
我正在尝试设置 UITableViewCell 的 backgroundView 参数,但 backgroundView 与单元格的边界重叠。我尝试将masksToBounds 设置为YES,但这似乎没有什么区别。请问你能告诉我哪里出错了吗?
这是显示我的问题的图像:
这是我的代码:
1 2 3 4 5 6 | 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]; |
使用
即使单元格的角是圆角的,它们仍然是单元格的一部分(但它们包含透明像素)。当单元格显示在分组表视图中时,其背景视图(及其选定的背景视图)根据其在其部分中的位置(中间、顶部、底部、单个)进行绘制。
因此,如果您想提供自定义背景视图,则需要计算单元格在其部分中的位置并提供足够的背景:
- 通过使用 4 个不同的图像
- 或者通过使用背景图像图层的遮罩属性
- 或者通过继承 UIView 并实现 drawRect: 以便在绘制图像之前剪切图形上下文。
您是否将每个单元格设置为背景视图,如果是,为什么不将其设置为表格视图背景。