UITableView单元格中的imageView在触地事件时违反setClipsToBounds

UITableView单元格中的imageView在触地事件时违反setClipsToBounds,uitableview,imageview,contentmode,Uitableview,Imageview,Contentmode,我有一个UITableView,它的单元格中有一个放在imageView中的URL中的图像 图像不是方形的,而是横向的,但是它最初作为方形加载,方式是contentMode为ScaleSpectFill,setClipsToBounds为YES。到目前为止还不错 但是,当我触摸到单元格时,图像变宽了,也就是说,它保留了ScaleSpect部分,但现在向右流出,就好像setClipsToBounds不是 如果行/单元格不在视图中,并以循环方式返回,则会发生相同的行为,在这种情况下,我的图像是从内存

我有一个UITableView,它的单元格中有一个放在imageView中的URL中的图像

图像不是方形的,而是横向的,但是它最初作为方形加载,方式是contentMode为ScaleSpectFill,setClipsToBounds为YES。到目前为止还不错

但是,当我触摸到单元格时,图像变宽了,也就是说,它保留了ScaleSpect部分,但现在向右流出,就好像setClipsToBounds不是

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

我已经尝试为cell.imageView显式设置contentMode和setClipsToBounds,但似乎没有效果。有什么建议吗?谢谢

着陆前:

着陆或从缓存中回收后:


imageView单元格属性与其他textLabel和detailTextLabel相同,它会根据图像大小在LayoutSubview中更改其框架。因此,您可以重新实现LayoutSubView,使其具有固定的frame rect。顺便说一句,试试图书馆。

如果有人仍在寻找解决方案,这里有一个指向正确答案的链接:


这是因为您将其命名为imageView,将其命名为类似imageView的名称,问题就解决了

谢谢。你的意思是我必须将UITableViewCell子类化,使用该类型的单元格,并重写该类的LayoutSubView吗?首先,在升级您编写的项目时,您需要披露您的作者身份。当您推广自己的产品或网站时,同样的规则也适用。有关详细信息,请参阅。第二,你应该解释为什么有人应该尝试。示例代码显示了如何解决问题中的问题。