1

私は2つの状態でシンプルUIButtonです。buttonforUIControlEventTouchDownイベントにアクションを追加しました。通常の状態ではすべてうまく動作しbutton、 に触れるとメソッドが呼び出されbuttonます。しかし、に触れbuttonselected stateも何も起こらbuttonず、指を離すだけで状態が通常 (Like UIControlEventTouchUpInside) に変わります。

どうすればこれを解決できますか?

このメソッドを使用してボタンを作成します。

- (UIButton *) createButtonWithFrame:(CGRect)frame title:(NSString *)title {
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    [button setFrame:frame];
    [button setTitle:title forState:UIControlStateNormal];
    [button setTitleColor:UIColorFromRGB(0x3a3a3a) forState:UIControlStateNormal];
    [button setTitleColor:[UIColor whiteColor] forState:UIControlStateSelected];
    [[button titleLabel] setFont:[UIFont fontWithName:@"Gotham-Bold" size:10]];
    [button setBackgroundImage:[UIImage imageNamed:@"button.png"] forState:UIControlStateNormal];
    [button setBackgroundImage:[UIImage imageNamed:@"button_pressed.png"] forState:(UIControlStateSelected)];
    [button setAdjustsImageWhenHighlighted:NO];
    [button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchDown];
    return button;
}

そしてbuttonPressed:、このようなものです:

- (void) buttonPressed:(UIButton *)sender {
    [sender setSelected:!sender.selected];
}
4

1 に答える 1