0

スクロール ビューを表示したいタブ付きアプリケーションがあります。そのタブには、すでにいくつかのテキスト フィールドとラベルがあります。問題は、キーボードがテキスト フィールドの一部を隠していることです。それを防ぐために垂直スクロールを追加するにはどうすればよいですか?

4

2 に答える 2

1

スクロールビューなしで探しているものを達成できます。

テキストフィールドのデリゲート メソッドでは、viewController のビューのフレームを変更できます。

何かのようなもの

- (void)textFieldDidBeginEditing:(UITextField *)textField;           
{
CGRect newFrame = self.view.frame;
newFrame.origin.y = - 40;  // move the view up to the point your textfield is visible
self.view.frame = newFrame;
}

次に、[元に戻す] で

- (void)textFieldDidEndEditing:(UITextField *)textField;  
{
 CGRect newFrame = self.view.frame;
 newFrame.origin.y = 0;
 self.view.frame = newFrame;   
}

通常、これを 0.33 秒の長さでアニメーション化します。

于 2012-12-28T17:22:11.063 に答える
0

このソリューションにはかなりのコードが必要ですが、必要なものの一般的な考え方は次のとおりです。

テキスト フィールド (および一貫性を保つためにその他すべて) を scrollView に追加する必要があります。

垂直スクロール スペースのみを持つようにスクロール ビューを設定する必要がありますがscrollEnabled、ユーザーが手動でスクロールできないように false に設定する必要があります。

次に、必要に応じてそれを聞いてUIKeyboardWillShowNotificationUIKeyboardWillHideNotification手動で上下にスクロールする必要があります。

于 2012-12-28T17:16:34.213 に答える