tldr:如果您的自定义UITableViewCell
子类有一个@property
IBOutlet UIImageView*
被调用imageView
的名称,请将您的名称更改为其他名称(例如customImageView
),它将正常工作。阅读其余答案以了解原因
我看到没有人回答这个问题,我浪费了整整一周的时间试图找到解决方案,所以这就是发生在我身上的事情,以及如何防止它发生在你身上(从而解决你的问题)。
我创建了一个CustomTableViewCell
which extends UITableViewCell
。
我添加@property (weak, nonatomic) IBOutlet UIImageView *imageView;
到我的自定义单元格中。到目前为止一切似乎都很好,对吧?
除非它不是。
UITableViewCell
已经有imageView
房产了。iOS 7 首先使用您的属性,但是当重用 Cell 时,会使用UITableViewCell
的imageView,因此会忽略您的所有约束或先前定义的固定大小。
iOS 8 总是使用来自UITableViewCell
. 所以问题在那里更明显。以前的 iOS 版本也有不同程度的这个问题,通常会出现非常相似的症状。
解决方案?自己处理属性(添加用于布局视图的代码)或使用不同的名称UITableViewCell.imageView
创建自己的属性,您可以使用它在 Storyboard 或 xib 上添加约束(如果您使用自动布局)。