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?

4

3 回答 3

13

改变这个

UIView *view = sender.view;

对此

UIButton *btn = (UIButton*)sender.view;
于 2013-10-23T07:53:01.867 回答
5

像这样:

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

UIButton是一个UIView。如果您知道您的手势识别器已附加到按钮,则此演员表是安全的。

于 2013-10-23T07:52:07.427 回答
2
UIView* yourView = yourGestureRecogniser.view;

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

于 2013-10-23T07:53:12.823 回答