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 回答