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

带有touchUpInside的UIButton选择器在使用Swift 4的嵌套UIViews中不起作用

的原因可能是事件传递和响应链的问题。当一个按钮被点击时,事件会从按钮开始向上传递,直到找到能够处理该事件的视图为止。在嵌套的UIViews中,可能存在多个视图层级,导致事件传递被阻断或者被其他视图处理。

解决这个问题的方法有以下几种:

  1. 确保按钮的交互性已启用:在嵌套的UIViews中,确保按钮的isUserInteractionEnabled属性设置为true,以确保按钮可以接收用户交互事件。
  2. 检查视图层级关系:确保按钮位于正确的视图层级中,即按钮不会被其他视图遮挡或者被添加到错误的父视图中。
  3. 检查事件处理方法:确保按钮的touchUpInside事件已正确绑定到相应的处理方法上,并且处理方法的实现正确。
  4. 检查事件传递和响应链:在嵌套的UIViews中,可能存在多个视图层级,导致事件传递被阻断或者被其他视图处理。可以通过重写父视图的hitTest方法或者重写子视图的point(inside:with:)方法来调整事件传递和响应链。

总结起来,解决带有touchUpInside的UIButton选择器在使用Swift 4的嵌套UIViews中不起作用的问题,需要确保按钮的交互性已启用,检查视图层级关系,检查事件处理方法,以及检查事件传递和响应链。如果问题仍然存在,可能需要进一步调试和排查代码逻辑。

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

相关·内容

iOS开发 使用Pods管理调试个人Framework写在前面准备工作编写Podfile测试后记

写在前面 最近换了新公司,又是一个巨大挑战 一是海外项目,二是协同,三是使用Swift 虽说Swift4.0已经很新了,但ABI稳定进程还是放在了5.0,加上之前几乎没怎么用过Swift做过什么大型项目...所以本文都是使用Swift 由于项目还要与国外小伙伴合作,一些private东西公司也不打算直接给他们,这不,就让我们做成library形式提供给他们,对于我们来说也就是Framework了。...test 大功告成~ 测试二 我们现在要做是: 主程序调用SDK获得一个vc 并 present 该vc中有一个按钮,点击事件具体实现由主程序实现dismiss SDK创建一个TestViewController...UIButton) } }, for: .touchUpInside) } } 接下来SDK入口加入获取vc代码 open func getSDKviewController...let vc = TestViewController() vc.testBtnActionHandel = actionHandle vcHandle(vc) } 编译一下SDK 主程序调用

1.6K40

Swift 基本语法01-Swift简介

