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

为什么我的自定义UIButton子类不能触发touch up IBAction?

自定义UIButton子类不能触发touch up IBAction的原因可能有以下几种:

  1. 没有正确设置UIButton的Target和Action:在自定义UIButton子类的初始化方法中,需要为按钮设置Target和Action,以便在按钮被点击时触发相应的方法。确保Target是正确的对象,Action是正确的方法。
  2. UIButton的UserInteractionEnabled属性被禁用:默认情况下,UIButton的UserInteractionEnabled属性是启用的,如果该属性被禁用,按钮将无法响应用户的交互操作。确保该属性被正确设置为启用状态。
  3. UIButton的Frame或Bounds设置不正确:如果按钮的Frame或Bounds属性设置不正确,可能导致按钮无法显示在屏幕上或无法接收到用户的点击事件。确保按钮的Frame或Bounds属性被正确设置。
  4. UIButton的父视图或父视图的父视图的UserInteractionEnabled属性被禁用:如果UIButton的父视图或父视图的父视图的UserInteractionEnabled属性被禁用,按钮将无法接收到用户的点击事件。确保按钮的父视图及其父视图的UserInteractionEnabled属性被正确设置为启用状态。
  5. UIButton的事件响应方法命名不正确:在自定义UIButton子类中,确保事件响应方法的命名正确,并且与设置的Action相匹配。例如,如果设置的Action是"buttonClicked:",则对应的方法应该是"buttonClicked:"。

如果以上解决方法都没有解决问题,可能需要进一步检查代码逻辑,确保没有其他因素导致按钮无法触发touch up IBAction。

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

相关·内容

【 iOS 应用开发 】 UIKit 控件 ( UIView 属性 | storyboard 设置 | 模拟器 | 拖线关联 | tag | 软键盘操作 | 颜色值 | 代码生成控件 | 动画设置 )

: ① 从代码到 Storyboard 拖线关联 IBAction 返回值方法 与 界面控件, 默认绑定 Touch Up Inside 事件; ② 右键选择按钮从 Send Events 列表中按钮事件向代码拖线...frame 结构体取出来, 然后再操作赋值; //向上移动方法 -(IBAction) up{ //注意点 : OC 中不能直接 修改 对象结构体成员, // 如果有此类需求,...= frame; } 13.关联控件 Touch Up InSide 与上面定义方法 : 右键点击控件, 在弹出黑色对话框中找到 Touch Up Inside 方法, 点击方法后圆圈...方法名称 changeColor, 类型为 UIButton, 事件为 Touch Up Inside, 传入参数暂时设置为 Sender 这里需要将 按钮本身传回, 用于获取其父控件 ; 点击 Connect...设置按钮绑定方法 : 名称 generateView, 控件类型为 UIButton, 事件为 Touch Up Inside, 参数为 Sender 即 按钮本身; 2.拖线 将 白色 UIView

4.9K30

【iOS 开发】基本 UI 控件详解 (UIButton | UITextField | UITextView | UISwitch)

UIButton 就是这种控件; -- 静态控件 : 继承了 UIView 基类, 该类控件与用户之间不能交互, 之前使用 UILabel 就是这种控件; -- 被动控件 : 该类控件可以接受用户操作..., 通常用于接收用户输入, 这种方法不会触发 IBAction 方法, 文本框就是一种被动控件; 2....UIControl 介绍 (1) UIControl 简介 UIControl 简介 :  -- 使用频率 : UIControl 控件一般不会被使用, 经常被使用是 UIControl 子类 UI...:  -- 单行与多行 : UITextView 是多行文本, UITextField 是单行文本; -- 不能触发事件 : UITextView 没有继承 UIControl 控件, 不能绑定 IBAction...; -- Max : UIScrollView 最大缩放比例; (6) Touch 属性 Touch 属性 :  -- Bounces Zoom : UIScrollView 对内容缩放时有弹性,

