如何阻止我的自定义UITableViewCell backgroundImage被拉伸?

时间:2011-04-20 11:41:24

标签: iphone cocoa-touch uitableview uiimageview

如果我在我的UITableViewCell子类的init方法中为我的表格单元格创建了一个背景图像,那么图像就是我绘制它的方式,而tableView:heightForRowAtIndexPath:只是在它周围增加了一个空隙。

但是,如果我在tableView的tableView:cellForRowAtIndexPath:方法中创建背景图像并进行设置,则更改单元格高度现在将拉伸图像。

我需要在cellForRowAtIndexPath方法中创建背景视图,因为不同行的背景会发生变化。如何重新修复图像尺寸?

2 个答案:

答案 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会自动拉伸,但您可以通过设置宽度和高度来确保图像不会在该视图上拉伸。这样,您可以使用该视图执行任何操作。