ボタンを一度追加します。最も一般的な方法は、ボタンを追加してから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を使用し、のdealloc
ようにARCリリースを使用しない場合
- (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];
}