0

上部にナビゲーションバーがあるUITableViewがあります。セルにいくつかのテキストフィールドがあり、下部のセルをクリックすると、キーボードがテキストフィールドを非表示にします。だから私はグーグルでこのリンクを見つけました:http://developer.apple.com/library/ios/#documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/KeyboardManagement/KeyboardManagement.html#//apple_ref/doc/uid/TP40009542-CH5-SW7

そのコードを正確に使用して、アプリを再実行しました。これで、下にスクロールする代わりに、上にスクロールします(キーボードの高さ程度)。また、キーボードによって隠されない上部のセルも含めて、すべてのセルをスクロールします。誰かがこれに対する解決策を持っていますか?keyWasShown:メソッド内のいくつかの座標をログアウトしようとしましたが、それを理解するのは非常に複雑です。

4

1 に答える 1

0

そこで、試行錯誤を繰り返して、activeFieldの背後に2つのスーパービュープロパティを追加する必要があることがわかりました。

activeField.superview.superview.frame.origin

これは、keyboardWasShown:メソッドのすべてのactiveFieldの背後で実行すると、機能します。ああ、私は70ピクセルを追加しました。ビューが希望の場所に正確にスクロールしなかったためです。おそらく、使用しているナビゲーションバーが原因で、わかりません。

activeField.superview.superview.frame.origin.y - kbSize.height + 70
于 2012-10-16T09:31:56.010 に答える