ios - 使用带有两个(或更多)参数的选择器

标签 ios objective-c uiscrollview selector uigesturerecognizer

我读过这个问题:

Relevant question

而且我仍然不明白如何使用带有多个参数的选择器。

这是我的代码:

{
...
//add single tap gesture to the view
SEL mySelector = @selector(handleSingleTap:withScroll:);
UIGestureRecognizer* singleTap = [[UITapGestureRecognizer alloc]initWithTarget:self action:mySelector];
[myView addGestureRecognizer:singleTap];
...
}

和:

- (void)handleSingleTap:(UITapGestureRecognizer *)recognizer withScroll:(UIScrollView*)scroll {
    ...
}

但是当然不行。 (UIScrollView*)scroll 在运行时为 nil

例如,如何将它设置为(UIScrollView*)scroll

如有任何帮助,我们将不胜感激。

最佳答案

UIGestureRecognizer 的选择器仅使用 1 个参数,识别器本身仅使用 1 个参数调用您的选择器,因此方法中的任何其他参数都将为 nil,因为调用堆栈中没有更多参数。

关于ios - 使用带有两个(或更多)参数的选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21271797/

相关文章:

objective-c - iOS - 如何刷新/更新核心数据 transient 属性?

iphone - UIScrollView 作为 subview 不滚动

ios - 更改边界大小后 CALayer 的位置

iphone - 如何在大型中央调度操作中运行异步操作?

objective-c - 强制 'Shared User Defaults Controller'立即保存到磁盘?

ios - Objective-C 项目中的 Swift pod

objective-c - 我如何向用户请求麦克风录音权限

iphone - viewWillAppear subview

ios - UIScrollViews 在离开 View 和返回时不同步

ios - 制作iOS和Mac UI元素 'shake'