UITableView 单元格中的 imageView 在 touchdown 事件中违反 setClipsToBounds

Posted

技术标签:

【中文标题】UITableView 单元格中的 imageView 在 touchdown 事件中违反 setClipsToBounds【英文标题】:imageView in UITableView cell violates setClipsToBounds on touchdown event 【发布时间】:2012-04-25 18:33:28 【问题描述】:

我有一个UITableView,其单元格中的图片来自位于其imageView 中的URL。

图像不是正方形(是横向),但它最初加载为正方形,其中contentModescaleAspectFillsetClipsToBoundsYES。到目前为止一切顺利。

但是,当我触摸单元格时,图像“变宽”了,也就是说,它保留了scaleAspect 部分,但现在向右渗出,好像setClipsToBoundsNO

如果行/单元格不在视野范围内并以回收方式返回,则会发生相同的行为,在这种情况下,我从内存缓存而不是 URL 获取图像。

我尝试为cell.imageView 明确设置contentModesetClipsToBounds,但似乎没有效果。有什么建议吗?谢谢。

达阵前:

着陆后(或从缓存中回收):

【问题讨论】:

【参考方案1】:

imageView 单元格属性(与其他textLabeldetailTextLabel 相同)根据图像大小更改layoutSubviews 中的框架。所以你可以重新实现layoutSubviews 以获得固定的框架矩形。顺便说一句,试试TableKit 库。

【讨论】:

谢谢。你的意思是我必须继承 UITableViewCell,使用该类型的单元格,并覆盖该类的 layoutSubviews? 首先,您需要在宣传您撰写的项目时披露您的作者身份。推广自己的产品或网站时适用的规则相同(有关详细信息,请参阅FAQ)。其次,你应该解释为什么有人应该尝试一下。显示它如何解决问题中的问题的示例代码可以做到这一点。【参考方案2】:

如果有人仍在寻找解决方案,这里有一个指向正确答案的链接:UIImageView in UITableViewCell changes size on touchDown

因为你把它命名为imageView,把它命名为image_View之类的,问题就解决了!

【讨论】:

以上是关于UITableView 单元格中的 imageView 在 touchdown 事件中违反 setClipsToBounds的主要内容,如果未能解决你的问题,请参考以下文章

UITableView 单元格中的 UITextField 以编程方式成为FirstResponder

重用 uitableview 单元格以及单元格中的子视图

更新 UITableView 单元格中的特定按钮图像

滚动 UITableView 时自定义单元格中的 UITextField 文本正在更改

单元格中的 UITableView 动画导致平滑滚动中断

UITableView 自定义单元格中的 UIButton 触摸无法正常工作