【发布时间】:2018-01-12 16:50:44
【问题描述】:
我有一个带有图像的按钮。按下此按钮时,必须更改图像。再次按下按钮时,应将其更改回原始图像。 更改视图控制器时应保留此更改的图像。
【问题讨论】:
标签: objective-c image button nsuserdefaults
我有一个带有图像的按钮。按下此按钮时,必须更改图像。再次按下按钮时,应将其更改回原始图像。 更改视图控制器时应保留此更改的图像。
【问题讨论】:
标签: objective-c image button nsuserdefaults
为您的UIView 添加一个按钮。
进入 storyboard 或 xib 或您的按钮所在的位置,然后 检查器窗口 并将您的图像设置为选中和未选中的图像.
在控制器中创建一个 IBAction 并将按钮连接到该操作。
-(IBAction) toggleUIButtonImage:(id)sender{
if ([sender isSelected]) {
[sender setImage:unselectedImage forState:UIControlStateNormal];
[sender setSelected:NO];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setValue:@"no" forKey:@"buttonSelected"];
[defaults synchronize];
} else {
[sender setImage:selectedImage forState:UIControlStateSelected];
[sender setSelected:YES];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setValue:@"yes" forKey:@"buttonSelected"];
[defaults synchronize];
}
}
将 IBAction 链接到您的按钮
那么为了知道它是否被选中,你需要在你的viewDidLoad方法中查询NSUserDefaults。
- (void) querySelected {
NSString *selected = [[NSUserDefaults standardUserDefaults] objectForKey:@"buttonSelected"];
if ([selected isEqualToString: @"yes"]) {
[sender setImage:selectedImage forState:UIControlStateSelected];
[sender setSelected:YES];
} else {
[sender setImage:unselectedImage forState:UIControlStateNormal];
[sender setSelected:NO];
}
}
【讨论】: