2015-11-22 1 views
3

Я использую автозапуск для 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 является ни одной строки, она исчезает.

enter image description here

И это журнал ошибок здесь

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. 

Мой раскадровки здесь enter image description here Кто-то может мне помочь?

+0

Существует не так много, чтобы увидеть, только это может быть вызвано из-за первых двух строк с NSAutoresizingMaskLayoutConstraint. Есть ли какое-либо представление, использующее автоматическую компоновку без установки translatesAutoresizingMaskIntoConstraints в NO? –

+0

Я добавляю ограничения для UILabel в раскадровке, просто завязываю без размера. мне нужно настроить UILabel переводитAutoresizingMaskIntoConstraints в NO в коде? – user5591194

+0

Нет, об этом позаботились, я думаю, вы можете исправить это с ответом dasdom. –

ответ

2

Marco Arment имеет great gist о том, как это сделать.

+0

Это не работает. Я сказал, iPhone 5 отлично работает, iPhone 6 не работает. Пожалуйста, посмотрите изображение в моем вопросе. – user5591194

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

  • Нет связанных вопросов^_^