ScrollView很多使用大量内存的图像

时间:2015-11-15 18:45:55

标签: ios objective-c memory-management

我的iPhone应用包含170张图片。我将它们读入一个数组,并在循环中在取景器中添加一张图片,然后将图像视图作为滚动视图的子视图。

运行我的应用程序时使用的内存太多700mb。我试图减小图片的大小,但它没有用。

我的一位朋友说我应该只添加#1和#2图像。当用户块滚动到1号图片时,则只显示图片2号。然后删除图片1号从图像查看器中添加第3张图片。

他说通过这种方式我可以维持正常的内存消耗。但我不明白该怎么做? :D

你能举个例子吗?提前谢谢。

不使用UICollectionView

这是我的代码:

 - (void)scrollViewDidScroll:(UIScrollView *)sender {

    CGFloat pageWidth = self.scrollView.frame.size.width;
    int page = floor((self.scrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1;

    self.pageControll.currentPage = page;
    self.imageIndex = page;

}

#pragma mark - ChangePage
- (IBAction)changePage {

    CGRect frame;
    frame.origin.x = self.scrollView.frame.size.width * self.pageControll.currentPage;
    frame.origin.y = 0;
    frame.size = self.scrollView.frame.size;
    [self.scrollView scrollRectToVisible:frame animated:YES];
    pageControlBeingUsed = YES;

} 

我决定将代码拆分为可读性

print

1 个答案:

答案 0 :(得分:-2)

您可以使用 imageWithContentsOfFile 而不是使用 imageNamed ,因为imageWithContentsOfFile不会缓存图像。因此最好使用,以减少内存问题。