我正在尝试将UIEdgeInsetsMake
单元格的背景设置为渐变。我已经尝试了多种方法来让它工作,但无论我使用什么,总是有一个问题。
我只有两个静态单元格,我试图将它们设置backgroundView
在willDisplayCell:
. 我有顶部、底部和中间单元格的单独图像,但由于我有两个单元格,我只需要顶部和底部。这些是那些图像:
最佳
底部
底部的顶部缺少一条线,因此它们之间没有 2pt 线。我稍微调整了底部的高度以进行补偿(高 1pt)。这些图像是 44x44pt。
我将它们设置如下:
- (void)tableView:(UITableView *)tableView
willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.row == 0) {
UIImageView *topCellBackgroundImageView =
[[UIImageView alloc] initWithImage:[[UIImage imageNamed:@"grouped-cell-bg-top"]
resizableImageWithCapInsets:UIEdgeInsetsMake(5.0, 5.0, 5.0, 5.0)]];
cell.backgroundView = topCellBackgroundImageView;
}
// If it's the last row
else if (indexPath.row == ([tableView numberOfRowsInSection:0] - 1)) {
UIImageView *bottomCellBackgroundImageView =
[[UIImageView alloc] initWithImage:[[UIImage imageNamed:@"grouped-cell-bg-bottom"]
resizableImageWithCapInsets:UIEdgeInsetsMake(5.0, 5.0, 5.0, 5.0)]];
cell.backgroundView = bottomCellBackgroundImageView;
}
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}
这效果不好。如下图所示,在顶部单元格中,有一个 1pt 白色“带”穿过单元格,看起来非常难看。我不知道它为什么在那里。
所以我将 更改topCellBackgroundView
为具有 的边缘插图(5.0, 5.0, 0.0, 5.0)
,因为它仅在顶部圆润,因此bottom
不需要考虑该属性(它是平的)。这完美!除非您选择单元格,否则底部单元格不再占据其整个单元格。
我应该做些什么?似乎无论我做什么,它都不起作用。我也尝试了 1.0 而不是 0.0,以及 -1.0 无济于事。