iOS - OC 关于UIButton长按导致显示不符合预期的优化

实现iOS仿QQ下拉菜单的完整项目教程 本文还有配套的精品资源,点击获取 简介:本教程介绍了如何在iOS应用中创建一个类似于QQ应用的点击下拉菜单。通过提供一个名为“QQ_PopMenu_Demo”的示例项目,详细解释了实现该功能所需的关键技术组件,包括UIButton、UIPopoverController/UIView、CAAnimation、Auto Layout、手势识别和事件处理。开发者通过学习这个示例... 阅读详情

关于UIButton长按导致显示不符合预期的优化

闲话少叙,直接进入正题。
在日常的开发过程中,UIButton可以说是我们经常要用到的控件。当一些诸如点赞、收藏等功能需要展示两种的状态时,我们通常会分别设置UIButton的Normal状态和Selected状态的图片或文字,在状态改变时来相应的改变UIButton的状态。

但是,如果只是简单的进行下面的设置:

[btnFocus setTitle:@"Normal" forState:UIControlStateNormal];
[btnFocus setTitle:@"Selected" forState:UIControlStateSelected];

那么用户如果长按一个按钮时,便会出现即使没有触发按钮的实际事件而导致按钮显示了选中状态下的图片或者相反。
那么,我们只需要多设置两个状态,如下:

[btnFocus setTitle:@"Normal" forState:UIControlStateNormal];
[btnFocus setTitle:@"Normal" forState: UIControlStateHighlighted];
[btnFocus setTitle:@"Selected" forState:UIControlStateSelected];
[btnFocus setTitle:@"Selected" forState: UIControlStateHighlighted |UIControlStateSelected];

设置Highlighted状态下的显示状态就可以完美优化此问题。


更多开发中的小细节请点击。

做开发我们就是要不遗漏每一个细节、精益求精。

为圆每一个人的互联网梦贡献自己的力量。

攻防实战之Confluence后利用 这边管理员密码是密文加密在数据库中,解不开,因此解决的思路是将管理员用户密码修改为已知明文密码的密文(这边不能直接在数据库中添加字段,关系型数据库在单表中添加一条字段可能会出现问题),登录上后台以后,添加用户并加入管理员组,最后将管理员密码还原。Confluence的后利用主要问题在于在Linux中搭建时,默认是Confluence用户权限,如下图所示,而confluence在linux中是没有写权限的,这也就是为什么有些人发现可以执行命令但是shell写不进去。至此admin的密码被改为了123123。 阅读详情

相关推荐

qt工程引入opencv库步骤

第一步:新建qt工程 第二步:在工程名.pro文件中添加opencv库的路径                   INCLUDEPATH += /home/liyuanzhe/opencv-2.4.8/include/opencv \ /home/liyuanzhe/opencv-2.4.8/include/opencv2 LIBS += /home/liyuanzhe/open

superyuanzhe的专栏 5722

iOS UIButton长按响应

UIButton *aBtn=[UIButton buttonWithType:UIButtonTypeCustom];      [aBtn setFrame:CGRectMake(40, 100, 60, 60)];      [aBtn setBackgroundImage:[UIImage imageNamed:@"111.png"] forState:UIControlStateNorm

xiaojian2314的专栏 1410

SPSS新手教程—两步聚类之结果解读

在《详解SPSS两步聚类之参数设置》一文中,我们已经了解了两步聚类的优点、分析原理,以及参数设置的技巧。 在本节中,会对IBM SPSS Statistics聚类后的结果进行解读,其中会涉及到最终聚类的结果、聚类的质量、变量重要性、聚类特征的解读。 如图1所示,我们先来回顾下本例数据在参数设置面板中的详细设置。 图1:二阶聚类设置 一、数值结果 根据上述参数设置,得到如下的数值分析结果。 首先看到自动聚类结果,如图2所示为聚类的透视表结果,展示了不同聚类数目下的BIC、BIC变化量、BIC变

nekonekoboom的博客 3万+

ios button长按事件

UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(btnLong:)]; longPress.minimumPressDuration = 0.5; //定义按的时间     [self.btn_audi

ttzaaa的专栏 1397

内核工作FAST‘25 Artifact Evaluation流程记录

在我们的paper中,复现需要用到傲腾持久化内存,因此,需要AE Reviewer访问到内网服务器中。我们的思路是购买云服务器,将其作为跳板机,内网服务器通过SSH反向代理与公网服务器建立隧道,AE Reviewer通过隧道访问内网服务器。我们在AE过程中使用。然后,把一切复现需要的代码环境,在chroot里面配置完成。

