UIScrollView contentOffset 在动画后跳转 - 在 3.0 beta 5

Posted

技术标签:

【中文标题】UIScrollView contentOffset 在动画后跳转 - 在 3.0 beta 5【英文标题】:UIScrollView contentOffset jumps after animation - in 3.0 beta 5 【发布时间】:2009-05-21 11:42:37 【问题描述】:

我有一个 UIScrollView,上面有一些 UITextFields。当用户编辑文本字段时,它会滚动以使 UITextField 居中。我遇到的问题是 UIScrollView 滚动到正确的位置,但在动画的最后一帧它跳转到 300,300。它在 2.2.1 中运行良好,但在 3.0 beta 5 中却不行。它也总是跳到正好 300,300。奇怪的是,当我调用 returnScrollAfterEdit 方法来移动滚动视图时,它工作得很好。有什么想法会导致这种情况吗?

- (void)scrollViewToCenterOfScreen:(UIView *)field withKeyboard:(bool)withKeyboard CGFloat viewCenterY = field.center.y; CGRect applicationFrame = [[UIScreen mainScreen] applicationFrame]; CGFloat availableHeight = applicationFrame.size.height - 215; CGFloat y = viewCenterY - availableHeight / 2.0; NSLog([NSString stringWithFormat:@"w:%f h%favailH:%f y:%f x:%f", applicationFrame.size.width, applicationFrame.size.height, availableHeight, y, self.contentOffset.x]); 如果 (y

【问题讨论】:

已在 3.0 发行版中修复。 【参考方案1】:

我不确定这是否正是您正在寻找的,但 UITextView 也有一些疯狂的问题。如果我在视图中选择了任何文本,它将滚动到框架的底部。我通过在将文本添加到 UITextView 之前关闭 scrollEnabled 来解决此问题。

所以代码看起来像这样:

[textarea setText:@""]; //blank out the text to scroll back to the top
[textarea setScrollEnabled:NO]; //disable to avoid scrolling
[textarea setText:@"new text here"]; 
[textarea setScrollEnabled:YES];
[textarea resignFirstResponder]; //to drop annoying blue

我希望这会有所帮助。

【讨论】:

我最终更改了 GUI 以避免这种情况,但下次遇到它时我会尝试一下。【参考方案2】:

已在 3.0 的发布版本中修复

【讨论】:

以上是关于UIScrollView contentOffset 在动画后跳转 - 在 3.0 beta 5的主要内容,如果未能解决你的问题,请参考以下文章

UIScrollView 内 UIScrollView 内 UIScrollView

UIScrollView 内的 UIScrollView 时滚动

UIScrollView里面的UIScrollView:滚动

iOS开发-KVO的奥秘

问题:UIScrollview 弹跳使父 UIScrollview 弹跳

UIScrollView 嵌入其他 UIScrollView