2

次のようなUIButtonを作成します。

button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(0,0,100,100);

ボタンは機能しますが、ヒット領域はボタン全体ではなく、テキスト上にのみ表示されます。ボタンの背景をに設定しました[UIColor clearColor]。ボタンのフレーム全体がヒット領域になるようにするには、何をする必要がありますか?

ラベルのフレームをボタンと同じになるように変更できると思いますが、それはおかしなことに思えます。もっと良い方法はありますか?

4

3 に答える 3

2

このようにしてみてください、

        UIButton *button=[UIButton buttonWithType:UIButtonTypeCustom];
        button.frame=CGRectMake(0,0,100,100);
        button.backgroundColor=[UIColor clearColor];
        [button setTitle:@"Set" forState:UIControlStateNormal];
        [button setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
        [button addTarget:self action:@selector(buttonClicked) forControlEvents: UIControlEventTouchUpInside];
        [self.view addSubview:button];
于 2012-10-06T12:16:12.743 に答える
1

問題のボタンはレイヤーで構築されていました。私がやったことは、背景レイヤーが無地の背景色であることを確認することでした。この場合、ボタンの背景をクリアに設定するだけでは機能しませんでした。

//set a background color so it is clickable
[layer0 setBackgroundColor: CGCOLORA(0, 1) ];  
于 2013-03-13T17:26:05.737 に答える
0

UIButtonのopaqueプロパティをtrueに設定すると、うまくいきました(iOS10)

于 2017-09-06T11:42:02.783 に答える