我的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
答案 0 :(得分:-2)
您可以使用 imageWithContentsOfFile 而不是使用 imageNamed ,因为imageWithContentsOfFile不会缓存图像。因此最好使用,以减少内存问题。