62

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

4

4 に答える 4

102

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

Interface Builderで「SelectedStateConfiguration」に別の画像を設定し、のselectedプロパティを使用してUIButtonその状態を切り替えるだけです。

于 2010-02-12T21:19:56.483 に答える
13

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

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

次に、セレクター内でタッチアップして、次のように設定します。

button.selected = YES;

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

otherButton.selected = NO;
于 2012-04-05T09:44:45.383 に答える
9

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

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

    /**
     The rest of your method goes here.
     */
}
于 2013-04-15T10:12:16.443 に答える
3

プログラム的に傾いている場合:

-(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];
}
于 2014-02-10T14:14:12.877 に答える