我像这样创建一个 UIButton:
button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(0,0,100,100);
该按钮有效,但点击区域仅在文本上,而不是整个按钮。我已将按钮的背景设置为[UIColor clearColor]
. 我需要做什么才能使按钮的整个框架成为点击区域?
我想我可以将标签的框架更改为等于按钮,但这似乎很不礼貌。有没有更好的办法?
试试这样
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];
有问题的按钮是用图层构建的。我最终做的是确保背景层具有纯色背景色。在这种情况下,简单地将按钮的背景设置为清除是行不通的。
//set a background color so it is clickable
[layer0 setBackgroundColor: CGCOLORA(0, 1) ];
将 UIButton 的 opaque 属性设置为 true 对我有用(iOS10)