objective-c - 当 Action 的发送者是 UIGestureRecognizer 时引用按钮

标签 objective-c uigesturerecognizer sender

我有一个名为 myButton 的按钮,我给了它一个 UIGestureRecognizer 以便 IBAction 仅在 myButton 时运行 用两根手指按下:

UIGestureRecognizer  *tapper = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(twoFingerTap:)];
[(UITapGestureRecognizer *) tapper setNumberOfTouchesRequired:1];
[newTaskButton addGestureRecognizer:tapper];

在添加手势识别器之前,我可以使用 sender 来引用刚刚按下的按钮,但是现在 sender 现在是手势识别器。我仍然需要引用按下的按钮......有什么办法可以这样做吗?一个简单的方法可以返回任何正在使用手势识别器的东西吗?谢谢!

最佳答案

UIGestureRecognizer 类有一个 view 属性,表示手势识别器附加到的 View ,在您的例子中是按钮。

- (void)twoFingerTap:(UIGestureRecognizer *)sender {
    UIButton *myButton = (UIButton *)sender.view;
}

关于objective-c - 当 Action 的发送者是 UIGestureRecognizer 时引用按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6835233/

相关文章:

iphone - 远程 html 文件完成加载时的 iOS webview 事件

iOS NSKeyedUnarchiver 无法获得正确的值

iphone - 试图在 UIPanGestureRecognizer 上移动 UIImageView

ios - UICollectionView 中的缩放 ImageView 不一致

iphone - 如何通过longPressGestureRecognizer获取button.tag?

ios - 错误 : Cannot change background color of button

iphone - 如果我转换 View 框架, subview 框架如何变化?

ios - iOS-UITableViewCell中的UIButton的长按手势识别器

swift - 如何通过发送者以外的标签调用特定的UIButton?

iphone - 如何使用 AVFoundation 为您的视频添加不同图像和不同 CMTime 的水印