0

スクロールビューでラベルを中央に配置する際に問題があります。基本的に、あるタブからユーザー入力が必要であり、データに基づいて別のタブに結果を表示します。これで、ユーザーが最初にデータを挿入せずにタブをタップした場合に、ユーザーにデータを挿入するように指示するラベルを設定しました。ユーザーがデータを挿入せずに結果タブを押すと、すべてが正常に機能します。次のようになります。

中央揃えのラベル

この問題は、ユーザーがデータを挿入し、一番下までスクロールして、最初のタブに移動し、すべてのデータをクリアして、結果タブをもう一度押すと発生します。ラベルはもう中央に留まりません:

中央にないラベル

私はMixed Approachで Auto Layout を使用しているので、その中に 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);
}
}

ラベルが間違った場所にあり、最初のタブが押され、ユーザーがまだデータを挿入せずに2番目のタブをもう一度押すと、ほとんど機能します。ラベルは適切な場所にあります。

表示される結果がある場合、私は同じことを経験しています。データに応じて結果ビューの高さが変わり、ユーザーが下にスクロールして最初のタブに移動し、データを変更して結果タブに戻ると、結果ビューがたまたま前の結果ビューよりも小さくなり、結果ビューの上部が切り取られたようなものです。ユーザーが最初のタブに移動し、何も変更せずに結果タブに戻ると、再び完璧になります。ビューが初めて更新されたときにレイアウトを完璧にする方法について誰か提案がありますか?

4

0 に答える 0