我之前使用过UIScrollView
,现在正在使用它,并且从来没有出现问题。我现在将它添加到一个旧的应用程序,虽然它按预期工作(我可以看看内容,用我的手指滚动,所有的边界和大小设置正确,所以没有空的内容,等等),我只是不能让scrollToRectVisible
工作。我甚至已经简化呼叫,以便它只是移动到0,0位置:UIScrollView按预期方式工作,但scrollRectToVisible:什么都不做
[scrollView scrollRectToVisible:CGRectMake(0, 0, 10, 10) animated:YES];
或将其移动到0,200:
[scrollView scrollRectToVisible:CGRectMake(0, 200, 10, 10) animated:YES];
我甚至做了一个快速的应用程序来测试这一点,我可以如我所期望的那样,让scrollRectToVisible
在那里工作。但在我的旧应用程序中,我似乎无法让它做任何事情。
我可以使scrollView滚动setContentOffset:
,但那不是我想要的。
此scrollView及其内容在IB中由笔尖定义并与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
它仍然就像我要滚动的RECT到已经可见和不需要滚动。不知道这是怎么回事。这只是最糟糕的事情。好像这样一件容易的事情来解决...
附录#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];
}
其他一切关于这个滚动视图正常工作,但scrollRectToVisible
。为什么?!?任何野生猜测?
谢谢!我也得到了这一点(我正在设置高度,但不是宽度)。 –
这是不正确的 - c.f.猎户座的答案在下面(我有一个非零宽度/高度,它不是'0'导致问题...) – Adam
我以类似的方式完成了这项工作,但仍然scrollRectToVisible无效。它在模拟器中工作,但不在设备上。请帮忙。 –