Wol*_*kEE 6 iphone uibutton ios
我需要一个UIButton来维持一个按下状态.基本上,如果按钮处于正常状态,我想触摸按钮,它突出显示其标准蓝色,然后抬起我的手指后保持蓝色.我做了以下UIAction并将按钮Touch Up Inside事件连接到它.
-(IBAction) emergencyButtonPress:(id) sender
{
if(emergencyButton.highlighted)
{
emergencyButton.selected = NO;
emergencyButton.highlighted = NO;
}
else
{
emergencyButton.selected = YES;
emergencyButton.highlighted = YES;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我移开手指后,按钮会返回白色背景.对于测试,我添加了一个UISwitch并让它执行相同的代码:
-(IBAction) emergencySwitchClick:(id) sender
{
if(emergencyButton.highlighted)
{
emergencyButton.selected = NO;
emergencyButton.highlighted = NO;
}
else
{
emergencyButton.selected = YES;
emergencyButton.highlighted = YES;
}
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,按钮会切换到突出显示的非突出显示状态,如我所料.
在Touch Up Inside事件之后是否还有另一个事件正在将状态重置为"正常"?如何保持突出显示的状态?
当您触摸/释放按钮时,iOS会应用和删除突出显示的状态.所以不要在你的行动方法中依赖它.
正如其他答案之一所说,将突出显示的图像设置为与所选图像相同,然后修改您的操作方法:
-(IBAction) emergencyButtonPress:(id) sender
{
emergencyButton.selected = !emergencyButton.selected;
}
Run Code Online (Sandbox Code Playgroud)
如果您希望上述代码起作用,您应该为选定的状态设置一张图像,并为突出显示的状态设置一张(甚至相同的)图像。
[emergencyButton setBackgroundImage:buttonHighlightImage forState:UIControlStateHighlighted];
[emergencyButton setBackgroundImage:buttonHighlightImage forState:UIControlStateSelected];
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你。
| 归档时间: |
|
| 查看次数: |
8381 次 |
| 最近记录: |