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

Xcode 根据NSUserDefaults设置更改加载的图像,xcode,Xcode,希望你能帮我。 我有一个应用程序,需要通过UISwitch的设置显示两个地图中的一个。settings.bundle已经全部设置好,我正在尝试编写一个If语句来确定开关是打开还是关闭,并显示正确的图像 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; BOOL Enabled = [defaults boolForKey:@"zones_preference"]; if (Enabled == @"Ena

希望你能帮我。 我有一个应用程序,需要通过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中。有人能告诉我哪里出了问题吗?

好吧,您发布的代码只创建了一个
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];

好的,您发布的代码只创建了一个
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];

迪帕克,这很有用,谢谢你。我一直在使用一个变量,但我犯的错误是,我试图在创建UIImageView时添加变量的设置


我会处理这个问题,看看进展如何。

迪帕克,这非常有用,谢谢你。我一直在使用一个变量,但我犯的错误是,我试图在创建UIImageView时添加变量的设置


我会处理这个问题,看看我的进展如何。

在if和else中设置断点或nslog,并检查应用程序采用的路径。在if和else中设置断点或nslog,并检查应用程序采用的路径。我一直在处理这个问题,一切都很好,但我认为if/else放错了位置。我有一个mainViewController,它完成所有主要工作。选项ViewController显示连接到Settings.bundle的NSUserdefaults。当用户单击“完成”按钮并保存设置时。我需要If/else来告诉他们是否启用了Withzones,并显示带有分区的图像,还是禁用并显示了标准图像。我将此作为主视图上ViewDidLoad的一部分,但可能需要作为完成操作的一部分。不确定如何从“完成”按钮影响主视图。我已经处理了这个问题,所有的工作都很好,但我认为我的if/else放错了位置。我有一个mainViewController,它完成所有主要工作。选项ViewController显示连接到Settings.bundle的NSUserdefaults。当用户单击“完成”按钮并保存设置时。我需要If/else来告诉他们是否启用了Withzones,并显示带有分区的图像,还是禁用并显示了标准图像。我将此作为主视图上ViewDidLoad的一部分,但可能需要作为完成操作的一部分。不确定如何从“完成”按钮影响主视图。