2009-05-21 64 views
0

我有一个带有几个UITextFields的UIScrollView。当用户编辑一个文本字段时,它会滚动,以便UITextField居中。我遇到的问题是UIScrollView正在滚动到正确的位置,但在动画的最后一帧它跳到了300,300。它在2.2.1中运行正常,但不在3.0 beta 5中。它总是跳到300,300。奇怪的是,当我调用returnScrollAfterEdit方法以相同的方式移动滚动视图时,它工作得很好。任何想法可能导致这种情况?UIScrollView contentOffset在动画之后跳转 - 在3.0 beta 5中

 
- (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
+0

固定发布版本3.0。 – respectTheCode 2009-07-21 14:48:42

回答

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 

我希望这有助于。

+0

我最终改变了图形用户界面来避免这种情况,但下次我遇到它时我会尝试一下。 – respectTheCode 2009-08-24 20:33:43