【发布时间】:2010-11-29 14:42:21
【问题描述】:
我以前用过UIScrollView,现在也在用,从来没有遇到过问题。我现在将它添加到一个旧应用程序中,虽然它按预期工作(我可以查看内容,用手指滚动,所有边界和大小都设置正确,因此内容中没有空白空间等.),我就是无法让scrollToRectVisible 工作。我什至简化了调用,使其仅移动到 0,0 位置:
[scrollView scrollRectToVisible:CGRectMake(0, 0, 10, 10) animated:YES];
或将其移至 0,200:
[scrollView scrollRectToVisible:CGRectMake(0, 200, 10, 10) animated:YES];
我什至制作了一个快速应用程序来测试它,我可以让scrollRectToVisible 按我的预期在那里工作。但在我的旧应用中,我似乎无法让它做任何事情。
我可以用setContentOffset: 让scrollView 滚动,但这不是我想要的。
此滚动视图及其内容由 IB 在 nib 中定义,并与 IBOutlet 一起使用。我在我的应用程序中用来处理滚动视图的唯一代码是
[scrollView setContentSize:CGSizeMake(scrollView.contentSize.width, imageView.frame.size.height)];
(我只对垂直滚动而不是水平感兴趣)。
有人遇到过这样的问题吗?
我比较了两个应用中的 scrollView 属性,它们是相同的。
附录:
我的 scrollViews 框架是:0.000000 0.000000 480.000000 179.000000
我的 scrollViews contentSize 是:0.000000 324.000000
它仍然像我想要滚动到的矩形一样已经可见并且不需要滚动。不确定这是否正在发生。这只是最糟糕的事情。似乎很容易解决...
附录#2:
这就是我在没有scrollRectToVisible 的情况下所做的:
CGPoint point = myRect.origin;
if (![clefScrollView pointInside:point withEvent:nil]) {
point.x = 0;
if (point.y > clefScrollView.contentSize.height - clefScrollView.bounds.size.height)
point.y = clefScrollView.contentSize.height - clefScrollView.bounds.size.height;
[clefScrollView setContentOffset:point animated: YES];
}
关于此 scrollView 的其他所有内容都按预期工作,但 scrollRectToVisible。为什么?!?有什么疯狂的猜测吗?
【问题讨论】:
标签: iphone uiscrollview