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

在swift中触摸按钮外部时,会继续高亮显示

在Swift中,当触摸按钮外部时,按钮会继续保持高亮状态。这是因为按钮的默认行为是在按下时高亮显示,并在松开手指时恢复正常状态。如果你希望在触摸按钮外部时取消按钮的高亮显示,你可以通过以下几种方式来实现:

  1. 使用UIButton的isHighlighted属性:在按钮外部的触摸事件中,将按钮的isHighlighted属性设置为false,这样按钮就不会保持高亮状态了。示例代码如下:
代码语言:txt
复制
@IBAction func handleTapOutsideButton(_ sender: UITapGestureRecognizer) {
    if !button.frame.contains(sender.location(in: view)) {
        button.isHighlighted = false
    }
}
  1. 使用UIButton的touchesBegan和touchesEnded方法:重写按钮的touchesBegan和touchesEnded方法,在touchesBegan方法中判断触摸点是否在按钮范围内,如果不在,则取消按钮的高亮状态。示例代码如下:
代码语言:txt
复制
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
    super.touchesBegan(touches, with: event)
    
    if let touch = touches.first {
        let touchPoint = touch.location(in: self)
        if !button.frame.contains(touchPoint) {
            button.isHighlighted = false
        }
    }
}

override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
    super.touchesEnded(touches, with: event)
    
    button.isHighlighted = false
}
  1. 使用UIButton的addTarget方法和UIControl.Event.touchDragExit事件:通过给按钮添加一个touchDragExit事件的监听器,在该事件触发时取消按钮的高亮状态。示例代码如下:
代码语言:txt
复制
button.addTarget(self, action: #selector(buttonTouchDragExit), for: .touchDragExit)

@objc func buttonTouchDragExit() {
    button.isHighlighted = false
}

以上是在Swift中取消按钮在触摸按钮外部时的高亮显示的几种方法。根据具体的需求和场景,你可以选择适合的方法来实现你想要的效果。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云官网:https://cloud.tencent.com/
  • 云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 云数据库 MySQL 版:https://cloud.tencent.com/product/cdb_mysql
  • 云原生应用引擎(TKE):https://cloud.tencent.com/product/tke
  • 人工智能平台(AI Lab):https://cloud.tencent.com/product/ailab
  • 物联网开发平台(IoT Explorer):https://cloud.tencent.com/product/iothub
  • 移动应用开发平台(MADP):https://cloud.tencent.com/product/madp
  • 云存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯区块链服务(TBCS):https://cloud.tencent.com/product/tbcs
  • 腾讯元宇宙(Tencent Metaverse):https://cloud.tencent.com/solution/metaverse
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Swift - Button,Label

前面带“+”图标按钮,默认文字颜色为蓝色,有触摸高亮效果 UIButtonType.DetailDisclosure:前面带“!”...图标按钮,默认文字颜色为蓝色,有触摸高亮效果 UIButtonType.System:前面不带图标,默认文字颜色为蓝色,有触摸高亮效果 UIButtonType.Custom:定制按钮,前面不带图标...,默认文字颜色为白色,无触摸高亮效果 UIButtonType.InfoDark:为感叹号“!”...:触摸控件内拖动 TouchDragOutside:触摸控件外拖动 TouchDragEnter:触摸从控件之外拖动到内部 TouchDragExit:触摸从控件内部拖动到外部 TouchUpInside...:控件之内触摸并抬起事件 TouchUpOutside:控件之外触摸抬起事件 TouchCancel:触摸取消事件,即一次触摸因为放上太多手指而被取消,或者电话打断 */ Swift里Label

1.7K20

基础篇章:关于 React Native 之 Touchable 系列组件的讲解

【回复“1024”,送你一个特别推送】 (友情提示:RN学习,从最基础的开始,大家不要嫌弃太基础,的同学请自行略过,希望不要耽误已经的同学的宝贵时间) 在上篇 ScrollView 的讲解的实例,...Touchable可触摸,Highlight高亮,所以这个触摸组件的效果是点击会出现高亮的反馈效果。 TouchableHighlight组件用于封装视图,使其可以正确响应用户的触摸操作。...底层实现上,实际会创建一个新的视图到视图层级,如果使用的方法不正确,有时候导致一些不希望出现的视觉效果出现。比如没有给视图的backgroundColor显式声明一个不透明的颜色。...activeOpacity number 设置封装的视图在被触摸操作激活用多少不透明度显示(通常在0到1之间)。...TouchableNativeFeedback.Ripple(color, borderless) - 创建一个对象,当按钮被按下产生一个涟漪状的背景,你可以通过color参数来指定颜色,如果参数borderless

1.6K90

基础篇章:关于 React Native 之 Touchable 系列组件的讲解

} 在当前视图不能滚动的前提下指定这个属性,可以决定当手指移开多远距离之后,不再激活按钮。...Touchable可触摸,Highlight高亮,所以这个触摸组件的效果是点击会出现高亮的反馈效果。 TouchableHighlight组件用于封装视图,使其可以正确响应用户的触摸操作。...底层实现上,实际会创建一个新的视图到视图层级,如果使用的方法不正确,有时候导致一些不希望出现的视觉效果出现。比如没有给视图的backgroundColor显式声明一个不透明的颜色。...activeOpacity number 设置封装的视图在被触摸操作激活用多少不透明度显示(通常在0到1之间)。...TouchableNativeFeedback.Ripple(color, borderless) - 创建一个对象,当按钮被按下产生一个涟漪状的背景,你可以通过color参数来指定颜色,如果参数borderless

