1

次のように設定されたアウトレットを使用して、インターフェースビルダーで宣言された UIButton を取得しました。

@property (weak, nonatomic) IBOutlet UIButton *loginButton;

サブビューを挿入するまでは正常に動作します。その後、応答を停止します。問題のある行は次のとおりです。

[self.loginButton insertSubview:_gradientButtonView atIndex:0];

それをコメントアウトすると、ボタンが再び機能します。関連するすべてのコードは次のとおりです (素晴らしい SSToolkit と UIColor のカスタム カテゴリを使用):

SSGradientView *_gradientButtonView = [[SSGradientView alloc] initWithFrame:self.loginButton.layer.bounds];
_gradientButtonView.autoresizingMask = UIViewAutoresizingFlexibleWidth;
_gradientButtonView.topBorderColor = [UIColor colorWithRed:0.558f green:0.599f blue:0.643f alpha:1.0f];
_gradientButtonView.topInsetColor = [UIColor colorWithWhite:1.0f alpha:0.3f];
_gradientButtonView.colors = [NSArray arrayWithObjects:[UIColor from_hex:@"E6E7E8"], [UIColor from_hex:@"A7A9AC"], nil];
_gradientButtonView.layer.cornerRadius = 5;
self.loginButton.layer.cornerRadius = 5;
self.loginButton.titleLabel.shadowOffset = CGSizeMake(0, 1);
[self.loginButton setTitleShadowColor:[UIColor whiteColor] forState:UIControlStateNormal];
self.loginButton.layer.masksToBounds = YES;
_gradientView.bottomBorderColor = [UIColor colorWithRed:0.428f green:0.479f blue:0.520f alpha:1.0f];
_gradientButtonView.clipsToBounds = YES;
_gradientButtonView.userInteractionEnabled = YES;
[self.loginButton insertSubview:_gradientButtonView atIndex:0];
self.loginButton.userInteractionEnabled = YES;
4

1 に答える 1

0

これは上記のコメントで答えられました:

_gradientButtonView.userInteractionEnabled = YES; と書いている特定の理由はありますか? 私の知る限り、これにより、ビューがタッチイベントをレスポンダーチェーンに送信できなくなります

于 2013-07-15T17:53:57.327 に答える