按钮的几种状态的区别

按钮的几种状态的区别

几种状态:

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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • OpenSSL Heartbleed检测工具[通俗易懂]

    OpenSSL Heartbleed检测工具[通俗易懂]OpenSSLHeartbleed检测工具ssltest.py

    2022年7月15日
    14
  • stm32中adc的讲解_stc单片机adc应用实例

    stm32中adc的讲解_stc单片机adc应用实例文章目录ADC简介ADC功能框图讲解ADC简介STM32f103系列有3个ADC,精度为12位,每个ADC最多有16个外部通道。其中ADC1和ADC2都有16个外部通道,ADC3一般有8个外部通道,各通道的A/D转换可以单次、连续、扫描或间断执行,ADC转换的结果可以左对齐或右对齐储存在16位数据寄存器中。ADC的输入时钟不得超过14MHz,其时钟频率由PCLK2分频产生。ADC功能框图讲解…

    2022年5月3日
    38
  • [GBA ROM列表]不断补完中……

    [GBA ROM列表]不断补完中……出处:http://www.ezflash.cn/vbb/showthread.php?s=3a42901b8c2aacb56a02e61f690b8a05&threadid=14&perpage=15&pagenumber=10001-F-Zero(J)(最高时速)(J)RCG320002-SuperMarioAdvance(J)(超级马里奥A)(J)ACT32000

    2022年7月11日
    74
  • Java吧百度贴吧,年薪60W必备

    Java吧百度贴吧,年薪60W必备思考前面提到Kafka帮我们实现了各个版本的生产者代码,其实他也可以完全不提供这份代码,因为核心的队列的功能已经实现了,这些客户端的代码也可以完全交由用户自己实现。那么假如没有官方代码,我们又该实现一些什么功能,有哪些接口,哪些方法,以及如何组织这些代码呢。带着这样的问题我们一起来思考一下!一般对于这种带有数据流转的设计,我会从由谁产生?什么数据?通往哪去?如何保证通路可靠?这几个方面来考虑。消息自然是通过应用程序构造出来并提供给生产者,生产者首先要知道需要将消息发送到哪个Bro

    2022年7月7日
    34
  • 遗传算法的应用实例python实现_遗传算法Python解决一个问题

    遗传算法的应用实例python实现_遗传算法Python解决一个问题$n:\5~”f1Y!G2T&j%t2F0N#p$x.y!W$j-o1o,ppython实现的遗传算法实例(一))h#F+A#N:p”a&c”^4g%[8i6~%L#]$B&s2U'[7B:_一、遗传算法介绍遗传算法是通过模拟大自然中生物进化的历程,来解决问题的。大自然中一个种群经历过若干代的自然…

    2022年9月13日
    0
  • Linux配置redis开机启动(CentOS 7)

    Linux配置redis开机启动(CentOS 7)

    2021年10月27日
    52

发表回复

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

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