我用UIScrollView实现了轮播视图, 它适用于40-50张尺寸为600 * 400的图像,但它会丢失150张图像,大小为3-5Mb。 我如何解决这个问题,现在我正在使用iPad应用程序。 感谢,
答案 0 :(得分:0)
这是UiScrollview的基本问题,不建议将Scrollview与大量图像一起使用。 您可以使用水平滚动来代替UICollectionView。 当然,您只需要在启用分页的情况下显示第一行。
这里有一些暗示。 首先,您需要使用水平方向自定义flowlayout。
@interface LayoutHorizontalThings : UICollectionViewFlowLayout
@end
@implementation LayoutHorizontalBooks
-(void)prepareLayout {
[super prepareLayout];
self.scrollDirection = UICollectionViewScrollDirectionHorizontal;
self.minimumInteritemSpacing = 0;
self.minimumLineSpacing = 0;
self.itemSize = CGSizeMake(110,130);
self.sectionInset = UIEdgeInsetsMake(0, 0, 0, 0);
}
然后你必须将pageenabled设置为true。
yourCollectionView.pagingEnabled = YES;
答案 1 :(得分:0)
这并不奇怪。你最好使用默认或自定义UICollectionView。 UICollectionView和UITableView具有将未使用的单元格从内存中清除的好处,以便保留内存开销。使用UIScrollViews,当您在屏幕外滚动内容时,所有内存开销都会保留在原位。
如果您的内容页面大于屏幕大小,但未针对同类项目的有序集合进行优化,则UIScrollView非常有用。这是你应该使用UICollectionView / UITableView的时候。
如果您坚持使用滚动视图,您可以尝试实现自己的Apple版本的出列功能,方法是在屏幕关闭后删除未使用的图像,并在它们重新出现后刷新它们,但之后您基本上会重新实现集合视图。