2K90

Swift入门: 循环

代码重复任务,可以多次复制和粘贴代码,也可以使用循环——只要条件为真,就可以重复一段代码的简单编程构造。...如果Swift不必每次循环都将每个数字赋给一个变量,那么它可以更快地运行代码。因此,如果你for i in…中使用i,Xcode建议您将其更改_。 有一种称为半开区间运算符,它们很容易混淆。...这是用来做一些事情,如游戏循环,你事先不知道游戏将持续多久-你只是不断重复“检查触摸,动画机器人,绘制屏幕,检查触摸…”等,直到最终用户点击按钮退出游戏并返回主菜单。...虽然中断循环立即停止执行并在循环之后直接继续,但继续循环只会退出循环的当前迭代-它将跳回到循环的顶部并从那里开始。...原因是continue关键字:当循环尝试使用歌曲“You Belong with Me”,continue会被调用,这意味着循环立即跳回到开始处–print()调用从未进行过,相反循环继续直接“Look

83720

实现更安全、高扩展的自定义键盘 非UIButton

至于点击了哪个按钮,可以通过监控触摸事件的变化,来对修饰图层做修改,从而实现一个完美的键盘。...官方键盘的优点: 触摸事件的回调频率一秒内可以回调几十次 所有的字母都是一张图片上面,几乎无法抓取到 title 没有的具体的按钮可以监控点击事件,点击的点 图片更加的利于自定义各种复杂界面 从以上优点可以看出...,触摸了每个字母都有回调 每个按键的点击事件已经完成,只需事件作出不同的处理即可 未完成: 键盘上字母未实现随机 简化调用 使用介绍 /** 本库主要是为了实现一个自定义键盘 所有的按键均是图片组成...,最大程度上避免了恶意监控控件(UIButton,UILabel)等,防止获取键盘内容 所有的事件均通过手指(触摸)的移动,来控制按键变化 触摸事件回调频率高,并且触摸事件没有数据,最大程度上避免了恶意监控触摸事件...身份证号键盘 源码 我的github 上 【注】请使用 Swift 3 运行

76120

XcodeXcode 9 的全新功能您喜欢的工具。内建 Interface BuilderXcode IDE

当您选择一个符号或代码块,编辑器提供如“Extract (提取)”和“Rename (重命名)”等强大操作。Xcode 随即直接在编辑器更新您的代码结构,让您能继续专注于当下的编程工作。...版本编辑器拆分窗格,以显示同一文件的两个不同版本。当您查看拆分编辑器视图的时间线,差异突出显示。...自动布局基于这样一种概念:界面的每个对象均可定义约束条件,用于控制其对父视图和其他界面控件的响应。例如,当显示不同语言,可以让按钮优先保持特定大小或扩展以容纳更大的文本。...如果您犯了一个编码错误,Xcode 立即提醒您。您只需敲一下键盘快捷键,它就能立刻帮您修正错误,这样就不需要停下来修改错误再继续编码。...快速帮助 编程为您显示简练的 API 文档,其中包括为代码撰写的注释。填写代码过程显示简短的概述,并在实用工具区域内提供更多链接和参考。

8.3K30

JavaScript 编程精解 中文第三版 十五、处理事件

该方法有时很实用,例如,你将一个按钮放在另一个可点击元素,但你不希望点击该按钮激活外部元素的点击行为。 下面的示例代码将mousedown处理器注册到按钮和其外部的段落节点上。...触摸屏与鼠标的工作方式不同:它没有多个按钮,当手指不在屏幕上不能跟踪手指(来模拟"mousemove"),并且允许多个手指同时屏幕上。...鼠标事件只涵盖了简单情况下的触摸交互 - 如果您为按钮添加"click"处理器,触摸用户仍然可以使用它。 但是像上一个示例的可调整大小的栏触摸屏上不起作用。 触摸交互触发了特定的事件类型。...你可以这样,每个触摸手指周围显示红色圆圈。...子元素获得或失去焦点,不会激活父元素的处理器。 下面的示例,文本域拥有焦点时会显示帮助文本。

5.5K20

AVKit框架详细解析(四) —— 基于AVKit 和 AVFoundation框架的视频流App的构建

您可以看到视频播放器显示了一组基本控件。 这包括一个播放按钮、一个静音按钮和用于前进和后退的 15 秒跳过按钮。 2. Adding Remote Playback 那很容易,对吧?...每次收到通知,您都会知道播放器已进入下一个视频。 要在 Swift 中使用 KVO——比 Objective-C 好得多——你需要保留对观察者的引用。...Playing Video Efficiently 继续之前要注意的一件事是播放视频是一项资源密集型任务。 事实上,即使您开始观看全屏视频,您的应用程序也继续播放这些剪辑。...---- Bonus: Adding Picture-in-Picture 如果您可以设备上做其他事情的同时继续观看视频怎样? 您将向应用程序添加画中画(PiP)功能。...您会在左上角看到画中画按钮……否则不会! 缺点是,撰写本文,iOS 14.5是可用的最新版本,VideoPlayer 的 SwiftUI 视图未显示画中画按钮

6.9K10

将模型添加到场景 - 您的环境显示3D内容

本教程,我们将学习如何检索模型并使用按钮的触发器将其呈现在场景。一旦显示,我们将隐藏焦点方块。...添加按钮功能 我们刚刚在屏幕上添加了按钮,但它根本没有做任何事情。当我们触摸,让按钮执行某些操作。现在,打开Assistant编辑器并控制将故事板按钮拖到ViewController类。...函数外部使用的那个被命名,而在函数内使用的是名称。它将返回一个可选的SCNNode。...我们刚刚完成了这个功能,现在,我们准备点击按钮在场景显示我们的模型。...焦点方块隐藏/显示选项 当我们屏幕上显示模型,我们仍然看到焦点方块干扰了我们漂亮的模型。如果我们安置后隐藏它,你怎么说?

5.5K20

iOS 9 Storyboard 教程(二上)介绍Segue静态单元格(static cell)

介绍Segue 时候storyboard添加更多的控制器了.你激昂创建一个控制器,它允许用户向这个app添加玩家....BarButtonItem属性里将System Item改为Add,这样添加一个’+’号按钮....请注意你赋给取消方法的名字.当你创建一个unwind segue的时候,整个app,这个列表都将显示所有的unwind方法(即一个带有签名的方法@IBAction func methodname...当你使用静态单元格的时候,你的table view controller不需要爱一个数据源.虽然你使用了Xcode得模板来创建的PlayerDetailsViewController类,但是它还是有数据源的占位符,并且正常工作状态显示这个静态单元格...---- 你也要在storyboard的Attributes inspector里设置Selection Style为None(而不是Default),否则如果用户点击textField周围,该行就会高亮显示

3.2K10

一文读懂Xcode 9 所有更新:全新模拟器,兼容Swift低版本等

代码重构功能增强 这次 Xcode 9 对代码重构功能有较大的提升,首先是重命名功能,在编辑器中点击类名,然后选择 Refactor -> Rename: 这时,重命名的预览界面会直接显示在编辑器:...可惜 Xcode 前几个版本对 Swift 支持不好,开发 Swift 项目只好手动来做 Rename,这次终于算是解决了,并且还提供了更好的体验。...,也高亮显示相应的代码行: 以往这种非主线程操作 UI 的问题很难发现,而且我相信这类问题是大家都会常常遇到的。... Xcode 9 ,这个老大难问题也有了更好的解决方案。 文件操作改进 现在你 Xcode 拖动文件相应的改变文件系统了。...只需要点击右下角的 Clone 按钮,即可把项目从 Github 复制下来。

1.8K70

Xcode 11 初体验

直接点击这个按钮横向进行分割。按住 Option 按键点击它,纵向分割, 下图是一个分割后的界面示例 上图中界面被分成了 3 个编辑窗口。...MiniMap 支持代码标记, 断点显示,以及搜索高亮提示,非常多的便捷功能。...当你的项目关联了版本控制工具,比如 Git, Xcode 检测出当前文件哪些地方相对于上次递交的版本有更改,并且会通过左边显示一个蓝色线条标记出来: Change Bar 点击左键还可以选择 show...开发和调试,随时暗黑和明亮模式之间进行切换。 Asset目录可以使你轻松的控制图像和颜色暗黑和明亮模式之间进行切换。... Stash 右下角会有 Stash 功能选择按钮(也可以左侧Stash Changes右键弹出)。

3.2K10

D3库实践笔记之图表交互 |可视化系列36

;•mouseup:鼠标按钮被松开; 以下代码为图表标题添加了一个单击事件的监听器,当点击标题元素,会将标题加粗并在控制台输出当前标题文本;而如果当前是加粗的效果,点击后是变成非加粗文本,也就是点击切换加粗和正常文本两种效果...、加号、等号、回车等)触发,按住不放重复触发此事件,该事件就会区分字母的大小写;•keyup:当用户松开按键触发,该事件不区分字母的大小写; keydown和keypress事件的区别在于keydown...常用的触屏事件有以下三种: •touchstart:当触摸点被放在触摸屏上,也就是触摸到某个元素;•touchmove:当触摸点在触摸屏上移动;•touchend:当触摸点从触摸屏上拿开; 我们可以为触摸事件配置点击事件以及拖动事件...width之前调用 .attr("width",300); 和HTML元素交互 D3作为一个JavaScript库,自然可以和原生的HTML元素进行交互,例如响应按钮的点击事件,html配置了按钮和点击监测...基础可视化实现挺简单,而深度交互的内容很多,如更优雅的过渡和渐变效果、更深入的适应触摸设备交互、迷你图加入悬停框等等,之后的具体实践深入学习。

5.3K00

Text 实现基于关键字的搜索和定位

,并可通过按钮搜索结果中进行滚动切换?...image-20220822084740855切换搜索结果可自动定位到结果所在的位置点击非当前高亮关键字,自动将其设置为当前高亮关键字并滚动至视图中心位置scrollTo_keyword2_2022...View 添加显式标识符后( 使用 id 修饰器),视图刷新,List 将会为 ForEach 的所有视图创建实例( 并非渲染 )用以比对视图类型的构造参数是否发生变化,但仍然只会渲染屏幕上显示部分的...这样搜索结果变化时,仅有当前显示的 TranscriptionRow 重新计算并渲染( 如果没有添加 id,通过构造参数传递搜索,对改善性能更有帮助 )。...List ,每个视图进入显示窗口都会调用它的 onAppear,每个视图退出显示窗口都会调用它的 onDisapper。

4.2K30

VR开发--SteamVR框架工具(4):可交互对象+抓取交互对象+使用可交互对象+自动抓取可交互对象

Touch Interactions:触摸交互 Highlight On Touch:如果勾选,这个对象控制器触摸就会高亮。...Touch Highlight Color:对象被触摸高亮的颜色。颜色可以被任何全局的设置颜色来覆写(例如InteractTouch 脚本)。...Global Touch Highlight Color: 如果交互对象被触碰就能高亮显示,没有设置本地颜色的话就使用全局颜色。...4、当控制器抓取按钮松开,如果可交互对象是可抓取的,它将会被按一定速率沿着控制器松开的方向进行推动,这就模拟了对象投掷 5、可交互对象需要碰撞体用来激活触发和一个刚体用来拾取它们并在游戏世界四处移动它们...Hide Controller Delay:抓取隐藏控制器之前的等待时间秒数。 Grab Precognition:预先抓取: 抓取按钮按下和控制器正在抓取某个东西之间时间量。

2.3K10

Swift 3.0 探索之 UILabel

开篇 最近闲来无事,看看Swift3.0,发现和我认识的1.0有很大的不同了,如果不学习一下估计会落伍了,所以探究一下 Swift 开发的使用(当然目前是初级水平,一起进步嘛,也欢迎菜鸟,大神一起探讨...adjustsFontSizeToFitWidth 属性为true的时候 上面设置的lineBreakMode属性将失效 myLabel.adjustsFontSizeToFitWidth = true //当文字超出标签宽度,...= true //设置文本高亮 myLabel.highlightedTextColor = UIColor.green //设置文本高亮颜色 添加试图 self.view.addSubview...�图1 NSAttributedString 富文本 我们还经常使用 Label 的一个属性是NSAttributedString 我们看一下这个Swift里面怎么使用 ****当设置NSAttributedString...图2.png 好了,今天差不多就这些,明天继续看,看一个最简单的UIView吧,代码我稍后会上传的群文件(QQ群 139852091)网盘已经git,明个见!

79230

第123天:移动web开发的常见问题

touchend——当手指离开屏幕触发。 touchcancel——系统停止跟踪触摸时候触发。例如在触摸过程突然页面alert()一个提示框,此时会触发该事件,这个事件比较少用。...retina:一种具备超高像素密度的液晶屏,同样大小的屏幕上显示的像素点由1个变为多个,如在同样带下的屏幕上,苹果设备的retina显示,像素点1个变为4个。...高清显示的位图被放大,图片变得模糊,因此移动端的视觉稿通常会设计为传统PC的2倍。...在做移动端页面,会发现所有a标签在触发点击时或者所有设置了伪类:active的元素,默认都会在激活状态显示高亮框,如果不想要这个高亮,那么你可以通过css以下方法来进行全局的禁止: html {...移动端触摸按钮的效果,可明示用户有些事情正要发生,是一个比较好体验,但是移动设备并没有鼠标指针,使用css的hover并不能满足我们的需求,还好国外有个激活css的active效果,代码如下: <html

1.5K20
领券