添加一次按钮,最常见的方法是添加它,viewDidLoad
然后在执行切换时更改其图像。
所以,内部viewDidLoad
方法
// create the button
[self.view addSubview:Hard1];
然后,在您的值更改方法中
if (Hard1ON.on) {
UIImage *buttonImage = [UIImage imageNamed:@"red.jpg"];
[Hard1 setImage:buttonImage forState:UIControlStateNormal];
NSLog(@"Change");
} else {
UIImage *buttonImage = [UIImage imageNamed:@"white.jpg"];
[Hard1 setImage:buttonImage forState:UIControlStateNormal];
}
注意 使用驼峰命名法命名变量。
例如,Hard1
应该看起来像hard1
. 最好将其命名为hard1Button
或类似。这同样适用于开关元件。例如,hard1OnSwicth
.
编辑
我会尝试在viewDidLoad
方法中以编程方式创建按钮。
- (void)viewDidLoad
{
[super viewDidLoad];
self.hardButton = [UIButton buttonWithType:UIButtonTypeCustom];
[self.hardButton setFrame:CGRectMake(0, 0, 200, 50)]; // set the x,y,width and height based on your specs
UIImage *buttonImage = [UIImage imageNamed:@"white.jpg"];
[self.hardButton setImage:buttonImage forState:UIControlStateNormal];
[self.view addSubview:self.hardButton];
}
其中 hardButton 是对在 .h 中声明的按钮的引用(例如),例如
@property (nonatomic, assign) UIButton* hardButton;
像这样合成它(如果你愿意,如果不是 Xcode 会照顾你)
@synthesize hardButton = _hardButton;
如果您使用strong或retain而不是 assign 并且您不使用 ARC release in dealloc
like
- (void)dealloc
{
[_hardButton release];
[super dealloc];
}
现在,在你的开关值改变了。
- (IBAction)switchValueChanged
{
UIImage* buttonImage = nil;
if (Hard1ON.on) {
buttonImage = [UIImage imageNamed:@"red.jpg"];
} else {
buttonImage = [UIImage imageNamed:@"white.jpg"];
}
[self.hardButton setImage:buttonImage forState:UIControlStateNormal];
}