如何在iPhone上的手势识别器中获取原始附加视图?

7
通过以下代码,我在手势识别器中添加了一个按钮:
UILongPressGestureRecognizer *longPress=[[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(addLongpressGesture:)];
[longPress setDelegate:self];
[BUTTON addGestureRecognizer:longPress];

这是我的addLongpressGesture方法:

- (void)addLongpressGesture:(UILongPressGestureRecognizer *)sender {

UIView *view = sender.view;

CGPoint point = [sender locationInView:view.superview];

if (sender.state == UIGestureRecognizerStateBegan){ 

      // GESTURE STATE BEGAN

}
}

通过这段代码 sender.view,我获得了附加的视图作为 UIView 但是我想要的是它附加的视图(UIButton),如何将 UIView 转换成 UIButton?
3个回答

13

修改此处

UIView *view = sender.view;

到这里

UIButton *btn = (UIButton*)sender.view;

5

像这样:

UIButton *button = (UIButton*)sender.view;

UIButton 是一个 UIView。如果您知道您的手势识别器是附着在按钮上的,那么这种转换是安全的。


2
UIView* yourView = yourGestureRecogniser.view;

由于每个gestureRecognizer只有一个view属性,这就解释了为什么手势识别器只能添加到一个视图中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接