Я використовую обмеження автоматичного розміщення програмно для компонування моїх власних комірок UITableView і я правильно визначаю розміри комірок у tableView:heightForRowAtIndexPath:
Він працює чудово на iOS6, і він добре виглядає і в iOS7
АЛЕ, коли я запускаю додаток на iOS7, ось таке повідомлення, яке я бачу в консолі:
Break on objc_exception_throw to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.
2013-10-02 09:56:44.847 Vente-Exclusive[76306:a0b] Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints)
(
"<NSLayoutConstraint:0xac4c5f0 V:|-(15)-[UIImageView:0xac47f50] (Names: '|':UITableViewCellContentView:0xd93e850 )>",
"<NSLayoutConstraint:0xac43620 V:[UIImageView:0xac47f50(62)]>",
"<NSLayoutConstraint:0xac43650 V:[UIImageView:0xac47f50]-(>=0)-[UIView:0xac4d0f0]>",
"<NSLayoutConstraint:0xac43680 V:[UIView:0xac4d0f0(1)]>",
"<NSLayoutConstraint:0xac436b0 V:[UIView:0xac4d0f0]-(0)-| (Names: '|':UITableViewCellContentView:0xd93e850 )>",
"<NSAutoresizingMaskLayoutConstraint:0xac6b120 h=--& v=--& V:[UITableViewCellContentView:0xd93e850(44)]>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0xac43650 V:[UIImageView:0xac47f50]-(>=0)-[UIView:0xac4d0f0]>
І справді , у цьому списку є одне з обмежень:
"<NSAutoresizingMaskLayoutConstraint:0xac6b120 h=--& v=--& V:[UITableViewCellContentView:0xd93e850(44)]>"
і я не можу встановити translatesAutoresizingMaskIntoConstraints
властивість значення contentView
NO => це зіпсувало б всю клітинку.
44 - висота комірки за замовчуванням, але я визначив власні висоти у делеґаті подання таблиці, тому чому у contentView комірки є це обмеження? Що може спричинити це?
У iOS6 цього не відбувається, і все виглядає просто чудово як на iOS6, так і на iOS7.
Мій код досить великий, тому я його не публікую тут, але сміливо запитайте пастебін, якщо він вам потрібен.
Щоб уточнити, як я це роблю, про інтиалізацію комірок:
- Я створюю всі свої мітки, кнопки тощо
- Я встановив їхню
translatesAutoresizingMaskIntoConstraints
власність на НІ - Я додаю їх як підзагляд
contentView
комірки - Я додаю обмеження на
contentView
Мені також глибоко цікаво зрозуміти, чому це відбувається лише на iOS7.