在一个应用程序的选项卡之一,我有一个uiimageview这是uiscrollview的子视图。我有一个包含开关的设置包,用于更改uiimage视图的图像,并且在多任务回到应用程序后,我遇到了图像更新问题。图像会改变,但当我缩小,然后我可以看到背景中的前一个图像。这里是我的代码更新设置后更新uiimageview
- (void)viewDidAppear:(BOOL)animated
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
BOOL enabled = [defaults boolForKey:@"enableWinterSchedule"];
if (enabled) {
UIImageView *tempImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"WinterSchedule.png"]];
self.imageView = tempImageView;
} else {
UIImageView *tempImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"FallSpringSchedule.png"]];
self.imageView = tempImageView;
}
scrollView.contentSize = CGSizeMake(imageView.frame.size.width , imageView.frame.size.height);
scrollView.maximumZoomScale = .75;
scrollView.minimumZoomScale = .37;
scrollView.clipsToBounds = YES;
scrollView.delegate = self;
[scrollView addSubview:imageView];
scrollView.zoomScale = .37;
[super viewDidLoad];
[imageView release];
}
这里有几件事情已经错了:1)不要从'viewDidAppear'方法调用'[super viewDidLoad]'。 #2)我没有看到你在'viewDidAppear'方法中创建'imageView',所以不要在其中释放'imageView'。 – 2012-01-08 05:07:20
确定然后,但是当我尝试在更改首选项后立即缩小图片时,仍然可以在后台看到前一张图片。是否将它放在viewdidar中更改偏好后更新视图的正确方法,或者当我在viewDidLoad中完全关闭此 – slafor 2012-01-08 06:59:11