使UILabel可触摸

Jak*_*kub 17 iphone user-interface interface-builder ios4

我有一个UILabel,我想让它做出反应.我尝试在标签上面放一个按钮,这要归功于我可以与按钮进行交互.但是,按钮不能完全透明,对吗?我可以将按钮的alpha设置为0,02,但它仍然可以在背景上看到.怎么解决这个?也许我可以用其他方式设置属性以使它们完全不可见?还是有其他解决方案吗?

Ole*_*ann 50

首先,为什么不使用按钮并将按钮标题设置为标签的内容?

如果您不能/不想这样做,您也可以userInteractionEnabled = YES在标签上设置,然后在标签上添加手势识别器.

  • +1为"userInteractionEnabled = YES".谢谢! (4认同)

vka*_*lit 8

在Swift中:

label.userInteractionEnabled = true
let gestureRecognizer = UITapGestureRecognizer(target: self, action: Selector("labelPressed"))
label.addGestureRecognizer(gestureRecognizer)
Run Code Online (Sandbox Code Playgroud)

点击动作:

func labelPressed(){
    print("Label pressed")
    //Your awesome code.
}
Run Code Online (Sandbox Code Playgroud)


Jen*_*n2k 7

我经常这样做:

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(pushAction)];
[myLabel addGestureRecognizer:tap];
Run Code Online (Sandbox Code Playgroud)

我不知道它是否适用于标签,但是我只是制作一个透明的UIView,使用相同的矩形并将其放在顶部.


好的,我查了一下,它只适用于UIView,但是,然后,这样做:

UIView *tapView = [[UIView alloc] initWithFrame:myButton.frame];
Run Code Online (Sandbox Code Playgroud)

并在addGestureRecognizer方法中添加"tapView".

  • UITapGestureRecognizer可以在UILabel上运行 - 您只需要在UILabel上设置userInteractionEnabled = YES. (10认同)