6.8K20
  • 【iOS 开发】iOS 开发 简介 (IOS项目文件 | MVC 模式 | 事件响应机制 | Storyboard 控制界面 | 代码控制界面 | Retina 屏幕图片适配)

    UI 控件事件处理方法; IBAction 事件绑定流程 :  -- 需求 : 为UIButton 组件添加点击方法;  -- 创建 UI 组件 : Interface Builder 中创建 UIButton...UIViewController 中 IBAction 方法 与 界面设计文件中 UIButton 组件绑定; -- 触发 IBAction 方法 : 界面中 UIButton 被点击, 就会回调...Connection : 选择为 UI 控件创建 IBOutlet 还是 IBAction 属性类型; -- Name : IBAction 方法名; -- Type : 触发该事件 UI 控件类型,...默认为 id, 如果需要更精准可以设置成具体 UI 组件类, 如 UIButton; -- Event : 选择为什么事件绑定 IBAction 属性, 默认 Touch Up Inside 在...UI 控件区域按下并松开; -- Arguments : 选择 IBAction 方法形参列表, Sender 触发 IBAction 方法事件源, Sender And Event, Event

    4.9K30

    2.检查网络状态

    打开Main.storyboard界面设计文件,向该文件中添加1个UILabel,1个UITextFieldhe 3个UIButton,如下图所示(^_^不好意思,最下面2个UILabel是打广告)。...为了让程序能相应界面上3个按钮点击事件,将“测试”按钮Touch UP Inside”事件绑定testNetStatus:事件处理方法,为“测试WIFI”按钮Touch UP Inside”事件绑定...testWifi:事件处理方法,为“测试3G/4G”按钮Touch UP Inside”事件绑定testInternet:事件处理方法。...kReachabilityChangedNotification通知,这意味着当Reachability连接状态发生改变时,默认通知中心就会收到该通知,从而触发应用程序委托类reachabilityChanged...== NotReachable) { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提醒" message:@"不能访问

    1.3K90

    iOS 10中如何搭建一个语音转文字框架

    在这个demo当中,设置UITextView 名称为“textView”,UIButton名称为“microphoneButton”。...然后创建一个当microphone按钮被点击时会触发按钮执行方法。...好吧,既然知道结果为什么还要问呢?(别打我),看看下面解决方法。 提供授权消息 苹果要求app里所有的授权都要一个自定义信息。例如语音授权,我们必须请求2个授权: 麦克风使用权。 语音识别。...为了自定义信息,你必须在info.plist 配置文件里提供这些自定义消息。 让我们打开 info.plist配置文件源代码。首先,右键点击 info.plist。...触发语音识别 我们需要保证当创建一个语音识别任务时候语音识别功能是可用,因此我们必须给ViewController添加一个代理方法。

    2K20

    成为一名优秀 Swift 开发人员 10 个小技巧

    以下是使用协议一些场景: 让 modal 与呈现它组件进行通信; 让多个 UIViewController 或 多个 Cocoa Touch 类实现相同行为; 在 UITableCell 向父 UIViewControllers...使用扩展并合理使用它们来创建公共库 很喜欢 Swift 扩展。在使用 Objective-C 时,总是不情愿地使用继承。当然这并不总是错误,正确使用子类也不会出错。...幸运是,有一位 UI/UX 专家与我一起工作,为提供了很多有关如何正确操作建议。...每个响应事件方法或选择器都可以知道是谁触发了事件。在常见情况下,请考虑这样一个场景,使用具有相似行为多个按钮,来处理相同操作。...只需要将所有 UIButton 连接到相同 @IBAction,然后使用发送方找出触发了该事件中哪一个,并为该特定行为编写正确实现即可。

    2.3K40

    多线程-NSOperation和NSOperationQueue

    创建任务 NSOperation 只是一个抽象类,所以不能封装任务。但它有 2 个子类用于封装任务。分别是:NSInvocationOperation 和 NSBlockOperation 。...所以如果以上两个类无法满足你欲望时候,你就需要自定义了。你想要实现什么功能都可以写在里面。除此之外,你还需要实现 cancel() 在内各种方法。...设置最大并发数 我们将 NSOperationQueue 与 GCD队列 相比较就会发现,这里没有串行队列,那如果想要10个任务在其他线程串行执行的话,NSOperationQueue 有一个参数...线程挂起 #pragma mark - 线程挂起 #暂停继续(对队列暂停和继续),挂起是队列,不会影响已经在执行操作 - (IBAction)pause:(UIButton *)sender...#pragma mark - 取消队列里所有操作 - (IBAction)cancelAll:(UIButton *)sender { # 只能取消所有队列里面的操作,正在执行无法取消 # 取消操作并不会影响队列挂起状态

    1.2K30

    View,ViewGroupTouch事件分发机制

    觉得OnTouchListener接口是对处理Touch事件屏蔽和扩展作用吧,屏蔽作用就不举例介绍了,看上面的源码就知道了,就说下扩展吧,比如我们要打印ViewTouch坐标,我们可以自定义一个...所以我们点击屏幕上面的TextView事件分发流程是上图那个样子,表示ActivityView都不消费ACTION_DOWN事件,所以就不能触发ACTION_MOVE, ACTION_UP等事件了...CustomLayoutonTouchEvent(), 这个方法返回false, 不消费Touch事件,所以不会在触发ACTION_MOVE,ACTION_UP等事件了,这里再画一个流程图吧(含有...View必须是longClickable,并且不能产生ACTION_MOVE 4.View点击事件是在ACTION_UP中执行,想要执行点击事件前提是消费了ACTION_DOWN和ACTION_MOVE...()方法返回true)才会触发ACTION_MOVE,ACTION_UP发生,如果某个ViewGroup拦截了Touch事件,则Touch事件交给ViewGroup处理 7.Touch事件分发过程中

    1.2K70

    iOS动画-CALayer隐式动画原理与特性

    3.隐式动画关闭与显示 4.隐式动画自定义图层行为 一、何为隐式动画?...事务是通过CATransaction类来做管理,它没有属性或者实例方法,而且也不能通过alloc和init去创建它,它常用操作如下: //1.动画属性入栈 + (void)begin; //2.动画属性出栈...现在,我们就通过事务来设置动画做一个验证,代码如下: - (IBAction)changeColor:(UIButton *)sender{ [CATransaction begin]; //...我们可以发现改变隐式动画这种图层行为有两种方式: 1.给layer设置自定义actions字典 2.实现委托代理,返回遵循CAAction协议动画对象 现在,我们尝试使用第一种方法来自定义图层行为...测试隐式动画-自定义图层行为.gif 经测试,我们会看到colorLayer将会以从左到右推进过渡形式改变色值;我们通过给layer设置自定义actions字典实现了自定义图层行为;

    4.6K51

    跟iOS UI捉迷藏(如何获取用户点击行为控件title)

    1.如何获取用户控件点击行为 事实上,由于获取“所见所得”点击view行为,所以,思路上应该是对uiview或者及其子类得某个事件方法hook到,这样触发点击(广义上是触摸)行为后,可以根据发送事件确定点击...,还对不同控件优先顺序进行了说明,这对比较复杂自定义UI是比较重要。...我们只需要通过hook UIControl sendAction:to:forEvent: 或 sendAction:to:from:forEvent: 自定义事件执行target及action。...至此,我们可以获取到uiview,这里就需要判断目标是uiview哪个子类 没错,iOS没有统一title获取方式,所以要对每种控件单独判断。。。...先从简单开始 一阶获取控件:UIButton 响应uiview是UIButton,即用户点击是按钮,则立马获取(即一阶获取) NSString * title = [[button titleLabel

    1.4K10

    android view事件分发机制_android事件分发流程图

    Activity中有一个LinearLayout(ViewGroup子类,ViewGroup是View子类)布局,布局中包含一个按钮(View子类);然后分别对这两个控件设置了Touch与Click...勒个去!!!惊讶吧!!!猜没错onClick就在onTouchEvent中执行,而且是在onTouchEventACTION_UP事件中执行。...3-3-1 总结结论 onTouchEvent方法中会在ACTION_UP分支中触发onClick监听。...至于后面触发了LinearLayouttouch与click事件我们这里不做关注,下一篇博客会详细解释为啥(其实你可以想下,LinearLayout是ViewGroup子类,你懂),这里你只用知道...譬如,当前派发down事件,如果返回true则继续派发up,如果返回false派发完down就停止了。 4-1 总结 这个例子组合了很多种情况值去验证上面源码分析,同时也为自定义控件打下了基础。

    62720
    领券