我有一个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
答案 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的发布版本