我想写一个动作,当按下按钮时,它会向视图添加图像
-(IBAction)AddButtonTouch:(id)sender {
UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(20+[[self.SumTextField text]integerValue]*8, 220, 8, 40)] ;
NSString *imgFilepath = [[NSBundle mainBundle] pathForResource:@"pet" ofType:@"jpg"];
[imgView setImage:[[UIImage alloc] initWithContentsOfFile:imgFilepath]];
[self.view addSubview:imgView];
}
每次调用Action时,设备内存的使用量都会增加5MB。解决方案可能非常简单,但我需要帮助。
答案 0 :(得分:2)
预计内存会上升,因为每次按下该按钮,您都会添加另一个新的图像视图。他们只是堆积在彼此之上。每个人都有一个图像,因此有一个大的支持商店。
减少内存使用量:
如果您不需要,请不要添加其他图片视图。
如果必须,请将图像尺寸缩小到显示尺寸(在代码中很容易),然后再将交给图像视图。请记住,内存中保存的图像随着大小的增加需要更多RAM 指数。
答案 1 :(得分:0)
是的,使用当前代码,每次点击按钮,您创建一个新的UIImageView,并将其添加到上一个。如果这不是故意的,我建议你将它存储在iVar中,以便重用它/检查它是否已经存在并相应地修改动作方法中的逻辑。