4

背景がグラデーションのUIButtonを作成しようとしています。正常に動作しましたが、選択したときにボタンが強調表示されません(デフォルトの動作ではボタンが暗くなります)。

これが私のボタンです:

-(UIButton *)createLoginButtonForSize:(CGSize)size {
    UIButton *loginButton = [UIButton buttonWithType:UIButtonTypeCustom];
    loginButton.translatesAutoresizingMaskIntoConstraints = FALSE;
    loginButton.layer.cornerRadius = 8;
    loginButton.titleLabel.text = @"Login";

    [loginButton addTarget:self action:@selector(loginCheck:) forControlEvents:UIControlEventTouchUpInside];


    [loginButton addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[loginButton(WIDTH)]"
                                                                        options:0
                                                                        metrics:@{@"WIDTH": [NSNumber numberWithFloat:size.width]}
                                                                          views:NSDictionaryOfVariableBindings(loginButton)]];

    [loginButton addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[loginButton(HEIGHT)]"
                                                                        options:0
                                                                        metrics:@{@"HEIGHT": [NSNumber numberWithFloat:size.height]}
                                                                          views:NSDictionaryOfVariableBindings(loginButton)]];

    CAGradientLayer *layer = [UIColor greenGradient];
    layer.frame = CGRectMake(0, 0, size.width, size.height);
    layer.cornerRadius = 8;

    [loginButton.layer insertSublayer:layer atIndex:0];

    return loginButton;
}

ハイライトを自分で処理する必要がありますか?

4

1 に答える 1

5

はい、自分でハイライトを処理する必要があります。ただし、独自のコードを作成するよりも、Jeff Lamarche の非常に使いやすいiPhone Gradient Buttons Projectを確認してください。それはあなたがやろうとしていることを正確に行います。たった 2 つのファイルなので、プロジェクトに簡単に組み込むことができます。

http://code.google.com/p/iphonegradientbuttons/source/browse/trunk/Classes/GradientButton.h http://code.google.com/p/iphonegradientbuttons/source/browse/trunk/Classes/GradientButton.m

プロジェクトについて議論しているジェフのブログから取った以下のスクリーンショット。

画像のないグラデーション ボタン

于 2013-02-04T17:50:01.010 に答える