0

次のコードがあります。

float yOffset = activeTextView.frame.origin.y - keyboardSize.height + 55;
        CGPoint scrollPoint = CGPointMake(0.0, yOffset);
        [scrollView setContentOffset:scrollPoint animated:YES];

これは scrollView をアニメーション化します- (void)keyboardWasShown:(NSNotification *)notification

次のようにキーボードを非表示にした後、scrollView を元の場所に戻そうとしています。

- (void) keyboardWillHide:(NSNotification *)notification {

    UIEdgeInsets contentInsets = UIEdgeInsetsZero;
    scrollView.contentInset = contentInsets;
    scrollView.scrollIndicatorInsets = contentInsets;

}

しかし、うまくいきません!

ユーザーがスクロールビューのアニメーションの前に見たものを見ることができるように、UIScrollView と実際に画面全体を元の場所に戻すにはどうすればよいですか?

4

1 に答える 1

2

keyboardWasShown:メソッドでは、プロパティを設定していますcontentOffset([scrollView setContentOffset:]は と同等ですscrollView.contentOffset)。ただし、 ではkeyboardWillHide:を設定していますがcontentInset、これはまったく異なるものです (本質的には、スクロール ビューのコンテンツの内部パディングの量です)。試す

scrollView.contentOffset = CGPointZero; // non-animated by default

また

[scrollView setContentOffset:CGPointZero animated:YES]; // animated

また、NSResponder が述べたように、keyboardWillHide:メソッドが呼び出されていることを確認してください。

于 2012-09-11T00:23:00.673 に答える