UILabel有触摸方法吗?

如果有人触及一个预先声明的UILabel ,我想要做一个动作,例如:

 if (label is touched) { my actions; } 

有没有一种方法可以做到这一点?

你可以使用手势识别器:

 - (void)someSetupMethod { // ... label.userInteractionEnabled = YES; UITapGestureRecognizer *tapGesture = \ [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTapLabelWithGesture:)]; [label addGestureRecognizer:tapGesture]; [tapGesture release]; } - (void)didTapLabelWithGesture:(UITapGestureRecognizer *)tapGesture { // ... } 

默认情况下, UILabel未configuration为接受触摸input。 但是,如果您使用UIButton并将其设置为具有自定义外观,则可以使其看起来像(单行)标签,并使其响应触摸事件。

您可以inheritance它并覆盖触摸方法。 你可能想重写touchesEnded:withEvent:

或者只使用一个UIButton。

您需要确保userinteractionenabled设置为YES,然后您可以覆盖touchesBegan:withEvent:

只需为UILabel类添加一个类别,并添加您的方法。