0

こんにちは、私はこのボタンを次のように作成します。

_myButton = [[UIButton buttonWithType:UIButtonTypeCustom] retain];

    DLBadgeLayerDelegate *layerDelegate = [[DLBadgeLayerDelegate alloc] init];

    _myButton.frame = CGRectMake(0.0 , 0.0, 100.0, 100.0);
    [_myButton addTarget:self action:@selector(myButtonTapped:) forControlEvents:UIControlEventTouchUpInside];
    _myButton.layer.backgroundColor = [[UIColor redColor] CGColor];

    _myButton.center = CGPointMake(10.0, 10.0);
    [self addSubview:_myButton];
    [_myButton release];

ボタンは画面に表示されますが、タップしても何も起こりません。レイヤーにカスタム描画を使用せずに丸みを帯びた四角形ボタンを作成するか、コードのレイヤー行をそのままにしておくと、すべてうまく機能します。ボタンのレイヤーでカスタム描画を行いたいのに、なぜこの動作が発生するのか考えていますか?

4

2 に答える 2

1

イベントは、(1)非表示、(2)アルファ<0.1、(3)userInteraction = NOなどのコントロールには送信されません。ボタン画像、ボタンタイトル、背景色、背景画像がないため、透過的(アルファ<0.1など)として扱われ、イベントを取得していません。画像、タイトル、または背景色(レイヤーではなくUIViewで)を追加して、それが問題であるかどうかを確認してください。

編集:レイヤーのbackgroundColorではなくビューのbackgroundColorに背景色を入れてみてください:

_myButton.backgroundColor = [UIColor redColor];
于 2010-04-28T00:13:39.287 に答える
0

この行を省略した場合:

_myButton.layer.backgroundColor = [[UIColor redColor] CGColor];

イベントは正しくトリガーされ、タイトル、アルファなどはまだありません。それが問題や説明ではないと思いますが、その方法も試してみます。

于 2010-04-28T00:50:48.873 に答える