tldr : если ваш пользовательский подкласс UITableViewCell
имеет @property
IBOutlet UIImageView*
с именем imageView
, измените свое имя на другое (например, customImageView
), и оно будетработать должным образом.Прочитайте остальную часть ответа, чтобы узнать, почему
Я вижу, что никто не ответил на это, и я потратил целую неделю, пытаясь найти решение этой проблемы, поэтому вот что случилось со мной, и как предотвратить этопроисходит с вами (таким образом решая вашу проблему).
Я создал CustomTableViewCell
, который расширяет UITableViewCell
.
Я добавил @property (weak, nonatomic) IBOutlet UIImageView *imageView;
в свою собственную ячейку.До сих пор все выглядит нормально, верно?
За исключением случаев, когда это не так.
UITableViewCell
уже имеет свойство imageView
.iOS 7 сначала использует ваше свойство, но затем, когда ячейка используется повторно, используется UITableViewCell
imageView , поэтому игнорируются все ваши ограничения или ранее определенные фиксированные размеры.
iOS 8 всегда использует изображение с UITableViewCell
.поэтому проблема там более очевидна.Предыдущие версии iOS также имели разную степень этой проблемы, обычно с очень похожими симптомами.
Решение?Либо обработайте свойство UITableViewCell.imageView
самостоятельно (добавьте код для разметки вида), либо создайте собственное свойство с другим именем , с помощью которого вы можете добавить ограничения (в случае, если вы используете автоматическое расположение) на раскадровке или XIB.