【问题标题】:How does the control state work in UIControl?UIControl 中的控件状态如何工作?
【发布时间】:2013-07-10 14:16:13
【问题描述】:

我正在开发一个使用 UIButton 的 ios 项目。我使用了[cardButton setTitle:card.contents forState:UIControlStateSelected|UIControlStateDisabled];,但我并不完全了解机制。我知道这是 emun 和位掩码过程。任何人都可以向我解释一下吗?谢谢。

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

【问题讨论】:

    标签: ios enums uibutton uicontrol bitmask


    【解决方案1】:

    一个控件可以有more than one states at a time 例如。 selected 和 highlight 可以共存,依此类推。

    因此,您可以为状态组合指定标题和图像。

    例如。

    UIButton * button;
    //initialization code
    NSString * title = @"Title";
    [button setTitle:title forState:UIControlStateHighlighted | UIControlStateSelected];
    title = [button titleForState:UIControlStateHighlighted | UIControlStateSelected];
    

    位掩码用于为每个值组合生成唯一值 - 使用按位或尝试它们,您会得到它。它与能够支付任何整数金额的 1 美元、2 美元、5 美元、10 美元等纸币并没有太大的不同,例如1美元和2美元的钞票可以用来支付3美元、4美元等等,所以你只需要确定数量的钞票。

    【讨论】:

    • 所以,forState:UIControlStateHighlighted | UIControlStateSelected 表示为突出显示和选择设置内容。而状态的唯一性就是他们使用位掩码的原因,对吧?
    猜你喜欢
    • 2021-01-19
    • 1970-01-01
    • 2021-09-30
    • 1970-01-01
    • 2011-10-06
    • 2010-09-17
    • 1970-01-01
    • 2019-07-01
    • 2017-10-11
    相关资源
    最近更新 更多