假设我有一个处理点击事件的事件处理程序:
-(void) handleOptionTapFrom: (UITapGestureRecognizer*) recognizer
{
if (recognizer.state == UIGestureRecognizerStateEnded)
{
UIView* target = recognizer.view;
}
}
我能够获得指向UIView
对象的指针,该对象是通过view
实例的UITapGestureRecognizer
属性轻触的。问题是我只能通过基类UIView
指针访问它。如果目标是子类,例如UILabel
,我如何通过子类指针访问视图,以便我可以使用标签执行特定事物(例如更改文本)颜色或其他。)
如果我知道UIView
个实例肯定是 IS A UILabel
,我应该向下转播吗?
答案 0 :(得分:2)
如果您确定视图是UILabel类使用:
UILabel* target = (UILabel *)recognizer.view;
如果您不确定,可以查看
if ([recognizer.view isKindOfClass:[UILabel class]]) {
UILabel* target = (UILabel *)recognizer.view;
}