命中区域仅在UIButton的标签上

时间:2012-10-05 22:34:21

标签: iphone ios ipad uibutton cgrect

我创建了一个像这样的UIButton:

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

按钮有效,但命中区域仅在文本上,而不是整个按钮。我已将按钮的背景设置为[UIColor clearColor]。我需要做些什么来使按钮的整个框架成为命中区域?

我想我可以将标签的框架更改为等于按钮,但这看起来很糟糕。还有更好的方法吗?

3 个答案:

答案 0 :(得分: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];

答案 1 :(得分:1)

有问题的按钮是用图层构建的。我最终做的是确保背景层具有坚实的背景色。在这种情况下,简单地将按钮的背景设置为清除不起作用。

//set a background color so it is clickable
[layer0 setBackgroundColor: CGCOLORA(0, 1) ];  

答案 2 :(得分:0)

将UIButton的opaque属性设置为true对我有用(iOS10)