根据NSUserDefaults设置更改加载的图像

时间:2011-07-13 17:47:51

标签: xcode

希望你能帮助我。 我有一个应用程序需要通过UISwitch的设置显示两个地图之一。 settings.bundle已全部设置完毕,我正在尝试编写一个If语句来确定开关是打开还是关闭,并显示正确的图像。

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
BOOL Enabled = [defaults boolForKey:@"zones_preference"];

if (Enabled == @"Enabled") {
    [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"withzones.jpg"]];
}
else {
    [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"withoutzones.jpg"]];
}

此构建没有错误,但不会将图像加载到ScrollView中。谁能告诉我哪里出错了?

2 个答案:

答案 0 :(得分:1)

嗯,您发布的代码只会创建一个UIImageView对象,而不再执行任何操作。这也是一个漏洞。

行中还有一个错误

if (Enabled == @"Enabled") {

在这里,您将布尔值与字符串进行比较,该字符串将自动计算为false,因此也需要更正。

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
BOOL enabled = [defaults boolForKey:@"zones_preference"];

UIImageView * imageView;
if ( enabled ) {
    imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"withzones.jpg"]];
} else {
    imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"withoutzones.jpg"]];
}

imageView.frame = imageViewFrame; // Where "imageViewFrame" is an appropriate frame.
[scrollView addSubview:imageView];
[imageView release];

答案 1 :(得分:0)

Deepak,非常有用,谢谢你。我一直在使用变量,但我犯的错误是我试图通过创建UIImageView来添加变量的设置。

我会用这个来看看我是如何上场的。