gpt4 book ai didi

iOS - 创建像照片应用程序一样的照片查看器

转载 作者:行者123 更新时间:2023-11-29 04:52:30 25 4
gpt4 key购买 nike

我正在尝试创建一个照片查看器,例如 iOS 中的 Apple Photos 应用程序。布局没问题,但是收到内存警告然后崩溃。为什么?即使我从应用程序文档文件夹加载 7/8 图像,也会发生这种情况。我必须用特定的系统来管理内存吗?我在 iOS 5 中使用 ARC。

编辑:

代码:

for (int i=0; i<[dataSource count]; i++) {
UIButton *button=[UIButton buttonWithType:UIButtonTypeCustom];
[button setImage:[dataSource objectAtIndex:i] forState:UIControlStateNormal];
[[button titleLabel] setText:[NSString stringWithFormat:@"%i",i+1]];
[button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];
[[button layer] setBorderWidth:1];
[[button layer] setBorderColor:[UIColor darkGrayColor].CGColor];
if (i==0) {
[button setFrame:CGRectMake(x, y, width, height)];
} else {
if (i%5==0) {
nRow++;
x=18;
[button setFrame:CGRectMake(x, (y*nRow), width, height)];
} else {
[button setFrame:CGRectMake(x+space+width, (y*nRow), width, height)];
x=button.frame.origin.x;
}
}
[[self view] addSubview:button];
}

该代码的主要部分是前 6 行,之后是所有 x 和 y。dataSource 是一个声明为属性(非原子、强)的 NSArray。它包含 UIImage 对象。

最佳答案

考虑到可能存在大量图像,您应该延迟加载图像并重复使用按钮。

实现:

  1. 保留数据数组中图像文件的路径,而不是 UIImage 对象的路径。当需要时使用 imageWithContentsOfFile: 从路径中获取图像。
  2. 将第一个 z 按钮加载到 ScrollView 中,其中 z 是屏幕上一次显示的数字加上一行的值。
  3. 将我们当前所在的 UIViewController 设置为 ScrollView 的委托(delegate),并通过重新定位按钮并设置适当的图像和目标来响应偏移量的变化。

此外,如果 7/8 图像使您的应用程序崩溃,听起来您正在处理一些相当大的图像文件。尝试在文档目录中提供内容的缩略图大小版本(无论按钮的大小到底是多少),或者如果图像是动态的,请参阅 this post了解操作方法。

关于iOS - 创建像照片应用程序一样的照片查看器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8577523/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com