首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我在ImageView子类中定义了手势识别器,但在ViewController中调用方法时出现“无法识别的选择器”

在这个问题中,出现了"无法识别的选择器"的错误。这通常是由于在调用方法时使用了错误的选择器名称导致的。选择器是一种用于标识方法的方式,它由方法的名称和参数类型组成。

要解决这个问题,首先需要确保在ViewController中正确调用了ImageView子类中定义的手势识别器方法。请检查方法名是否正确拼写,并确保方法的参数类型与定义的手势识别器方法一致。

另外,还需要确认手势识别器方法是否正确地添加到了ImageView子类中。可以通过以下步骤来添加手势识别器:

  1. 在ImageView子类的初始化方法中,创建手势识别器对象,并设置其对应的方法。
  2. 将手势识别器对象添加到ImageView子类的手势识别器数组中。
  3. 在ImageView子类中实现手势识别器方法,以响应手势事件。

如果以上步骤都正确执行,但仍然出现"无法识别的选择器"错误,可能是由于其他原因导致的。可以尝试以下方法进行排查:

  1. 检查是否在调用方法时使用了正确的对象实例。确保调用方法的对象是ImageView子类的实例。
  2. 检查是否在调用方法时使用了正确的方法名和参数类型。
  3. 检查是否在ImageView子类中正确地实现了手势识别器方法,并且方法的访问权限设置正确。

总结起来,解决"无法识别的选择器"错误的关键是确保正确调用方法、正确添加手势识别器,并正确实现手势识别器方法。如果问题仍然存在,可以提供更多的代码和错误信息,以便更好地帮助解决问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS 小技能:响应者链的事件传递过程、手势识别的使用步骤、抽屉效果的实现

抽屉效果的实现 I 手势识别 为了完成手势识别,必须借助于手势识别UIGestureRecognizer。...利用UIGestureRecognizer,能轻松识别用户某个view上面做的一些常见手势。...}; 1、UIGestureRecognizer是一个抽象类,定义所有手势的基本行为,使用它的子类才能处理具体的手势 子类: UITapGestureRecognizer(敲击) UIPinchGestureRecognizer...每一个手势识别的用法都差不多,比如UITapGestureRecognizer的使用步骤: //创建手势识别对象 UITapGestureRecognizer *tap = [[UITapGestureRecognizer...:@selector(tapIconView:)]; 1.3 手势识别的使用 // #import "ViewController.h" @interface ViewController

86030

iOS手势与变形

手势在用户交互中有着举足轻重的作用,这篇文字简单的介绍iOS手势,并通过手势对控件进行变形处理。若有错误,或不同的见解,请指正!...,那就是UITapGestureRecognizer,一旦识别无法取消,而且只会调用一次手势操作事件。...换句话说其他手势是连续型手势,而连续型手势的特点就是:会多次调用手势操作事件,而且连续手势识别后可以取消手势。 从下图可以看出两者调用操作事件的次数是不同的: ?...,返回YES 将要同时实现的手势设置代理 pinch.delegate = self; pinch.delegate = self storyboard添加手势 storyboard的控件栏我们可以看到这些手势控件...注意:若想同时识别多个手势方法和上面相同,遵循协议,实现方法,设置代理,不过代理可以手动关联。 ? 由于

1.8K40

iOS手势与变形

手势在用户交互中有着举足轻重的作用,这篇文字简单的介绍iOS手势,并通过手势对控件进行变形处理。...,那就是UITapGestureRecognizer,一旦识别无法取消,而且只会调用一次手势操作事件。...换句话说其他手势是连续型手势,而连续型手势的特点就是:会多次调用手势操作事件,而且连续手势识别后可以取消手势。...,返回YES 将要同时实现的手势设置代理 pinch.delegate = self; pinch.delegate = self storyboard添加手势 storyboard的控件栏我们可以看到手势控件...使用方法: 直接将手势控件拖到要添加的视图上 关联手势事件 设置手势属性 注意:若想同时识别多个手势方法和上面相同,遵循协议,实现方法,设置代理,不过代理可以手动关联。

1.2K30

iOS手势的应用1. 四类事件的主要方法2. 响应者链3. 手势识别功能(Gesture Recognizer)4. 手势的使用

例如用户对屏幕进行了侧滑,APP就需要对这个手势进行相应的处理,给用户一个反馈。这些相应的事件就都是UIResponder定义的。...触摸事件.png 但是iOS不是任何对象都能处理事件,只有继承UIResponder的对象才能接收并处理事件。我们称之为“响应者对象”。...手势识别功能(Gesture Recognizer) 如果想监听一个view上面的触摸事件,之前的做法是 自定义一个view 实现view的touches方法方法内部实现具体处理代码 通过touches...方法监听view触摸事件,有很明显的几个缺点 必须得自定义view 由于是view内部的touches方法监听触摸事件,因此默认情况下,无法让其他外界对象监听view的触摸事件 不容易区分用户的具体手势行为...,定义所有手势的基本行为,使用它的子类才能处理具体的手势 UITapGestureRecognizer(点按) UIPinchGestureRecognizer(捏合,用于缩放) UIPanGestureRecognizer

