在UIGestureRecognizer事件处理程序中获取指向事件目标的指针

时间:2014-01-19 20:59:25

标签: ios iphone objective-c cocoa-touch event-handling

假设我有一个处理点击事件的事件处理程序:

-(void) handleOptionTapFrom: (UITapGestureRecognizer*) recognizer
{
    if (recognizer.state == UIGestureRecognizerStateEnded)
    {
        UIView* target = recognizer.view;
    }
}

我能够获得指向UIView对象的指针,该对象是通过view实例的UITapGestureRecognizer属性轻触的。问题是我只能通过基类UIView指针访问它。如果目标是子类,例如UILabel,我如何通过子类指针访问视图,以便我可以使用标签执行特定事物(例如更改文本)颜色或其他。)

如果我知道UIView个实例肯定是 IS A UILabel,我应该向下转播吗?

1 个答案:

答案 0 :(得分:2)

如果您确定视图是UILabel类使用:

UILabel* target = (UILabel *)recognizer.view;

如果您不确定,可以查看

if ([recognizer.view isKindOfClass:[UILabel class]]) {
    UILabel* target = (UILabel *)recognizer.view;
}