W mojej aplikacji mam niestandardowe tableViewCells ze stałym współczynnikiem (16x9). Aby to osiągnąć, umieściłem widok w komórce, naprawiłem go do jego widoku nadrzędnego (chociaż zrobiłem to w konstruktorze interfejsów: V/H:|-[innerView]-|
). Umieściłem na nim także ograniczenie proporcji.UITableViewAutomaticDimension nie działa poprawnie w systemie iOS 9
W mojej tabeliViewController używam UITableViewAutomaticDimension
jako wysokość komórki tabeli.
Szacowana wysokość wiersza wynosi 180, co jest dokładnym rozmiarem komórki na wyświetlaczu o szerokości 320 pikseli (jak widać, jak widać).
Nadal wdrażam wersję 8.4, ale podczas uruchamiania projektu na urządzeniu z iOS 9 otrzymuję masę ostrzeżeń o automatycznym układzie, mimo że wszystko działa dobrze i wygląda idealnie.
Samo ostrzeżenie jest absolutnie poprawne. Są dwa ograniczenia, których nie chcę - te, które iOS dodają same.
2015-09-29 11:24:57.771 app[1039:324736] 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:0x147d3e0d0 UIView:0x14901ff70.height == 0.5625*UIView:0x14901ff70.width>",
"<NSLayoutConstraint:0x147dd0210 H:|-(0)-[UIView:0x14901ff70] (Names: '|':UITableViewCellContentView:0x14901f960)>",
"<NSLayoutConstraint:0x147deeca0 V:|-(0)-[UIView:0x14901ff70] (Names: '|':UITableViewCellContentView:0x14901f960)>",
"<NSLayoutConstraint:0x149053c30 V:[UIView:0x14901ff70]-(0)-| (Names: '|':UITableViewCellContentView:0x14901f960)>",
"<NSLayoutConstraint:0x147dbc2b0 H:[UIView:0x14901ff70]-(0)-| (Names: '|':UITableViewCellContentView:0x14901f960)>",
"<NSLayoutConstraint:0x149070800 'UIView-Encapsulated-Layout-Height' V:[UITableViewCellContentView:0x14901f960(179.5)]>",
"<NSLayoutConstraint:0x1490707b0 'UIView-Encapsulated-Layout-Width' H:[UITableViewCellContentView:0x14901f960(320)]>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x147d3e0d0 UIView:0x14901ff70.height == 0.5625*UIView:0x14901ff70.width>
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.
Jedyne, co widzę tutaj, to brakujące 0,5 piksele, które zostały w jakiś sposób magicznie odjęte.
Jedyne, co widzę tutaj, to brakujące 0,5 piksele, które iOS odejmuje w jakiś magiczny sposób? Gdzie są te informacje? – BangOperator
@somexyz odczytać zalogowane ograniczenia: 'V: [UITableViewCellContentView: 0x14da0ff60 (179.5)]' –