UIScrollView返回其原始位置

时间:2012-09-10 23:01:58

标签: objective-c xcode uiscrollview

我有以下代码:

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

我试图在隐藏键盘之后将scrollView返回到它的原始位置:

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

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

}

但它不起作用!

如何将UIScrollView以及整个屏幕返回到原始位置,以便用户在滚动视图动画之前看到他所看到的内容?

1 个答案:

答案 0 :(得分:2)

keyboardWasShown:方法中,您设置了contentOffset属性([scrollView setContentOffset:]相当于scrollView.contentOffset)。但是,在keyboardWillHide:中,您正在设置contentInset,这是完全不同的(实际上,它是滚动视图内容的内部填充量)。尝试

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

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

另外,正如NSResponder所提到的那样,请确保调用keyboardWillHide:方法。