TouchUpInside事件后无法将UIButton保持在选定状态 [英] Unable to keep UIButton in selected state after TouchUpInside Event

查看:64
本文介绍了TouchUpInside事件后无法将UIButton保持在选定状态的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要一个UIButton来保持按下状态.基本上,如果一个按钮处于正常状态,我想触摸该按钮,它将其突出显示为标准的蓝色,然后在举起手指后保持蓝色.我做了以下UIAction并将按钮Touch Up Inside事件连接到它.

I have the need for an UIButton to maintain a pressed state. Basically, if a button is in a normal state, I want to touch the button, it highlight to its standard blue color and then stay blue after lifting my finger. I made the following UIAction and connected the buttons Touch Up Inside event to it.

-(IBAction) emergencyButtonPress:(id) sender
{
    if(emergencyButton.highlighted)
    {
        emergencyButton.selected = NO;
        emergencyButton.highlighted = NO;
    }
    else
    {
        emergencyButton.selected = YES;
        emergencyButton.highlighted = YES;
    }
}

但是发生了什么,当我松开手指后,按钮又回到了白色背景.为了进行测试,我添加了一个UISwitch并让它执行相同的代码:

But what happens, after I remove my finger, the button goes back to a white background. For a test I added a UISwitch and have it execute the same code:

-(IBAction) emergencySwitchClick:(id) sender
{
    if(emergencyButton.highlighted)
    {
        emergencyButton.selected = NO;
        emergencyButton.highlighted = NO;
    }
    else
    {
        emergencyButton.selected = YES;
        emergencyButton.highlighted = YES;
    }
}

在这种情况下,按钮会像我期望的那样切换到突出显示和未突出显示的状态.

In this case the button toggles to a highlighted and non-highlighted state as I would expect.

在"Touch Up Inside"事件之后是否发生了另一个事件,该事件将状态重置为正常"?如何保持突出显示状态?

Is there another event happening after the Touch Up Inside event that is resetting the state back to 'normal'? How do I maintain the highlighted state?

推荐答案

当您触摸/释放按钮时,iOS将应用并删除突出显示的状态.因此,不要在您的操作方法中依赖它.

The highlighted state is applied and removed by iOS when you touch / release the button. So don't depend on it in your action method.

如其他答案之一所述,将突出显示的图像设置为与所选图像相同,然后修改您的操作方法:

As one of the other answers says, set the highlighted image to be the same as the selected image, and then modify your action method:

-(IBAction) emergencyButtonPress:(id) sender 
{
    emergencyButton.selected = !emergencyButton.selected;     
} 

这篇关于TouchUpInside事件后无法将UIButton保持在选定状态的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