如果我在我的UITableViewCell子类的init方法中为我的表格单元格创建了一个背景图像,那么图像就是我绘制它的方式,而tableView:heightForRowAtIndexPath:
只是在它周围增加了一个空隙。
但是,如果我在tableView的tableView:cellForRowAtIndexPath:
方法中创建背景图像并进行设置,则更改单元格高度现在将拉伸图像。
我需要在cellForRowAtIndexPath
方法中创建背景视图,因为不同行的背景会发生变化。如何重新修复图像尺寸?
答案 0 :(得分:5)
您是否尝试将contentMode设置为UIViewContentModeCenter以获取单元格的backgroundView?
把它放在这里
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
cell.backgroundView.contentMode = UIViewContentModeCenter;
}
答案 1 :(得分:0)
您可以使用以下内容创建内容:
UIView *cellBackView = [[[UIView alloc] initWithFrame:CGRectZero] autorelease];
<insert image>;
cell.backgroundView = cellBackView;
我的猜测是backgroundView会自动拉伸,但您可以通过设置宽度和高度来确保图像不会在该视图上拉伸。这样,您可以使用该视图执行任何操作。