スイッチ状態のカスタムグラフィックを使用してUISwitchを実装する方法はありますか?または、他の方法での代替手段として、UISwitch機能を備えたUIButton?
UIButton
はすでに「スイッチ」機能をサポートしています。
「選択された状態の構成」用にInterface Builderで別の画像を設定し、selected
のUIButton
プロパティを使用してその状態を切り替えます。
選択した状態で表示するように画像を設定します。
[button setImage:[UIImage imageNamed:@"btn_graphics"] forState:UIControlStateSelected];
セレクター内を修正したら、次を設定します。
button.selected = YES;
これで別のボタンの選択をキャンセルするには、次を設定します。
otherButton.selected = NO;
上記のPGBとnurneに基づいて構築するには、状態を設定し、セレクター(イベントメソッド)をアタッチした後、このコードをそのセレクターに配置します。
- (IBAction)cost:(id)sender
{
//Toggle current state and save
self.buttonTest.selected = !self.buttonTest.selected;
/**
The rest of your method goes here.
*/
}
プログラム指向の場合:
-(void) addToggleButton {
CGRect aframe = CGRectMake(0,0,100,100);
UIImage *selectedImage = [UIImage imageNamed:@"selected"];
UIImage *unselectedImage = [UIImage imageNamed:@"unselected"];
self.toggleUIButton = [[UIButton alloc] initWithFrame:aframe];
[self.toggleUIButton setImage:unselectedImage forState:UIControlStateNormal];
[self.toggleUIButton setImage:selectedImage forState:UIControlStateSelected];
[self.toggleUIButton addTarget:self
action:@selector(clickToggle:)
forControlEvents:UIControlEventTouchUpInside];
[self addSubview:self.toggleUIButton];
}
-(void) clickToggle:(id) sender {
BOOL isSelected = [(UIButton *)sender isSelected];
[(UIButton *) sender setSelected:!isSelected];
}