如果有人触及预先声明的UILabel
,我想采取行动,例如:
if (label is touched) {
my actions;
}
有方法/方法吗?
答案 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类添加一个类别,然后添加您的方法即可。