20

如果有人触摸了 predeclared ,我想做一个动作UILabel,例如:

if (label is touched) {
    my actions;
}

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

4

5 回答 5

50

您可以使用手势识别器:

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

- (void)didTapLabelWithGesture:(UITapGestureRecognizer *)tapGesture {
    // ...
}
于 2011-06-12T21:32:41.507 回答
12

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

于 2011-06-12T21:21:58.017 回答
3

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

或者只使用 UIButton。

于 2011-06-12T21:36:06.503 回答
0

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

于 2011-06-12T21:22:31.980 回答
0

只需为 UILabel 类添加一个类别并将您的方法添加到其中。

于 2017-04-21T09:11:30.900 回答