对于轮播视图,UIScrollView对于高达5M的大图像效果不佳

时间:2016-03-30 19:38:43

标签: ios ipad

我用UIScrollView实现了轮播视图, 它适用于40-50张尺寸为600 * 400的图像,但它会丢失150张图像,大小为3-5Mb。 我如何解决这个问题,现在我正在使用iPad应用程序。 感谢,

2 个答案:

答案 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版本的出列功能,方法是在屏幕关闭后删除未使用的图像,并在它们重新出现后刷新它们,但之后您基本上会重新实现集合视图。