我在滚动视图中将标签居中存在问题。基本上我需要从一个选项卡输入一些用户输入,然后根据数据在另一个选项卡中显示结果。现在我已经设置了一个标签,告诉用户如果用户点击选项卡而没有先插入数据,就会插入一些数据。当用户未插入任何数据并按结果选项卡时,一切正常。它看起来像这样:
centered label http://i39.tinypic.com/2je2ruu.png
当用户插入一些数据,完全向下滚动,转到第一个选项卡,清除所有数据并再次按结果选项卡时,会出现问题。标签不再保持居中:
noncentered label http://i44.tinypic.com/35kli75.png
我正在使用Mixed Approach的自动布局,所以我在其中有一个带有ContentView的ScrollView。当显示标签时(即没有插入数据)我不希望视图滚动,所以我正在做的是:
-(void)resultsTabClicked {
if(dataIsInserted) {
myLabel.hidden = YES;
self.contentViewHeight.constant = resultsViewHeight;
self.scrollView.contentSize = CGSizeMake(320, resultsViewHeight);
}
else {
myLabel.hidden = NO;
self.contentViewHeight.constant = 411;
self.scrollView.contentSize = CGSizeMake(320, 411);
}
}
它几乎可以正常工作,因为当标签位于错误的位置并按下第一个标签并且用户仍然没有插入任何数据并再次按下第二个标签时,瞧!标签在正确的位置。
当有结果显示时,我遇到了同样的问题。根据数据结果视图高度的变化,当用户向下滚动时,转到第一个选项卡,更改一些数据并返回结果选项卡,结果视图恰好小于先前的结果视图,然后结果视图的顶部就像切断了。当用户转到第一个选项卡时,不会更改任何内容并返回结果选项卡,它再次完美。有没有人有任何建议如何在第一次更新视图时使布局完美?