是否有UILabel的触摸方法?

时间:2011-06-12 21:14:22

标签: objective-c ios cocoa-touch uilabel touch-event

如果有人触及预先声明的UILabel,我想采取行动,例如:

if (label is touched) {
    my actions;
}

有方法/方法吗?

5 个答案:

答案 0 :(得分:47)

您可以使用手势识别器:

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

- (void)didTapLabelWithGesture:(UITapGestureRecognizer *)tapGesture {
    // ...
}

答案 1 :(得分:12)

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

答案 2 :(得分:3)

您可以将其子类化并覆盖触摸方法。您可能想要覆盖touchesEnded:withEvent:

或者只使用UIButton。

答案 3 :(得分:0)

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

答案 4 :(得分:0)

只需为UILabel类添加一个类别,然后添加您的方法即可。