我希望做一个动作,如果有人触碰一个预声明UILabel
,是这样的:UILabel有触摸方法吗?
if (label is touched) {
my actions;
}
有没有一种方法/办法做到这一点?
我希望做一个动作,如果有人触碰一个预声明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
未配置为接受触摸输入。但是,如果您改用UIButton
并将其设置为具有自定义外观,则可以使其看起来像(单行)标签,并使其响应触摸事件。
你需要确保userinteractionenabled设置为YES,然后你可以重写touchesBegan:withEvent:
你可以继承它,并覆盖触摸的方法。您可能想要覆盖touchesEnded:withEvent:
。
或者只是使用UIButton。
只需为UILabel类添加一个类别并添加您的方法即可。
这真的很容易!谢谢! – 2017-11-29 23:12:14