我有以下问题:
我有一个主视图对象(继承自UIView),它以4x4布局显示一个包含16个正方形的网格(每个是我创建的继承自UIImageView的类).
这16个正方形中的每一个都是160x160,并且包含不大于30kb的图像(每个正方形的不同图像).但是,图像是500x500(因为它在程序的其他地方以其全尺寸使用),因此通过setFrame方法将其在"square"类中调整为160x160.
通过在应用程序运行时查看Xcode的内存管理功能,我注意到了一些事情:
这里的重点是:为什么每个正方形在加载30kb图像时占用1MB内存?有没有办法减少这个?我已经尝试了一些不同的方式创建图像:[UIImage imageNamed:img],[UIImage imageWithContentsFromFile:path],[UIImage imageWithData:imgData scale:scale],以及未调整的框架.
我在SO看到了一些与此相关的问题,但是他们似乎都没有回答这个问题:这delay部分内容UIView animateWithDuration:delay:options:animate:completion:不会延迟.以下是调用它的实际代码:
-(void) viewDidAppear:(BOOL)animated
{
NSLog(@"about to start animateWithDuration...");
[UIView animateWithDuration:3.0 delay:2.0 options:UIViewAnimationOptionTransitionNone
animations:^{NSLog(@"in the animations block..."); self.textView.hidden = YES;}
completion:^(BOOL finished){if (finished) {NSLog(@"In the completion block..."); self.textView.hidden = NO; [self.player play];}}];
}
Run Code Online (Sandbox Code Playgroud)
这是NSLog时间戳:
2013-06-18 15:27:16.607 AppTest1 [52083:c07]即将启动animateWithDuration ...
2013-06-18 15:27:16.608动画块中的AppTest1 [52083:c07] ...
2013-06-18 15:27:16.609 AppTest1 [52083:c07]在完成块中......
可以看出,指令的执行间隔为毫秒,而不是延迟2或3秒.有谁知道这个的原因?