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

时间:2009-05-21 11:42:38

标签: iphone uiscrollview

我有一个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%f availH:%f y:%f x:%f", applicationFrame.size.width, applicationFrame.size.height, availableHeight, y, self.contentOffset.x]);

    if (y 

2 个答案:

答案 0 :(得分:0)

我不确定这是否正是您正在寻找的,但我也遇到了一些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

我希望这会有所帮助。

答案 1 :(得分:0)

已修复3.0的发布版本