セットアップ:
テキストフィールドのセットを表示する Xcode 5 のビューに取り組んでいます。キーボードが表示されたときにスクロールを処理するために、スクロール ビューを使用して TextField を配置しています。自動レイアウトを使用しています。
問題:
実行時にスクロール ビューの上部に余分なスペースが追加されるという問題に取り組んでいます。スクロールビューにインセットが適用されているようですが、インセットがゼロであることをログで確認しました。
私のviewDidLoad()メソッドの実装では、値を確認するためにこれを行っています...
UIEdgeInsets contentInsets = UIEdgeInsetsZero;
self.scrollView.contentInset = contentInsets;
self.scrollView.scrollIndicatorInsets = contentInsets;
self.scrollView.contentSize = self.scrollView.bounds.size;
self.scrollView.contentOffset = CGPointMake(0.0, 0.0);
NSLog(@"Content Size: %f x %f", self.scrollView.contentSize.height, self.scrollView.contentSize.width);
NSLog(@"Bounds Size: %f x %f", self.scrollView.bounds.size.height, self.scrollView.bounds.size.width);
NSLog(@"Frame Size: %f x %f", self.scrollView.frame.size.height, self.scrollView.frame.size.width);
NSLog(@"Inset Size top: %f bottom: %f", self.scrollView.contentInset.top, self.scrollView.contentInset.bottom);
NSLog(@"Scroll Inset Size top: %f bottom: %f", self.scrollView.contentInset.top, self.scrollView.contentInset.bottom);
出力:
2013-10-08 11:38:42.953 test[6440:a0b] Content Size: 455.000000 x 320.000000
2013-10-08 11:38:42.954 test[6440:a0b] Bounds Size: 455.000000 x 320.000000
2013-10-08 11:38:42.955 test[6440:a0b] Frame Size: 455.000000 x 320.000000
2013-10-08 11:38:42.955 test[6440:a0b] Inset Size top: 0.000000 bottom: 0.000000
2013-10-08 11:38:42.956 test[6440:a0b] Scroll Inset Size top: 0.000000 bottom: 0.000000
最初のテキスト フィールドの上に追加されたスペース (インセット) は、標準のナビゲーション ヘッダーとほぼ同じように見えますが、これは偶然かもしれません。
私のスクロール ビューは、ナビゲーション ステータス バーと下部のタブ バーの間に収まるように、高さ455、y 値64に設定されています。
潜在的な問題のレイアウト通知はありません。スクロール ビューの上下のスペース制約は、0ポイントになるように配置されます (ステータス バーとタブ バーから推測します。
アプリを実行してスクロール ビューに余分なスペースが表示されている場合、スクロール バーは予想されるスペースのみをカバーしています (スクロール可能な領域の一部としてこの余分なスペースは含まれていません)。
最後に 1 つ注意してください。キーボード通知ロジックを実行するとき。(ここではアップルから取得...)問題は自然に解決し、スペースがなくなります。ストーリーボードで構成されているものの初期化の問題のように見えるのはどれですか?
ありがとう!