2016-04-15 2 views
0

Ich nehme UIScrollview im Storyboard und verwende automatisches Layout. Innerhalb von UIScrollview füge ich contentview als Autolayout für UIScrollview ein. Jetzt muss ich, wie in meinem App-Szenario, die Höhe von contentView ändern, also programmatisch das Autolayout von contentView geändert haben.UIScrollView SetContentSize mit automatischem Layout

Jetzt bekomme ich contentView Höhe = 445 nach programmgesteuert Ändern von Auto-Layout. Unten ist mein Code

//----set height of content view----// 
CGRect contentViewFrame = contentView.frame; 
contentViewFrame.size.height= viewMainContent.frame.origin.y+viewMainContent.frame.size.height + 20 ; 
contentView.frame = contentViewFrame; 
_contentHtConstraint.constant = contentView.frame.size.height; 

Abhängig von dieser Höhe UIScrollView ist auch 445. Aber contentSize von UIScrollview wird 675 sein.

Kann mir jemand sagen, wie man contentSize verwaltet?

+0

hast du '[self updateViewConstraints]' aufgerufen? – zhubch

+0

@zhubch Nein. Wo muss ich das nennen? – Abha

+0

rufen Sie dies auf, nachdem Sie die Einschränkungen geändert haben. – zhubch

Antwort

0

Fügen Sie Ihrer Inhaltsansicht Höhenbeschränkungen hinzu. und stelle den Ausgang dafür ein. Wenn Sie möchten, dass Ihre Inhaltshöhe beim Start des View-Controllers geändert wird. setze es in viewWillLayoutSubviews

+0

Von Ihrer Lösung aus wird nun die Inhaltsgröße von Scrolls verwaltet, die Benutzerinteraktion ist jedoch deaktiviert. Ich kann dort nichts machen. – Abha

+0

Nilesh .. Ich verwende keine Standard-Scrollansicht. Hier verwende ich TPKeyboardAvoidingScrollview – Abha

+0

Ich überprüft gerade TPKeyboardAvoidingScrollView auf Github. Seine Unterklasse von UIScrollview. Sie können auch Standard-Scrollview-Eigenschaften für TPKeyboardAvoidingScrollView verwenden. Überprüfen Sie Ihre Bildlaufansicht oder Inhaltsansicht Benutzerinteraktion ist aktiviert oder nicht. oder eine andere Ansicht überlappt Ihre Inhaltsansicht. Überprüfen Sie die Struktur für Ansichten .. Hoffe, das könnte Ihnen geholfen haben –