按钮的几种状态的区别

几种状态:

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MFC CBitmapButton可以通过自绘按钮的方式来实现不同状态按钮效果,常见的状态有正常、按下、悬停等。下面介绍使用MFC CBitmapButton自绘按钮几种状态及设置反应时间的方法: 1. 正常状态:在按钮未被按下、悬停或失去焦点时的状态。可以通过重载CBitmapButton的DrawItem函数,在绘制按钮的时候根据需要绘制不同的背景和图标来实现自定义的正常状态。设置反应时间可以通过响应按钮的WM_LBUTTONUP消息来实现,即在按钮被松开时执行相应的操作。 2. 按下状态:在按钮被按下时的状态。可以通过重载CBitmapButton的OnLButtonDown和OnLButtonUp函数,在按钮被按下和松开时分别绘制不同的背景和图标来实现自定义的按下状态。设置反应时间可以在响应WM_LBUTTONUP消息时执行相应的操作。 3. 悬停状态:在鼠标悬停在按钮上时的状态。可以通过重载CBitmapButton的OnMouseMove和OnMouseLeave函数,在鼠标进入和离开按钮时分别绘制不同的背景和图标来实现自定义的悬停状态。设置反应时间可以在响应WM_LBUTTONUP消息时执行相应的操作,或者在响应WM_MOUSEHOVER消息时执行相应的操作。 4. 禁用状态:在禁用按钮时的状态。可以通过重载CBitmapButton的DrawItem函数,在绘制按钮的时候根据需要绘制不同的背景和图标来实现自定义的禁用状态。设置反应时间不可用,因为在此状态下无法响应任何鼠标事件。 总之,使用MFC CBitmapButton自绘按钮的关键是重载相应的函数,并根据需要绘制不同的背景和图标来实现自定义的按钮效果。设置反应时间可以在响应相应的鼠标消息时执行相应的操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值