2.2K40

iOS学习—— UINavigationController的返回按钮与侧滑返回手势的研究

,如果你的项目中没有需求要自定义返回按钮(虽然觉得这并不太可能),那么你所需要的操作就非常简单,不多说直接上代码。...而在这个模块上,我们有某个或某些viewController需要禁用侧滑手势(一般需要禁用侧滑手势是因为返回或退出当前viewController需要double confirm,一些填表的页面比较常见...提供一个解决方案就是进入viewController - (void)viewDidAppear:(BOOL)animated; 禁用侧滑手势,然后离开viewController - (void...UIScrollView及其子类自带滑动手势,所以如果一个viewController钟有UIScrollView及其子类的view,侧滑手势影响用户体验效果,此时用户将无法通过侧滑进行返回。...失效识别,具体设置方法如下: //指定滑动手势侧滑返回手势失效后响应 [self.tableView.panGestureRecognizer requireGestureRecognizerToFail

6.5K60

实际操作-手把手探究tableViewCell上的控件点击事件进阶篇:实际项目操作

,经常我们做的是行点击之后页面跳转(push到另一个界面); 此时:如果我们cell上自定义几个控件,然后点击控件,想要实现控件的点击效果,不实现cell的行点击效果: ?...addTarget方法底层 如图,我们发现addTarget并不是所有的类都有这个方法-->只有UIControl的子类才能有这个方法! ?...cell的push操作 如同,因为tableViewCell不是ViewController,没有navigationVC属性,并不能实现控制的push操作!...-->错误:1.我们点击的是头像(UIImageView),触发的是头像的点按手势,并不会调用didSelectRowAtIndexPath方法;               2.异步请求,点击的时候...逻辑严谨性:此时加个网络请求数据是否成功的判断,成功展示可以点击的按钮) -->怎么让控制知道我们点击哪行的cell --> 没有触发cell的didSelectRowAtIndexPath方法

3.5K50

【IOS开发基础系列】UIViewController专题

-(void)animateTransition:(id)transitionContext;         进行切换的时候将调用方法,我们对于切换的UIView的设置和动画都在这个方法完成。...,这样使用这个类(一般是其子类)的话就会非常方便。我们在手势识别只需要告诉这个类的实例当前的状态百分比如何,系统便根据这个百分比和我们之前设定的迁移方式为我们计算当前应该的UI渲染,十分方便。...具体的几个重要方法: - (void) updateInteractiveTransition: (CGFloat)percentComplete         更新百分比,一般通过手势识别的长度之类的来计算一个值...1.我们设定一个BOOL变量来表示是否处于切换过程。这个布尔值将在监测到手势开始被设置,我们之后会在调用返回这个InteractiveTransition的时候用到。     ...3.手势结束,把正在切换的标设置回NO,然后进行判断。2我们设定手势距离超过设定一半就认为应该结束手势,否则就应该返回原来状态。

42330

iOS 事件传递和处理

:(CGPoint)point withEvent:(UIEvent *)event pointInside方法返回point和event是否自己当前视图上; 这两个方法UIView都提供默认实现,...UIWindow是UIView的子类,UIView的hitTest方法实现和上述过程一致。 思考: UIView调用子视图hitTest,是先调用哪些子视图?...接着UIApplication就会调用sendEvent:方法,接着UIWindowsendEvent:方法中会调用sendTouchesForEvent:方法,如下图: ?...手势处理发生在哪一步 手势(UIGestureRecognizer)是iPhone的重要交互方式,手势识别 介绍手势是如何识别,甚至可以添加自定义手势。...上文分析手势识别是发生在响应链回调之前,也就是tap手势是发生在touches系列方法回调之前,那么Tap手势应该是UIButton的touches方法之前。

1.4K20

UIkit Dynamics 投掷效果

前言:上章UIKit Dynamics 置身真实世界介绍基本用法,下面我们继续深入学习——手势跟Dynamics结合的用法 一、触摸处理 1、ViewController.swift添加以下属性,并在...另外,view添加一个手势识别(Pan Gesture Recognizer),打开ViewController.swift并将此新方法添加到该文件: @IBAction func handleAttachmentGesture...上面的代码设置一个UIDynamicAnimator——基于物理动画的UIKit引擎,将视图控制的视图作为参考视图来定义animator的坐标系。...3、更新红色方块以指示锚点,蓝色方块表示imageView附加的点。当手势开始,这些将是相同的点。 4、将此行为添加到animator,使其生效。...一旦设置推动行为,就将其添加到动画序列。 4、指定的时间间隔之后,动画会通过将图像发送回目的地重置,因此它会拉出并返回屏幕 - 就像一个球从墙上弹起! 效果如下: ?

1.1K50

# iOS导航栏控制Tips

第一种方案比较简单就不做赘述,第二种方案是这样的: 自定义导航控制,然后重写如下方法: - (void)pushViewController:(UIViewController *)viewController...例如singleTask,在做IM类App,跳转到聊天室的场景,就非常有用,可以保证控制只有一个聊天室,避免返回层级太深。...原始堆栈数组判断是否存在该类型的控制,如果存在记录其索引。 复制的数组中将索引及上方所有控制移除。 把将要push出来的控制添加到复制的数组。...将新的控制数组设置为导航控制的栈数组,根据参数判断是否要显示动画。 这边做了一些发散,因为一些类可能会有很多子类,那么想要保证父类以及子类的实例都只有一个,所以将方法做了改进。...:newChildVCs animated:animated]; } 当然,除了上面这些场景,还可以扩展出一些其他的场景,比如我们期望将要push出来的控制再某个栈控制的后面或者前面,这样当点击返回或者侧滑

