Я использую автозапуск для UILabel в TableHeaderView. Высота UILabel не фиксирована, это, возможно, однострочный или многострочный. Я закодировать это в ViewController:UILabel в UITableHeaderView autoLayout не работает для iPhone 6
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
if let headerView = tableView.tableHeaderView {
let height = headerView.systemLayoutSizeFittingSize(UILayoutFittingCompressedSize).height
var headerFrame = headerView.frame
if height != headerFrame.size.height {
headerFrame.size.height = height
headerView.frame = headerFrame
tableView.tableHeaderView = headerView
}
}
}
Он отлично работает на iPhone 5. Но, на iPhone 6, когда UILabel является ни одной строки, она исчезает.
И это журнал ошибок здесь
2015-11-22 16:50:42.338 Basket[11898:996678] 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)
(
"<NSAutoresizingMaskLayoutConstraint:0x7f97840bd210 h=--& v=--& H:[UIView:0x7f9784072380(375)]>",
"<NSAutoresizingMaskLayoutConstraint:0x7f97840bd2b0 h=--& v=--& V:[UIView:0x7f9784072380(363.5)]>",
"<NSLayoutConstraint:0x7f9784032650 UIImageView:0x7f97840705a0.width == 1.33333*UIImageView:0x7f97840705a0.height>",
"<NSLayoutConstraint:0x7f9784073a40 V:[UILabel:0x7f9784073e90'Funnybeer'(15)]>",
"<NSLayoutConstraint:0x7f9784128b40 V:[UILabel:0x7f9784128940'Nino Mamaladze'(15)]>",
"<NSLayoutConstraint:0x7f9784074d10 H:[UIImageView:0x7f97840705a0]-(0)-| (Names: '|':UIView:0x7f9784072380)>",
"<NSLayoutConstraint:0x7f9784074d60 H:|-(0)-[UIImageView:0x7f97840705a0] (Names: '|':UIView:0x7f9784072380)>",
"<NSLayoutConstraint:0x7f9784074e00 V:|-(0)-[UIImageView:0x7f97840705a0] (Names: '|':UIView:0x7f9784072380)>",
"<NSLayoutConstraint:0x7f9784074f40 V:[UIImageView:0x7f97840705a0]-(0)-[UIView:0x7f9784073d20]>",
"<NSLayoutConstraint:0x7f9784075080 V:[UIView:0x7f9784073d20]-(22)-[UILabel:0x7f9784073e90'Funnybeer']>",
"<NSLayoutConstraint:0x7f9784075210 V:[UILabel:0x7f9784073e90'Funnybeer']-(3)-[UILabel:0x7f9784128940'Nino Mamaladze']>",
"<NSLayoutConstraint:0x7f9784075260 V:[UILabel:0x7f9784074300'see you on friday :)']-(0)-| (Names: '|':UIView:0x7f9784072380)>",
"<NSLayoutConstraint:0x7f9784075350 'summary top distance' V:[UILabel:0x7f9784128940'Nino Mamaladze']-(10)-[UILabel:0x7f9784074300'see you on friday :)']>",
"<NSLayoutConstraint:0x7f9781cf59f0 'tool height' V:[UIView:0x7f9784073d20(44)]>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x7f9781cf59f0 'tool height' V:[UIView:0x7f9784073d20(44)]>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.
Мой раскадровки здесь Кто-то может мне помочь?
Существует не так много, чтобы увидеть, только это может быть вызвано из-за первых двух строк с NSAutoresizingMaskLayoutConstraint. Есть ли какое-либо представление, использующее автоматическую компоновку без установки translatesAutoresizingMaskIntoConstraints в NO? –
Я добавляю ограничения для UILabel в раскадровке, просто завязываю без размера. мне нужно настроить UILabel переводитAutoresizingMaskIntoConstraints в NO в коде? – user5591194
Нет, об этом позаботились, я думаю, вы можете исправить это с ответом dasdom. –