0

我有以下代码:

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

这将动画滚动视图- (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 回答