只有闭包时候才去用 取消了预编译指令 自动推导:变量/常量类型会根据=(等号)右侧代码执行结果,推导对应类型 Swift 对类型要求异常严格,不允许直接运算(不会做默认隐式转换,所有的类型确定...Int(y)->结构体构造函数 Swift ,不存在基本数据类型,都是结构体(考虑安全性和速度,统一做了语法调整) 1....btn.addTarget(self, action: #selector(clickMe), for: .touchUpInside) // 按钮点击事件 func clickMe(btn:UIButton....png 4....,表示该变量是可选 变量可选项默认值是nil 常量可选项没有默认值,主要用于构造函数给常量设置初始数值 !代表强行解包 - 从可选值强行获取对应非空值,如果真的是nil,就会崩溃!

2K70
  • 30DaysOfSwift - Day1 计时器

    前几天逛Github,偶然看到一个Swift项目 —— 30DaysOfSwift,作者一共用30个小项目,来熟悉Swift语言,而我正好也学习了一段时间Swift语言,准备仿照这样模式,来更加深入了解...UI部分 今天做是一个计时器项目 作者在这个项目中,使用AutoLayout来完成自动布局,使用StoryBoard完成UI创建。...而我一直都是喜欢用纯代码布局,UI搭建也是使用代码完成。所以我写这个小Demo之前项目里集成了SnapKit,使用类似Objective-C中常用masonry框架来完成自动布局。...这里我还发现一个Swift小问题,使用cocoadPods集成第三方库,引用不到头文件解决方法和Objective-C不一样。...这是第一个Swift小Demo,很简单,也很好帮助熟悉UI. import UIKit import SnapKit let SCREEN_WIDTH = UIScreen.mainScreen()

    81140

    36.Swift学习之Associated Object

    介绍 Swift 可以利用 OC runtime 和 KVC ,在运行时向一个对象添加值存储,这种方式称之为Associated Object。...使用 extension 扩展现有类功能时,使用Associated Object方式,可以将一个值 “关联” 到已有的要扩展类上。该知识点在 iOS 开发中使用往往能优雅地解决很多问题。...,并且通过 & 操作符取地址并作为 UnsafeRawPointer 类型被传入,这在 Swift 与 C 协作和指针操作时是一种很常见用法。...((UIButton)->Void){ block(button) } } } UIButton 传参 项目开发,经常会有类似九宫格菜单按钮,每个按钮点击时参数是不一样...,此时可以有如下几种方案: 创建 9 个按钮,逐一设置 通过 for 创建 9 个 UIButton,为 UIButton设置不同tag,然后点击事件里面用 switch case判断 自定义UIButton

    2.1K20

    Swift - Button,Label

    Swift-Button常用 func setButton() { // 创建一个类型为contactAdd按钮 let button:UIButton = UIButton(type...圆形按钮 常用触摸事件类型: TouchDown:单点触摸按下事件,点触屏幕 TouchDownRepeat:多点触摸按下事件,点触计数大于1,按下第2、3或第4根手指时候 TouchDragInside...:触摸控件内拖动时 TouchDragOutside:触摸控件外拖动时 TouchDragEnter:触摸从控件之外拖动到内部时 TouchDragExit:触摸从控件内部拖动到外部时 TouchUpInside...:控件之内触摸并抬起事件 TouchUpOutside:控件之外触摸抬起事件 TouchCancel:触摸取消事件,即一次触摸因为放上太多手指而被取消,或者电话打断 */ Swift里Label...使用 func setLabel() { let label = UILabel(frame:CGRect(x:50, y:300, width:200, height:30)) label.text

    1.7K20

    自学Swift之路(二)UITableView自定义和实际利用

    自定义,附带场景使用(简单demo) 创建工程什么就不说了,先看一下界面然后咱们直接开始代码: ?...6EDD4AC9-47E3-401F-91A4-2DA836439787.png Demo开始之前,我们想想应该会使用到屏幕宽高等一些常用值,OC,咱们可以使用PCH然后宏定义,然而在Swift...ImageView和一个Label,虽然数据是死,但是Swift,另外一个类是可以直接访问另一个类变量(如果没做任何保护的话),所以我们配置cell时候是可以直接赋值,这里就不弄了,然后我们看创建表视图那一块...学了这么几天,我发现Swift还是比较容易入手,下篇文章我会用一个小项目,本人是做室内地图SDK,这次小项目是仿我OC写SDK Demo,使用Swift和OC混编,集成百度地图SDK和自己室内...在下篇文章中会讲讲,Swift项目已上github:https://github.com/qingmomo/Swift-die OC版demo我们官网:http://www.innsmap.com

    2.3K90

    25.Swift学习之@objc

    Swift 很多地方都是用到了一个修饰符@objc,尤其是在混编项目中,出于安全考虑,可以将需要暴露给 Objective-C 使用的如类,属性和方法声明前面加上 @objc。...那么 Swift 哪些地方用到了这个关键字呢?...1.本文总结使用情况只针对 Swift4.X,代码 Xocde10 环境下编译通过 2.开发 Xcode 会提醒哪些地方需要加这个修饰符 Selector 调用方法需要在方法前声明...let btn = UIButton(type: .contactAdd) btn.addTarget(self, action: #selector(click), for: .touchUpInside...} 类前加上 @objcMembers,那么它及其子类、扩展里方法都会隐式加上 @objc @objcMembers class Person { } 如果此时扩展里面不想加@objc,可以用

    1.3K20

    教你如何自定义AlertView

    本文就介绍如何自定义alertView,看完你就懂得制作属于自己alertView了 一、创建DWAlert.swift 创建一个类名为DWAlert.swiftclass DWAlert:...上面代码const是为了定义弹出框需要坐标和长宽,由于是不变,所有let修饰,与OC常量类似 二、绘制alertView 写一个继承init方法,把title(alert标题),content...方法添加backImageView背景蒙版 2、获取当前主窗口,并定义一个alertViewframe 3、利用UIView.animate对alertView进行动画操作。...注意:angle值为M_1_PI / 1.5,只是个参考,您可以换其他值,试试效果 4、完成动画后,调用父类removeFromSuperview移除alertView 四、实现alertView...五、使用DWAlert ViewController创建一个按钮,并添加一个点击事件ClickMe,方法里面创建alertView @IBAction func ClickMe(_ sender:

    1.3K50

    苹果iOS开发中用Swift如何写一个倒计时功能

    iOS开发中使用Swift实现一个倒计时功能比较常见,可以用于各种场景,例如倒计时按钮、显示倒计时时间等。下面展示一个简单倒计时功能示例。...使用 Timer 最简单和直接方式是使用 Timer 来实现倒计时功能。 1. 倒计时示例 下面是一个 CountdownTimer 类,可以应用各种场景中进行倒计时。...使用倒计时功能 现在我们创建一个简单视图控制器来使用倒计时功能: import UIKit class CountdownViewController: UIViewController {...}) } } 补充注意事项 1、 线程问题: 实际应用,确保 Timer 主线程上操作 UI,否则需要使用 DispatchQueue.main.async 来确保主线程上更新 UI。...3、 暂停与继续: 如果需要实现倒计时暂停和继续功能,需要额外管理时间状态,并在 Timer 重新启动时使用保存时间。

    7410

    【从零开始用Swift开发一个iOS应用(仿微博)】开篇-1. demo上手体验

    二、代码实现 2.1 程序入口说明 Application/AppDelegate.swift文件@UIApplication注解,表示这个Class类是程序入口 ?...== alloc / init 等价 3.2 类方法类比 Swift: UIColor.yellow OC: [UIColor yellow] 3.3 访问当前对象属性类比 建议:都不使用self...当编译器提示时候,再添加,会对语境有更好机会; 原因:闭包(类似于 OC block)需要使用self。 3.4 不需要; 除非多行代码语句写在同一行。...,不需要使用`:` OC: @selector 3.7 调试对比 Swift: print(xxx) 效率高,log不包含时间,用#function来打印当前执行方法 OC: NSLog,用__FUNCTION...如下图所示,我注释添加了MARK、TODO、FIXME标签前缀,这些特殊标记锚点菜单将会显示导航栏上,点击菜单即可跳转到对应注释地方,非常方便。 ?

    4.3K31

    Flutter混合开发:已有iOS项目中引入Flutter

    前言 android项目中添加flutter模块比较简单,因为毕竟都是google,但是ios添加flutter模块有些麻烦了,我们首先参考是官方文档 https://flutter.cn/...这里要注意,创建ios项目的时候我设置是: Interfase: StoryBoard LifeCycle: UIKit App Delegate Language:Swift 这是因为官方后续示例代码...然后新添加左侧选择Any iOS Simulator SDK,双击右侧就会弹窗,弹窗添加一条arm64即可。 同样Release下也操作一下,最后完成效果如上图。...)搜索发现并没有这两个字段,说明C文件并没有定义这两个字段。...而FlutterDefaultDartEntrypoint就是默认入口,就是fluttermain函数,所以就是"main"。所以在上面代码我直接使用了这两个字符串来代替这两个字段。

    4K50

    Swift-MVVM 简单演练(一)

    , Swift 还可以用来切分代码块 可以把功能相近函数,放在一个extension */ extension HQMainViewController { /// 设置所有子控制器...,给中间留出一个+按钮位置 自定义一个UIButton分类HQButton+Extension,封装快速创建自定义按钮方法 HQButton.swift extension UIButton {...总结 使用代理传递消息是为了控制器和视图之间解耦,让视图能够被多个控制器复用,如TableView 但是,如果视图仅仅是为了封装代码,而从控制器剥离出来,并且能够确认该视图不会被其它控制器引用,...`位,`32`位机器是`32`位 如果不写明`Int 64` iPad 2 / iPhone 5/5c/4s/4 都无法正常运行 */ /// 微博ID var...字典转模型逻辑 上拉 / 下拉数据处理逻辑 下拉刷新数据数量 本地缓存数据处理 初体验 因为MVVMswift中都是没有父类,所以先说下关于父类选择问题 如果分类需要使用KVC或者字典转模型框架设置对象时

    10.3K51
    领券