我之前使用過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無效。它在模擬器中工作,但不在設備上。請幫忙。 –