不定期更新系统使用、编程小技巧,哔哩哔哩账号:https://space.bilibili.com/399455629,欢迎关注 1215

3D打印机新手必看:VSCode+PlatformIO搭建Marlin固件编译环境(附常见错误解决)

本文为3D打印机新手详细介绍了如何使用Visual Studio Code和PlatformIO搭建Marlin固件编译环境。内容涵盖从软件安装、源码配置到编译实战的全流程,并重点解析了依赖冲突、内存不足等高频错误的解决方案,帮助用户快速上手并成功编译自定义固件。

j2k3l4的博客 703

IOS.UIButton长按事件

//按钮长按 UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPress:)]; //长按时间 longPress.minimumPressDuration = 0.8; [titleButton addGestureRecognizer:longPre.

kk177的博客 1445

伺服电机开发实战指南

伺服电机作为工业自动化的核心部件,正经历前所未有的技术革新。本文从基础原理出发,详细介绍了伺服电机的分类、工作原理和特性,分析了伺服电机系统组成与核心部件,探讨了企业级开发技术,包括控制算法、通信协议和故障诊断等高级功能,并提供了实战案例分析,从行业应用到具体开发步骤,展示了伺服电机的工程实现。通过深入理解伺服电机的原理、掌握开发技术、学习应用案例,可以实现伺服系统的高性能开发与应用。

全栈 1676

iOS学习—iOS长按手势事件

iOS学习—iOS长按手势事件

qq_43441647的博客 1887

Python爬虫-爬取猫眼演出数据

本文是该专栏的第53篇,后面会持续分享python爬虫干货知识。猫眼平台除了有影院信息之外,它还涵盖了演出信息,比如说“演唱会,音乐节,话剧音乐剧,脱口秀,音乐会,戏曲艺术,相声”等等各种演出相关信息。而本文,笔者将以猫眼平台为例,基于Python爬虫实现获取各种演出信息的数据。废话不多说,具体细节部分以及详细思路逻辑,笔者将在正文结合完整代码进行详细说明。(附带完整代码)

Python进阶专栏《爬虫实战进阶》,《Pyppeteer从入门到精通》原创作者 568

【蓝牙协议栈】【BLE】详解蓝牙BLE连接建立过程

advertiser。发出广播的设备observer或者scanner。可以扫描广播的设备initiator。能发起连接的设备master或者central。连接成功后的主设备,即主动发起packet的设备slave或者peripheral。连接成功后的从设备,即被动回传packet的设备图11通过时间把observer,initiator和central串起来了,其实这三个角色是相互独立的,也就是说一个设备可以只支持observer角色,而不支持initiator和central角色。

风云说通信 2520

ios 触发UIButton长按事件

