如何让UILabel *没有*传递给它嵌入的UITableViewCell?

时间:2014-12-21 18:38:43

标签: ios objective-c cocoa-touch uitableview uiview

我有UITableView一堆单元格,我为每个单元格添加UILabel。我希望UILabel在点击时接受触摸,而不是单元格。显然,如果他们点击标签之外并仍然在细胞上,但如果它在标签上,则细胞不应引起任何刺激或动作或其他任何东西,只有标签的动作应该是火。

我的常规方法是将UIView' userInteractionEnabled设置为YES,但在这种情况下,当我在标签上设置它时,它不会{39} ; t会导致任何不同的事情发生。当我在标签子类中查看touchesBegan时,这些方法会触发,但单元格选择也是如此。

如何让UILabel没有通过细胞接触?

1 个答案:

答案 0 :(得分:2)

我建议在标签中添加UITapGestureRecognizer并将cancelsTouchesInView属性设置为YES,以防止在手势识别时将触摸传递到视图,例如:

UITapGestureRecognizer *labelTapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:nil];
labelTapGesture.cancelsTouchesInView = YES;
[label addGestureRecognizer:labelTapGesture];
label.userInteractionEnabled = YES;

由于您不希望手势执行操作,因此您可以将其操作设置为nil。