我有一個UIViewController。根UIView包含一個用於在網格(ThumbnailGrid類)中顯示縮略圖圖像的自定義UIScrollView。這個網格可以包含很多顯示圖像的UIViews(GridTile類)。由於有許多網格圖塊,用戶可以向下滾動ThumbnailGrid。我只想加載用戶可以看到的網格圖像的圖像,我不想加載網格圖像的邊緣以外的圖像。是否顯示UIView?
如何確定這些GridTile UIViews中的一個是否正在屏幕上顯示或不顯示?
我試過以下,但它似乎總是返回false。
- (bool) isViewDisplayed:(UIView*)view
{
CGRect viewFrame = view.frame;
CGRect appFrame = [[UIScreen mainScreen] applicationFrame];
if (CGRectIntersectsRect(viewFrame, appFrame)) return true;
return false;
}
我錯過了什麼嗎?
在此先感謝您的幫助!
編輯
的解
原來的座標系是錯誤的,所以我得到的,其中方法應返回真實,而是返回false,反之亦然一些奇怪的事件。
- (bool) isViewDisplated:(UIView*)view
{
CGRect viewFrame = [parentOfView convertRect:view.frame toView:nil];
CGRect appFrame = [[UIScreen mainScreen] applicationFrame];
if (CGRectIntersectsRect(viewFrame, appFrame)) return true;
return false;
}
ThumbnailGrid類是您創建的自定義類還是您正在使用的框架? – JiuJitsuCoder 2013-03-06 15:37:44
這是我自己創建的UIScrollView的子類。沒什麼特別的,只是包含以某種方式操縱子視圖的方法。 – 2013-03-06 15:39:51