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:滚动