【发布时间】:2014-07-11 19:25:02
【问题描述】:
我有 31 张尺寸为 1448 *2048 的图片。我必须将它添加到滚动视图并在 iPad 上水平交换。但问题是当我交换第 6 张图像时。它因内存警告而崩溃。
我使用了 developer.apple.com 的页面控制示例的逻辑。 在此类的 ViewDidload 中,我将滚动视图框架设置为与页面控件示例相同。
我的页面加载代码函数是
- (void)loadPage:(int)page
{
if (page < 0) return;
if (page >= [_imgArray count]) return;
// replace the placeholder if necessary aViewController is NSMutable Array.
ImageViewC *controller = [aViewControllers objectAtIndex:page];
if ((NSNull *)controller == [NSNull null]) {
controller = [[ImageViewC alloc] initWithImage:[_imgArray objectAtIndex:page]];
//controller.screen = currentPage;
[aViewControllers replaceObjectAtIndex:page withObject:controller];
[controller release];
}
// add the controller's view to the scroll view
if (nil == controller.view.superview)
{
CGRect frame = scrollView.frame;
frame.origin.x = frame.size.width * page;
frame.origin.y = 0;
controller.view.frame = frame;
[scrollView addSubview:controller.view];
}
}
滚动功能是
- (void)scrollViewDidScroll:(UIScrollView *)sender
{
// Switch the indicator when more than 50% of the previous/next page is visible
CGFloat pageWidth = scrollView.frame.size.width;
int page = floor((scrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1;
self.currentPage = floor(scrollView.contentOffset.x / pageWidth) + 1;
// load the visible page and the page on either side of it (to avoid flashes when the user starts scrolling)
[self loadPage:page - 1];
[self loadPage:page];
[self loadPage:page + 1];
if (page == -1)
return;
}
谁能帮帮我。请修改代码如何管理内存,以便我能够在此滚动上交换 31 个图像。
【问题讨论】:
标签: iphone