-2

uitextfiled を編集するときに、スクロール (およびできればすべてのバックグラウンド タッチ) を無効にしようとしています。

シナリオは次のとおりです。

複数のテキスト フィールドを持つ ScrollView のセットアップがあります。テキスト フィールドを編集する際に、ビューを上下にアニメーション化して、テキスト フィールドがキーボード/キーパッドが表示される場所のすぐ上に配置されるようにします。キーボードのスタイルを電話/数字パッドに変更した場合、編集が完了したときにキーボードを閉じるために使用できる完了ボタンを備えたサブビューのセットアップがあります。すべてのアニメーションは期待どおりに機能します。ただし、ユーザーは背景をスクロールして他のフィールドを選択できます。この機能を無効にして、画面に表示されている内容を表示し、1 つのフィールドを編集することしかできないようにしたいと考えています。

スクロール ビューを所定の位置にロックする [scrollView setUserInteractionEnabled:NO] を実行しようとしましたが、キーボードを使用してテキスト フィールドに情報を入力することはできません。キーボードが電話/数字パッドに設定されている場合も、サブビューが表示されますが、キーボードはありません。

また、編集中のテキストフィールドをファーストレスポンダーとして設定しようとしましたが、おそらくビューサブビューのアニメーションが原因で、ビューが完全に台無しになっているようです。

ビューを好きなようにアニメーション化し、スクロールビューのスクロールを無効にする方法、またはそのビューのすべてのバックグラウンドタッチを完全に無効にする方法はありますか?

4

3 に答える 3

1

viewController を textField のデリゲートにし- (void)textFieldDidBeginEditing:(UITextField *)textField、スクロールを無効にします..self.scrollView.scrollEnabled = NO;そして - (void)textFieldDidEndEditing:(UITextField *)textField でスクロールを再度有効に設定します...

要件が示すように、他のすべてのテキストフィールドを無効にすることもできます。

self.otherTextField.userInteractionEnabled = NO;

これが役立つことを願っています。

于 2012-09-01T18:13:58.360 に答える
0

試しましたか:

scrollView.scrollEnabled = NO 

?

于 2012-09-01T18:11:39.277 に答える