2013-10-27 2 views
2

Я столкнулся с этой проблемой, мне нужно определить динамическую высоту UITableViewCell.Правильно определить ограничение для изменения размера UITableViewCell

enter image description here

Красные линии соответствуют перезначительном виду (будет расти вертикально), синяя метка есть 3 ограничения: два для каждых немедленных красных взглядов выше (> = 8), еще один с 170 и более низкий приоритета для SuperView.

Зеленый один имеет нижнее ограничение на надтаблицы (5)

Когда я пытаюсь запустить свой код, это дает мне это:

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:0x19d65bb0 V:[UIView:0x19d9a9a0(5)]>", 
"<NSLayoutConstraint:0x19d667d0 V:[UILabel:0x19de4180(19)]>", 
"<NSLayoutConstraint:0x19d5ba70 V:[UILabel:0x19d61870(19)]>", 
"<NSLayoutConstraint:0x19d36df0 V:[UILabel:0x19d36e80(19)]>", 
"<NSLayoutConstraint:0x19d35d30 V:[UIView:0x19d36130(0)]>", 
"<NSLayoutConstraint:0x19e7b310 V:|-(5)-[UILabel:0x19d6b520] (Names: '|':UITableViewCellContentView:0x19d97580)>", 
"<NSLayoutConstraint:0x17d0b060 V:[UILabel:0x19d6b520]-(5)-[UIView:0x19d9a9a0]>", 
"<NSLayoutConstraint:0x17d0a480 V:[UIView:0x19d9a9a0]-(8)-[UILabel:0x19de4180]>", 
"<NSLayoutConstraint:0x17d0c920 V:[UILabel:0x19de4180]-(8)-[UILabel:0x19d61870]>", 
"<NSLayoutConstraint:0x17d0a100 V:[UILabel:0x19d61870]-(8)-[UIView:0x19d839e0]>", 
"<NSLayoutConstraint:0x17d11ad0 V:[UIView:0x19d839e0]-(8)-[UILabel:0x19d36e80]>", 
"<NSLayoutConstraint:0x19e742a0 V:[UILabel:0x19d36e80]-(8)-[UILabel:0x19d36770]>", 
"<NSLayoutConstraint:0x19ed84a0 V:[UILabel:0x19d36770]-(8)-[UIView:0x19d36130]>", 
"<NSLayoutConstraint:0x19e76410 V:[UIView:0x19d36130]-(>=8)-[UILabel:0x19d35560]>", 
"<NSLayoutConstraint:0x19ed8af0 V:[UILabel:0x19d35560]-(8)-[UITextView:0x1832ba00]>", 
"<NSLayoutConstraint:0x19e7abf0 V:[UITextView:0x1832ba00]-(8)-[UILabel:0x19e7d890]>", 
"<NSLayoutConstraint:0x19e83d90 V:[UILabel:0x19e7d890]-(8)-[UITextView:0x18a95e00]>", 
"<NSLayoutConstraint:0x19e7b520 V:[UITextView:0x18a95e00]-(5)-| (Names: '|':UITableViewCellContentView:0x19d97580)>", 
"<NSAutoresizingMaskLayoutConstraint:0x19d46fc0 h=--& v=--& V:[UITableViewCellContentView:0x19d97580(0)]>" 
) 

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x19d36df0 V:[UILabel:0x19d36e80(19)]> 

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. 

Итак, вопрос: Что таким правильный способ достижения этого?

ответ

1

ли пользуешься storyboard, если да, то просто идти к Editor->Resolve Auto Layout Issues->Clear All Constraints In ........ Controller, а затем Add Missing Constraints In ...... Controller

Это поможет решить проблему разрыва contrainsts между видом

+0

Thsnks, но вопрос заключается в том, чтобы получить [UIView sizeToFit] или [UIView.frame], чтобы отобразить минимальный размер представления, который должен содержать расширенные виды –

Смежные вопросы