iOS浅談button選択状態とハイライト状態

1359 ワード

すべての問題は需要から来て、まず需要を言って、1つのボタンを設定して、初期状態はnormalで、クリックした後に選択状態で、その後連続的にクリックしますかそれとも選択状態ですか?一般的なアプローチ:
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    button.frame = CGRectMake(0, 100, 100, 100);

    [button addTarget:self action:@selector(buttonAction:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:button];


    [button setBackgroundImage:[UIImage imageNamed:@"home_normal"] forState:UIControlStateNormal];
    [button setBackgroundImage:[UIImage imageNamed:@"home_highlight"] forState:UIControlStateSelected ];
    [button setBackgroundImage:[UIImage imageNamed:@"home_highlight"] forState:UIControlStateHighlighted];
    
    [button setTitle:@" " forState:UIControlStateNormal];
    [button setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
    [button setTitleColor:[UIColor yellowColor] forState:UIControlStateSelected];

    button.selected = YES;


-(void)buttonAction:(UIButton *)btn{

    btn.selected = YES;
    NSLog(@" ");
}

この时1つの问题が现れて、クリック状态の时にずっと长く押して、あなたはピクチャーが非选択の状态に変わることを発见することができて、私もハイライトの状态のピクチャーを选択の状态のピクチャーに设定することを试みて、しかし结果はやはり効果がなくて、探して、1つの方法を见つけました:button类を书き直します.mでこの方法を書き換える:
// 
- (void)setHighlighted:(BOOL)highlighted
{
    
}

このクラスを継承するbuttonはこの問題を二度と起こさない.