objective-c - UITableViewCell 的 backgroundView 重叠 contentView

标签 objective-c ios uitableview

我正在尝试设置 UITableViewCell 的 backgroundView 参数,但 backgroundView 与单元格的边界重叠。我尝试将 masksToBounds 设置为 YES,但这似乎没有什么不同。你能告诉我哪里出错了吗?

这是一张显示我的问题的图片:

enter image description here

这是我的代码:

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/

相关文章:

ios - 为什么 Twitter 列表 API 没有返回正确数量的结果?

objective-c - Objective C - iOS,在屏幕外的静态表格单元格内迭代 UILabels

ios - TableView reloadData 不会更新 iPad 中的 UI,但适用于 iPhone

objective-c - obj-c中连续按下按钮时如何重复执行某个 Action

objective-c - 在单个 Assert… 宏中执行多个语句?

ios - 你如何截取 ARKit 相机 View ?

iphone - 如何在单行中管理多个标签但没有。表格 View 中的单元格取决于 iPhone SDK 中的数组。

objective-c - 如何通过点击 map 来识别国家?

iphone - 用户单击“主页”按钮时如何显示退出确认对话框?

ios - Pod Repo Push 在 iOS 中不起作用