Ich verwende Storyboard
mit autolayout
. In meiner ViewController
habe ich eine Grundstruktur: eine UIScrollView
und eine contentView (UIView
), die verschiedene Bezeichnungen enthält). Dann habe ich verschiedene Elemente, die ich in der viewDidAppear
Methode der Klasse in meinem contentView
hinzufügen, dann um es neu zu berechnen ist Baugröße ich dies tun:UIView-Frame wird nicht aktualisiert in viewDidAppear
- (void)fixContentViewHeight
{
_contentView.frame = CGRectMake(_contentView.frame.origin.x, _contentView.frame.origin.y, _contentView.frame.size.width, operators.frame.origin.y + operators.frame.size.height);
//constraint for contentView height
_contentViewHeight.constant = operators.frame.origin.y + operators.frame.size.height;
}
- (void)fixScrollViewHeight
{
_scrollView.frame = _contentView.frame;
_scrollView.contentSize = _contentView.frame.size;
}
wo operators
ist die letzte veröffentlichte Element contentView
, es ist immer auf der Unterseite des Rahmens. Ich rufe diese 2 Methoden innerhalb der viewDidAppear
und sie machen die Ansicht scrollbar, das Problem ist, dass der Rahmen von contentView
nicht aktualisiert wird, so dass die letzten Elemente immer unclickable sind (weil sie außerhalb des Rahmens der Ansicht platziert sind).
Was mache ich falsch? Warum wird die scrollView
scrollbar, aber die contentView
behält ihren alten Rahmen?
Verwenden Sie das automatische Layout? – Miknash
@NickCatib ja Ich benutze Autolayout – Signo