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

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

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

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

我可以通过 UITapGestureRecognizer 实例的 view 属性获取指向 UIView 对象的指针。问题是我只能通过基类 UIView 指针访问它。如果目标是子类,例如 UILabel,我如何通过子类指针访问 View ,以便我可以对标签执行特定操作(例如更改文本颜色或其他任何内容。)

如果我知道 UIView 实例肯定是 IS A,我应该在这里沮丧吗? UILabel?

最佳答案

如果您确定 View 是 UILabel 类,请使用:

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

如果你不确定,你可以检查一下

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

关于ios - 在 UIGestureRecognizer 事件处理程序中获取指向事件目标的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21222587/

相关文章:

ios - 使用 slider 的模糊效果无法正常工作

ios - 删除 UIWebView 上显示 ppt 时的填充/间隙

iphone - 剪切绘图后如何将上下文重置为原始矩形?

iphone - 单元测试——测试什么?

objective-c - 使用 [__NSArrayM objectAtIndex :]: index 0 beyond bounds for empty array error 崩溃

ios - 'FIRStorageHandle' 的声明必须在需要之前从模块 'FirebaseStorage.FIRStorageTypedefs' 导入

ios - 如何在 Interface Builder 中编辑表格 View 单元格的文本?

ios - 如何在 ios 中根据图像动态更改 UI 按钮的宽度和高度

objective-c - Xcode:图像数组无法在设备上实例化

objective-c - 如何搜索 UITableView