按钮的几种状态的区别

按钮的几种状态的区别

几种状态:

enum {
   UIControlStateNormal               = 0,
   UIControlStateHighlighted          = 1 << 0,
   UIControlStateDisabled             = 1 << 1,
   UIControlStateSelected             = 1 << 2,
   UIControlStateApplication          = 0x00FF0000,
   UIControlStateReserved             = 0xFF000000
};

这几种状态的时序变化顺序:

1.什么都没干的时候:Normal

2.当你的手指按下去,还没放的时候:Highlighted

3.当手指放开的时候:如果这个 UIControl 有 Selected 状态的话,就会变成: Selected

再重复上述过程一次,就会从 Selected->Highlighted-> Normal

但是普通的 UIButton 这个 UIControl 的 subclass,是没有 Selected 状态的,它就只有 Normal 和 Highlighted,只会在这两个状态间切换。(正常情况下,如果你设置了 disable 的话,还会变到 Disabled)

非常自然的时序:Normal -> Highlighted -> Selected -> Normal。

也可以理解为:

  • 手指按到控件,UIControl更新ControlState到Highlighted
  • 手指离开控件,一般UIControl更新ControlState到Selected
  • Highlighted -> Selected之后的状态取决于具体的UIControl子类,其实连UITableViewCell也有这三种状态,Cell还是UIView的子类,这种特殊的状态默认就不会更新回Normal了~

     

 

转载于:https://my.oschina.net/llfk/blog/701879

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/108960.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • PHP实现微信退款的分析与源码实现

    PHP实现微信退款的分析与源码实现

    2021年10月31日
    45
  • ubuntu16.04安装qt5_qt安装哪些组件

    ubuntu16.04安装qt5_qt安装哪些组件Qt是一个跨平台的C++图形用户界面库,我们平时所说所使用的Qt,准确的来说是它的GUI编程部分。Qt提供给应用程序开发者建立图形用户界面所需要的功能,并且Qt很容易扩展。基本上,Qt和XWindow上的Motif、Openwin、GTK等图形界面库和Windows平台上的MFC、OWL、VCl以及ATl是相同类型的东西。一.安装Qt第一步:http://download.qt.io/ar……

    2022年10月15日
    4
  • jvm-08.jvm调优工具Arthas[通俗易懂]

    jvm-08.jvm调优工具Arthas[通俗易懂]jvm调优工具Arthas阿尔萨斯官方文档https://arthas.aliyun.com/doc/下载curl-Ohttps://arthas.aliyun.com/arthas-boot.jar启动java-jararthas-boot.jarFullGC_Problem01是我们刚启动的java进程importjava.math.BigDecimal;importjava.util.ArrayList;importjava.util.Date;import

    2022年5月31日
    37
  • 建索引的优缺点

    建索引的优缺点参考:https://blog.csdn.net/ybaog/article/details/53906300为什么要创建索引呢?这是因为,创建索引可以大大提高系统的性能。第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。第二,可以大大加快数据的检索速度,这也是创建索引的最主要的原因。第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。…

    2022年5月10日
    43
  • java随机生成六位密码_java怎样实现密码的输入

    java随机生成六位密码_java怎样实现密码的输入importjava.util.Random;publicclasstest{/***@paramargs*/publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubSystem.out.println(genRandomNum(10));}/***生成随即密码*@parampwd_len…

    2025年7月12日
    4
  • Ubuntu 安装企业版微信

    Ubuntu 安装企业版微信下面就直接讲讲在 ubuntu 环境下如何安装企业版微信 第一步 gitclonehttp gitee com wszqkzqk deepin wine for ubuntu git 第二步 cd 到 deepin wine for ubuntu 文件夹下面 执行下列命令 install sh 第三步 在 home 目录下新建一个文件夹 我命名的是 softwares 然后 cd 进入 softwares 执行如下命令 wgethttp mirrors aliyun com

    2025年10月7日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号