web-dev-qa-db-ja.com

UISwitch機能を備えたiPhone UIButton

スイッチ状態のカスタムグラフィックを使用してUISwitchを実装する方法はありますか?または、他の方法での代替手段として、UISwitch機能を備えたUIButton?

60
scud

UIButtonはすでに「スイッチ」機能をサポートしています。

「選択された状態の構成」用にInterface Builderで別の画像を設定し、selectedUIButtonプロパティを使用してその状態を切り替えます。

101
pgb

選択した状態で表示するように画像を設定します。

[button setImage:[UIImage imageNamed:@"btn_graphics"] forState:UIControlStateSelected];

セレクター内を修正したら、次を設定します。

button.selected = YES;

これで別のボタンの選択をキャンセルするには、次を設定します。

otherButton.selected = NO;
13
nurxyz

上記のPGBとnurneに基づいて構築するには、状態を設定し、セレクター(イベントメソッド)をアタッチした後、このコードをそのセレクターに配置します。

- (IBAction)cost:(id)sender 
{
    //Toggle current state and save
    self.buttonTest.selected = !self.buttonTest.selected;

    /**
     The rest of your method goes here.
     */
}
9
Shaolo

プログラム指向の場合:

-(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];
}
3
Thunder Rabbit