0

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

    如果 (y
4

2 回答 2

0

已在 3.0 发行版中修复

于 2011-04-13T16:44:04.727 回答
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

我希望这有帮助。

于 2009-08-18T17:34:43.290 回答