使UILabel可触摸

时间:2011-03-05 19:23:28

标签: iphone user-interface ios4 interface-builder

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

3 个答案:

答案 0 :(得分:50)

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

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

答案 1 :(得分:8)

在斯威夫特:

label.userInteractionEnabled = true
let gestureRecognizer = UITapGestureRecognizer(target: self, action: Selector("labelPressed"))
label.addGestureRecognizer(gestureRecognizer)

点击“操作”:

func labelPressed(){
    print("Label pressed")
    //Your awesome code.
}

答案 2 :(得分:7)

我通常这样做:

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(pushAction)];
[myLabel addGestureRecognizer:tap];

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


好的,我检查过,它只适用于UIView,但是,请执行此操作:

UIView *tapView = [[UIView alloc] initWithFrame:myButton.frame];

并在addGestureRecognizer方法中添加“tapView”。