1.7K31

iOS好用的第三方侧边栏控件——MMDrawerController

centerViewController rightDrawerViewController:(UIViewController *)rightDrawerViewController; MMDrawerController也提供许多属性和方法供开发者进行自定义的设置..., //自定义手势 需配合自定义手势方法使用 MMOpenDrawerGestureModeCustom = 1 << 4, //所有模式兼容...MMDrawerSide drawerSide, CGFloat percentVisible))drawerVisualStateBlock; 回调block中会传递进来侧边栏显示完成的百分比,并且侧边栏出现过程...,开发者可以导入MMDrawerController+Subclass.h文件,这个文件中提供许多控制的监听方法供开发者重写,解析如下: //出现单击手势会回调的方法 如果要重写 必须调用父类的此方法...前面有提到,侧边栏的展现动画开发者可以进行自定义,为了使开发者使用MMDrawerController更加方便,MMDrawerController框架还提供一个动画辅助类MMDrawerVisualState

2.8K20

实践-小细节 Ⅰ

点击搜索后,停止编辑后,系统的单航条就会出现,而且通过代理来手动隐藏是无法做到的,所以,使用  UISearchBar & UISearchDisplayController不要使用自定义的导航条,...UIDatePicker 这个时间选择器的显示,会随着手机的语言设置而不同,对于用模拟的小伙伴,默认的显示样式是英文的,当把模拟的语言设置成简体中文就变成这样 ?...把更改之后的值提供给处理方法 NSKeyValueObservingOptionInitial 把初始化的值提供给处理方法,一旦注册,立马就会调用一次。...deallocremove一次,子类又remove一次的情况下。...我们可以分别在父类以及本类定义各自的context字符串,比如在本类定义context为@"ThisIsMyKVOContextNotSuper";然后deallocremove observer

1.6K20

【IOS开发基础系列】UIView专题

如果子类是其他视图的容器那么它不需要重写这个方法。默认的实现不做任何事情。如果你自定义的视图是一个UIView子类,你不需要去调用它的父类实现。...UIKit直接将动画集成到UIView类,实现简单动画的创建过程。UIView类定义几个内在支持动画的属性声明,当这些属性发生改变,视图为其变化过程提供内建的动画支持。         ...原因:出现这个问题是因为开机时候系统有个动画,系统动画和这个动画重复。     解决方案:     1、将动画写在按钮事件     2、利用定时。...(调用setNeedsDisplay会自动调用drawRect)         UIView,重写drawRect: (CGRect)aRect方法,可以自己定义想要画的图案.且此方法一般情况下只会画一次...尺寸,只有部分显示ImageView

49230

iOS开发常用之网络

MDCSwipeToChoose - MDCSwipeToChoose可简单地添加滑动手势调用UIView,并使用该行为提供一个组件以创建类似Tinder应用的喜欢或者不喜欢界面的轻扫。...HZQDatePickerView - 自定义时间选择器(日期选择器),包括开始日期和结束日期两种类型。 CFCityPickerVC - 城市选取控制。...XTPaster - 贴纸功能出现在很多图片社交,就是图片上面贴图片,对贴纸而言就是需要控制贴纸的位置,旋转,大小,如何使用。 RGCategoryView - 仿个苏宁易购的分类页面。...侧滑与右滑返回手势 SloppySwiper - iOS系统自带的UINavigationController要7.0才支持,但不过该手势只能从屏幕左侧边缘识别,如果要扩大到整个屏幕范围怎么办?...安装简便,高度定制且对手势识别良好。可以当做一个标准控件用在iOS SDK。 SwiftPages - 高可定制类似Instagram的视图滑动切换功能类.API简单,易用。

23.6K10

iOS14开发-触摸与手势识别

响应者对于触摸事件的响应和传递都是touchesBegan方法完成的。该方法默认是将事件顺着响应者链向上传递,即将事件交给上一个响应者进行处理。...UIScreenEdgePanGestureRecognizer:屏幕边缘拖动手势识别。 使用步骤 创建手势实例,指定回调方法,当手势开始,改变、或结束,回调方法调用。...将手势添加到需要的 UIView 上。每个手势只对应一个 UIView,当屏幕触摸在当前 UIView 里,如果手势和预定的一样,回调方法就会调用。...: UIGestureRecognizerDelegate { // 手势识别是否解释此次手势 func gestureRecognizerShouldBegin(_ gestureRecognizer...继承自 UIControl 的 UIView 都可以通过 Target-Action 方式添加事件,如果同时给它们添加手势识别, 则 Target-Action 的行为会失效,因为手势识别的优先级更高。

2.2K20
领券