Jak uzyskać widok przewijania do pracy z funkcją autolayout, aby obliczyć rozmiar zawartości?UIScroll Wyświetl przerwy w korzystaniu z funkcji autolayout dla rozmiaru w systemie iOS 8/Xcode 6 GM Seed
Wygląda na to, że Xcode 6 utworzy ograniczenie "UIView Encapsute Layout Height", gdy tylko pojawi się Scroll View (z funkcją Autolayout), a to ograniczenie wymusi na siatce wysokość do wysokości klatki (w ten sposób renderując funkcjonalność przewijania widoku przewijania bezużyteczny).
Błąd:
2014-09-09 21:06:01.059 ScrollViewLayoutBreaking[24488:88731] 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:0x7f9a19ebd150 V:[UIView:0x7f9a19ea7f90(530)]>",
"<NSLayoutConstraint:0x7f9a19ec1370 V:[UIView:0x7f9a19ebd5e0(110)]>",
"<NSLayoutConstraint:0x7f9a19ea9ee0 V:[_UILayoutGuide:0x7f9a19ec18d0]-(0)-[UIView:0x7f9a19ea7f90]>",
"<NSLayoutConstraint:0x7f9a19ec1fa0 V:[UIView:0x7f9a19ea7f90]-(0)-[UIView:0x7f9a19ebd5e0]>",
"<NSLayoutConstraint:0x7f9a19e8d270 V:[UIView:0x7f9a19ebd5e0]-(5)-[_UILayoutGuide:0x7f9a19ec2260]>",
"<_UILayoutSupportConstraint:0x7f9a19ea0ac0 V:[_UILayoutGuide:0x7f9a19ec18d0(0)]>",
"<_UILayoutSupportConstraint:0x7f9a19ea7380 V:|-(0)-[_UILayoutGuide:0x7f9a19ec18d0] (Names: '|':UIScrollView:0x7f9a19ea76a0)>",
"<_UILayoutSupportConstraint:0x7f9a19e21d00 V:[_UILayoutGuide:0x7f9a19ec2260(0)]>",
"<_UILayoutSupportConstraint:0x7f9a19e8a930 _UILayoutGuide:0x7f9a19ec2260.bottom == UIScrollView:0x7f9a19ea76a0.bottom>",
"<NSLayoutConstraint:0x7f9a1c003f50 'UIView-Encapsulated-Layout-Height' V:[UIScrollView:0x7f9a19ea76a0(504)]>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x7f9a19ebd150 V:[UIView:0x7f9a19ea7f90(530)]>
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.
Edycja: Wszystkie widoki wewnątrz tego zwoju View są autolayouted i już przypięte do obu Przewiń widok z góry iz dołu, a także obu stronach. Jestem świadomy, że niepowodzenie w wiązaniu go we wszystkich czterech stronach nie spowoduje utworzenia rozmiaru treści. Autolayout i przewijanie są poprawne w iOS 7/XCode 5, ale dokładnie ten sam kod i podział storyboardów w iOS 8/XCode 6.
Skorygowane pytanie, aby było krótsze i bardziej przejrzyste. Obecnie używa Xcode 6 GM Seed. – Uzaak
Jakieś rozwiązanie? – jamespick
Najlepsze, co udało mi się wymyślić, to widok tabeli z pojedynczą komórką do samodzielnego rozmiaru, która będzie działać jak widok przewijania, bez stylu separatora. Ale to wystarczająco okropne, bym użył go jako absolutnie ostatniej szansy. – Uzaak