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

Posted

技术标签:

【中文标题】如何阻止我的自定义 UITableViewCell backgroundImage 可拉伸?【英文标题】:How can I stop my custom UITableViewCell backgroundImage from being stretchable? 【发布时间】:2011-04-20 11:41:24 【问题描述】:

如果我在 UITableViewCell 子类的 init 方法中为表格单元格创建背景图像,图像就会完全按照我的绘制方式显示出来,tableView:heightForRowAtIndexPath: 只是在它周围添加一个间隙。

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

我需要在cellForRowAtIndexPath 方法中创建背景视图,因为不同行的背景会发生变化。我怎样才能让我的图像的大小再次固定?

【问题讨论】:

【参考方案1】:

您是否尝试将单元格的 backgroundView 的 contentMode 设置为 UIViewContentModeCenter?

放在这里

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath 
     cell.backgroundView.contentMode = UIViewContentModeCenter;

【讨论】:

恐怕没什么区别。 我已经在实践中检查了我编辑的答案并且它有效,您是否收到编辑答案的通知? 抱歉 - 刚刚看到。似乎没有任何关于已编辑答案的通知。它现在完美运行。谢谢!【参考方案2】:

你可以用:

UIView *cellBackView = [[[UIView alloc] initWithFrame:CGRectZero] autorelease];
<insert image>;
cell.backgroundView = cellBackView;

我的猜测是 backgroundView 会自动拉伸,但您可以通过设置宽度和高度来确保图像不会在该视图上拉伸。这样,您就可以使用该视图做任何您喜欢的事情。

【讨论】:

我已经尝试过了,但它似乎没有做任何事情:(

以上是关于如何阻止我的自定义 UITableViewCell backgroundImage 可拉伸?的主要内容,如果未能解决你的问题,请参考以下文章

如何清除包含在重复使用的自定义 UITableViewCell 中的 WKWebview?

如何在 Storyboard 中的自定义 UITableViewCell 中配置 UITableView?

如何阻止我的自定义键盘在 iPad 上“浮动”或脱离

为啥我的自定义 UITableViewCell 没有显示?

如何在标准 UITableViewCell 中以编程方式自动布局右侧的自定义 UIButton。

为啥我的自定义 UITableViewCell 在 cellForRowAtIndexPath 中为空?