我有一个UIButton,根据我的应用程序有4种不同的状态.
state-1 normal.
state-2 selected.
state-3 highlighted , going normal-to-selected.
state-4 highlighted , going selected-to-normal.
Run Code Online (Sandbox Code Playgroud)
最初按钮处于正常状态,当我按下它时,它进入选定状态并在这些状态之间保持切换.
这是通过为两个状态指定图像并更改所选属性来实现的.
但是,在更改每个状态时,我需要更改突出显示的状态图像,以确保它在按下时表示状态3和状态4.
问题是,当从选择到正常时,看起来UIButton没有突出显示的状态.
所以现在我保留一个BOOL ivar来查看我视图中的选择状态.并保持按钮处于正常状态,并根据BOOL ivar的值,使用每个动作将其图像更改为突出显示的状态和正常状态.
有没有更简单的方法来实现这一目标?
这样做的原因是状态是两个值的混合.
一些最公共的
UIControlStateNormal,
UIControlStateHighlighted,
UIControlStateDisabled,
UIControlStateSelected,
UIControlStateSelected | UIControlStateHighlighted,
UIControlStateSelected | UIControlStateDisabled,
Run Code Online (Sandbox Code Playgroud)
因此,如果你想拥有一个highlighted州,selected那么我更喜欢这样做.
[button setImage:imageHighlighted forState:UIControlStateSelected | UIControlStateHighlighted];
Run Code Online (Sandbox Code Playgroud)
如果一般规则是您在选择时始终具有相同的突出显示状态,则可以执行某些操作
UIControlState mixedState = UIControlStateSelected | UIControlStateHighlighted;
[button setImage:[button imageForState:state] forState:state];
[button setBackgroundImage:[button backgroundImageForState:state] forState:state];
[button setTitleColor:[button titleColorForState:state] forState:state];
Run Code Online (Sandbox Code Playgroud)
等等
| 归档时间: |
|
| 查看次数: |
1463 次 |
| 最近记录: |