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类添加一个类别,并添加您的方法。