Итак, в моем TableViewCell у меня есть imageView, у которого есть 0 байт-ограничение для трейлинг-листа и ведущего супервизора. Верхние ограничения 8 и нижнего ограничения 30 для супервизора. А потом добавить аспект ограничение в ImageView в соответствии с изображением с этим кодом:Мой ломающий лог-лог не имеет никакого смысла, может кто-нибудь помочь мне понять?
override var image: UIImage? {
didSet {
if let image = image {
let aspect = image.size.width/image.size.height
aspectConstraint = NSLayoutConstraint(item: self,
attribute: NSLayoutAttribute.width,
relatedBy: NSLayoutRelation.equal,
toItem: self,
attribute: NSLayoutAttribute.height,
multiplier: aspect,
constant: 0.0)
}
}
}
internal var aspectConstraint : NSLayoutConstraint? {
didSet {
if oldValue != nil {
self.removeConstraint(oldValue!)
}
if aspectConstraint != nil {
self.addConstraint(aspectConstraint!)
}
}
}
как мой код нарушения каких-либо ограничений? они не имеют ничего общего с Афоризм
2017-01-10 21: 15: 18.502301 Gymkhana [4538: 65958] [LayoutConstraints] Невозможно одновременно удовлетворяют ограничениям. Вероятно, по крайней мере один из ограничений в следующем списке - это тот, который вы не хотите. Попробуйте : (1) посмотрите на каждое ограничение и попытайтесь выяснить, какие вы не ожидаете; (2) найти код, который добавил нежелательное ограничение или ограничения и исправить его. (
"<NSLayoutConstraint:0x78698d60 UILabel:0x7869e890'Identical twins play a mi...'.top == UITableViewCellContentView:0x7869e500.topMargin (active)>",
"<NSLayoutConstraint:0x7869c930 V:[UILabel:0x79ba65a0'1h']-(8)-[Gymkhana.ThumbnailImageView:0x7869c340] (active)>",
"<NSLayoutConstraint:0x786a9ef0 H:[Gymkhana.ThumbnailImageView:0x7869c340]-(0)-| (active, names: '|':UITableViewCellContentView:0x7869e500)>",
"<NSLayoutConstraint:0x78689700 H:|-(0)-[Gymkhana.ThumbnailImageView:0x7869c340] (active, names: '|':UITableViewCellContentView:0x7869e500)>",
"<NSLayoutConstraint:0x7869a1b0 V:[Gymkhana.ThumbnailImageView:0x7869c340]-(30)-| (active, names: '|':UITableViewCellContentView:0x7869e500)>",
"<NSLayoutConstraint:0x7869ca10 V:[UILabel:0x7869e890'Identical twins play a mi...']-(8)-[UILabel:0x79ba65a0'1h'] (active)>",
"<NSLayoutConstraint:0x798fb620 Gymkhana.ThumbnailImageView:0x7869c340.width == Gymkhana.ThumbnailImageView:0x7869c340.height (active)>",
"<NSLayoutConstraint:0x79b85b80 'UIView-Encapsulated-Layout-Height' UITableViewCellContentView:0x7869e500.height == 329 (active)>",
"<NSLayoutConstraint:0x79b82b80 'UIView-Encapsulated-Layout-Width' UITableViewCellContentView:0x7869e500.width == 320 (active)>")
будет пытаться восстановить разбив ограничение
<NSLayoutConstraint:0x798fb620
Gymkhana.ThumbnailImageView:0x7869c340.width==Gymkhana.ThumbnailImageView:0x7869c340.height (active)>
Можете ли вы включить строки для ограничений и ограничения, которые это сломало? –
Попробуйте удалить нижнее ограничение. Предоставляет ли он вам предупреждение? – Yannick
@yannick Удаление нижнего ограничения делает мою ячейку просмотра таблицы сжатой, а просмотр изображения невозможен – samitarmum