Próbuję zaimplementować prosty widget dzienny, który zawiera pojedynczą etykietę ze stałą wysokością.Ustawianie stałej wysokości dla dzisiejszego rozszerzenia iOS8 przy użyciu automatycznego układu
W dokumentacji jest napisane:
Jeśli widget posiada dodatkowe treści do wyświetlenia, na której można polegać Auto ograniczenia układu, aby dostosować wysokość widżetu jako właściwe.
Jednak wciąż otrzymuję ostrzeżenia "Nie można jednocześnie spełnić ograniczeń".
Oto, co starałem:
- Utwórz nowy „dzisiaj rozszerzenie” cel, tworzy storyboard z „Hello World” etykiety i widoku kontrolera.
- Ustaw ograniczenie wysokości na etykietę "Hello World".
A kiedy biegnę uzyskać:
2014-09-18 21:13:07.123 TestWidget[23381:871330] 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:0x7f87c31126d0 V:[UILabel:0x7f87c3113230'Hello World Fixed Height'(21)]>",
"<NSLayoutConstraint:0x7f87c30235b0 V:[_UILayoutGuide:0x7f87c30222b0]-(NSSpace(8))-[UILabel:0x7f87c3113230'Hello World Fixed Height']>",
"<NSLayoutConstraint:0x7f87c3023600 V:[UILabel:0x7f87c3113230'Hello World Fixed Height']-(NSSpace(8))-[_UILayoutGuide:0x7f87c3022f00]>",
"<_UILayoutSupportConstraint:0x7f87c3021980 V:[_UILayoutGuide:0x7f87c30222b0(0)]>",
"<_UILayoutSupportConstraint:0x7f87c30218a0 V:|-(0)-[_UILayoutGuide:0x7f87c30222b0] (Names: '|':UIView:0x7f87c3112f20)>",
"<_UILayoutSupportConstraint:0x7f87c3023360 V:[_UILayoutGuide:0x7f87c3022f00(0)]>",
"<_UILayoutSupportConstraint:0x7f87c3023300 _UILayoutGuide:0x7f87c3022f00.bottom == UIView:0x7f87c3112f20.bottom>",
"<NSLayoutConstraint:0x7f87c3326710 'UIView-Encapsulated-Layout-Height' V:[UIView:0x7f87c3112f20(628)]>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x7f87c31126d0 V:[UILabel:0x7f87c3113230'Hello World Fixed Height'(21)]>
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.
Co robię źle? Jaki jest prawidłowy sposób tworzenia widżetu ze stałą wysokością za pomocą automatycznego układu?
Po znalezieniu tego samego problemu, znalazłeś rozwiązanie? – edwardmp
Jeszcze nie, postanowiłem użyć preferredContentSize na razie. Istnieje [ta odpowiedź] (http://stackoverflow.com/a/26167781/3229567), która wydaje się działać dla niektórych osób, ale nie próbowałem tego. – kbtombul
Yup, zrobił dokładnie to samo. Te rozszerzenia zawierają wiele błędów. – edwardmp