UIScrollView setContentOffset:(0,0) 改变视图?

Posted

技术标签:

【中文标题】UIScrollView setContentOffset:(0,0) 改变视图?【英文标题】:UIScrollView setContentOffset:(0,0) changes view? 【发布时间】:2013-10-11 06:09:49 【问题描述】:

我正在尝试移动我的 UIScrollView,以便在显示键盘时为键盘让路。

奇怪的是滚动视图移动太多。我注意到,即使我只是将滚动视图的内容偏移量设置为 (0,0),它仍然会向下移动视图。奇怪的是,滚动视图的 contentOffset 在我设置之前是 0,0 !什么!

- (void)keyboardWasShown:(NSNotification*)notification 
    NSLog(@"%f %f", scrollView.contentOffset.x, scrollView.contentOffset.x);
    [scrollView setContentOffset:CGPointMake(0.0, 0.0) animated:YES];

这将打印 (0,0) 但如果我评论第二行,则视图不会移动。 setContentOffset 是否有奇怪的次要后果?

【问题讨论】:

它调用scrollViewDidScroll,所以也许你正在那里做点什么。 @Odrakir nope 没有实现任何其他方法 然后发布您创建滚动视图并设置其内容的代码。因为那条线本身就有效。 【参考方案1】:

试试这个:

- (void)keyboardWasShown:(NSNotification*)notification 
CGFloat ay = 150;
[scrollView setContentOffset:CGPointMake(0.0, textField.frame.origin.y-ay) animated:YES];

在此处根据您的要求更改 ay 的值。取决于您希望滚动视图移动多少。

【讨论】:

你真的没有回答我的问题,当然如果我设置正确它会抵消移动。

以上是关于UIScrollView setContentOffset:(0,0) 改变视图?的主要内容,如果未能解决你的问题,请参考以下文章

UIScrollView里面的UIScrollView:滚动

问题:UIScrollview 弹跳使父 UIScrollview 弹跳

UIScrollView 嵌入其他 UIScrollView

分页 UIScrollView 内的 UIScrollView

UIScrollView

UIscrollView