0

我在我的 rootview 中添加了一个自定义视图并添加了一个 UITapGesture。当调用 UITapGesture 代码的“sender.view”时,它不再由我的自定义 UIView 表示,而是“sender.view”的类型为 UIImageView。

因此,当 iOS 期待 UIView 时,向我的自定义视图发送消息真的很困难——我得到的警告是:“不兼容的指针类型将 UIView 发送到参数 CardView(我的自定义视图)。

我认为这与响应链有关;文档说 - “当 iOS 识别一个事件时,它会将事件传递给看起来与处理该事件最相关的初始对象,例如发生触摸的视图。” -关于 iOS 中的事件

这里的关键字是“似乎”——我如何告诉 iOS 我的自定义视图是应该处理手势的?

问题:如何让 sender.view 直接引用我的自定义视图?

下面是一些代码:

//Creates the Card's view
CardView *cardView = [[CardView alloc]initWithFrame:CGRectMake(0, 0, 67,99)];
//For Single Tap
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(handleSingleTapGesture:)];
[cardView addGestureRecognizer:tapGesture];
[self.view addSubview:cardView];
4

1 回答 1

1

handleSingleTapGesture:将给你(UITapGestureTecongnizer *)sender这样的演员:

CardView *card = (CardView *)sender.view;
//do you stuff with card 
于 2013-02-28T10:02:17.053 回答