UIButton *aBtn=[UIButton buttonWithType:UIButtonTypeCustom]; [aBtn setFrame:CGRectMake(40, 100, 60, 60)]; [aBtn setBackgroundImage:[UIImage imageNamed:@"111.png"]forState:UIControlStateNorma

Code-lover's Learning Notes 2090

使用VNA(Vector Network Analyzer)对S参数进行去嵌(二)

无论是使用 EM 仿真工具创建的简化模型(如一段理想传输线)还是复杂模型用于测试夹具,现在都需要使用该 S 参数模型执行去嵌入过程。

小孟同学的博客 6108

button selected时,当按下按钮时背景会变成normal解决办法

[button setImage:[UIImage imageNamed:@"pressed.png"] forState:UIControlStateSelected | UIControlStateHighlighted]; http://stackoverflow.com/questions/5592646/uibutton-set-image-for-selected-highl

gaoyuqiang30的博客 1402

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

为UIButton添加长按事件的三种方法

实现方法一:重写UIButton, 设置一个代理CustomButtonDelegate @optional -(void)buttonTouchedDown:(UIButton*)button; -(void)buttonTouchedUpOutside:(UIButton*)button; -(void)buttonTouhedCancelled:(UIButton*)button;

Braver_Smile的专栏 2万+

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

UIButton添加长按事件

一个电视机音量+按键的功能: (1)每按一次其音量+1 (2)长按音量持续增加 此时我们就需要给这个按钮添加两种事件了:     UIButton *btnVoiceUp = [UIButton buttonWithType:UIButtonTypeRoundedRect];     btnVoiceUp.frame = CGRectMake(40, 100, 60, 40)

lijuan3203的专栏 3088

IOS初学-简单的手势操作(单点,双击,长按)

手势之前先来个旋转。其它的简单动画同理 对视图进行旋转操作 func test8() {         let view1=UIView(frame: CGRect(x: 50, y: 150, width: 200, height: 50));         view1.backgroundColor=UIColor.brown;         self.view.addSubvie...

郭文亮的博客 3021

CSS浮动与清除浮动方法分类整理

CSS浮动属性详解与清除浮动方法 本文系统介绍了CSS浮动属性的工作原理、常见问题及解决方案。浮动最初用于文字环绕效果,后发展为重要布局工具,但会导致高度塌陷、布局错乱等问题。文章详细对比了5种清除浮动方法:空div法、伪元素法、BFC触发法、父元素浮动法和flow-root新属性,分析了各方法的优缺点及适用场景。特别推荐伪元素清除法和BFC方法作为现代开发的最佳实践,同时提供了浮动在文字环绕、等高布局等高级应用技巧。随着Flexbox和Grid布局的普及,浮动在复杂布局中的作用减弱,但在特定场景下仍具价值

油墨香^-^的博客 2194

CSS中几种常用的清除浮动的方法

在CSS中,浮动元素(使用float属性的元素)会脱离正常的文档流,这有时会导致父元素无法正确包裹其浮动子元素,从而产生布局问题。为了解决这个问题,我们需要清除浮动。

Joy_Huu的博客 804

IOS UIbutton的长按事件实现

UIButton *aBtn=[UIButton buttonWithType:UIButtonTypeCustom]; [aBtn setFrame:CGRectMake(40, 100, 60, 60)]; [aBtn setBackgroundImage:[UIImage imageNamed:@"111.png"] forState:UIControlStateNormal

沈阳斌子 8738

UIButton选择状态下长按时会变回原始状态

按钮选择状态下长按时会变成原始状态

ecjtuacm_yuewei的专栏 1485

CSS清除浮动:4个原因 + 5个解决办法

综上所述,选择哪种方法清除浮动,应根据项目需求、浏览器兼容性、页面结构和未来维护便捷性综合考量。**`在现代Web开发中,使用伪元素清除浮动和转向Flexbox或Grid布局成为越来越主流的选择。

大剑师兰特的GIS世界 1725

【css】css清除浮动的三种方法

清除浮动的三种方法,CSS 的 Float(浮动),会使元素向左或向右移动,其周围的元素也会重新排列。浮动元素会脱离文档流并向左/向右浮动,直到碰到父元素或者另一个浮动元素,使用了浮动的元素会造成父元素高度塌陷、会使紧随其后的行内元素围绕排列、会使紧随其后的块状元素被覆盖,所以为了避免以上情况,只要元素使用了浮动,就必须要清除浮动。

TTong_190502的博客 700

CSS清除浮动的五种方法(超详细)

浮动的原理是让图片脱离文档流,直接浮在桌面上。我们一般布局的时候都是只设置宽度不设置高度,让内容来自动填充高度。但使用浮动后会让原本填充的高度消失,父元素高度为0,后续添加内容布局会产生混乱,造成高度塌陷,这时候就可以利用清除浮动来解决父元素高度塌陷的问题。解决方法一(clear),解决方法二(overflow:hidden),解决方法三(给父元素添加高度),解决方法四(额外标签法),解决方法五(使用after伪元素清除浮动)

前端开发,HTML5,css3,JavaScript,node.js,vue 1万+

css清除浮动的四种方法(详细)

css清除浮动的四种方式

weixin_45842954的博客 1万+

CSS清除浮动的六种方法

六种方法中,推荐使用第三种。 1、父级div定义 height 原理:手动设置父级div的height,解决了父级div无法自动获取高度的问题。 缺点:只适合高度固定的布局,如果高度和父级div不一样时,会产生问题 <style type="text/css"> .box{background: red; /*解决代码*/ height: 100px; }...

若水弹丸之地 2992

CSS清除浮动的3种方式

BFC:(Block Formatting Context):格式化上下文,是web页面中css盒式模型的一种渲染模式,指一个独立的渲染区域或者说是一个隔离的独立容器。可以把 BFC 理解为一个封闭的大箱子,箱子内部的元素无论如何翻江倒海,都不会影响到外部。具体使用如下代码所示:< style > /*内联样式*/ /* BFC */ .div1 {*/ /* 1. BFC ,使其成为BFC的其中一个条件*/ } .div2 {

m0_47013706的博客 1825
下一篇: iOS - OC 关于APP启动页面空白加载的优化
comHelloWorld
博客等级 码龄6年 1粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值