我正在尝试实现类似幻灯片的UIScrollView,它将填充目录页面的缩略图.选择缩略图图像将使主UIScrollView移动到所选页面.目录可能包含100 - 200页,我只想在需要时懒洋洋地加载它们.
我在启用了分页的UIScrollView中完成了此操作,但在非分页方案中没有看到任何最佳方法.在任何时候UIScrollView中都会显示6个缩略图(滚动视图时为+ 1).我想在滚动视图时出列并重用缩略图的UIView,就像我在主UIScrollView(这是一个分页滚动视图)中所做的那样.
谢谢 -
JK
我有一个UIViewController.根UIView包含一个自定义UIScrollView,用于在网格中显示缩略图图像(ThumbnailGrid类).这个网格可以包含很多显示图像的UIViews(GridTile类).因为有很多网格图块,用户可以向下滚动ThumbnailGrid.我只想加载用户实际可以看到的网格图块的图像,我不想为屏幕边缘的网格图块加载图像.
如何确定是否在屏幕上显示其中一个GridTile UIView?
我尝试了以下但它似乎总是返回false.
- (bool) isViewDisplayed:(UIView*)view
{
CGRect viewFrame = view.frame;
CGRect appFrame = [[UIScreen mainScreen] applicationFrame];
if (CGRectIntersectsRect(viewFrame, appFrame)) return true;
return false;
}
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?
在此先感谢您的帮助!
编辑
解决方案
事实证明坐标系统是错误的,所以我得到了一些奇怪的事情,其中方法应该返回true,而是返回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;
}
Run Code Online (Sandbox Code Playgroud)