iphone - UIButton在按下时保持突出显示

标签 iphone ios uibutton

这真令人沮丧,我搜索了很多都无济于事。

我有一个按钮。按下该按钮时,它将调用执行网络操作的方法(NSURLRequest)。

该按钮应执行以下操作:

  • 按下时:显示按下的状态图像,触发请求方法
  • 按下后:显示按钮的禁用状态,直到方法完成请求

  • 问题是在整个请求中,按钮均处于突出显示/按下状态。我已附上我目前在下面的代码。

    对于按钮:
    [myButton setBackgroundImage:[UIImage imageNamed:@"defaultbutton"] forState:UIControlStateNormal];
    [myButton setBackgroundImage:[UIImage imageNamed:@"pressedbutton"] forState:UIControlStateHighlighted];
    [myButton setBackgroundImage:[UIImage imageNamed:@"disabledbutton"] forState:(UIControlStateDisabled|UIControlStateSelected)];
    [squishButton addTarget:self action:@selector(reqMethod) forControlEvents:UIControlEventTouchUpInside];
    

    在请求开始的方法中:
    -(void)reqMethod {
    NSLog(@"Starting request..");
    [myButton setHighlighted:NO];
    [myButton setEnabled:NO];
    [myButton setSelected:YES];
    

    请求完成后,它会隐藏普通按钮并显示可以正常工作的重置按钮。

    最佳答案

    您应该对多线程文档有所了解。
    http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/Multithreading/Introduction/Introduction.html

    如果您需要一段代码,我认为这可能很有用

    [myButton setBackgroundImage:[UIImage imageNamed:@"defaultbutton"] forState:UIControlStateNormal];
    [myButton setBackgroundImage:[UIImage imageNamed:@"pressedbutton"] forState:UIControlStateHighlighted];
    [myButton setBackgroundImage:[UIImage imageNamed:@"disabledbutton"] forState:(UIControlStateDisabled|UIControlStateSelected)];
    [squishButton addTarget:self action:@selector(reqMethod) forControlEvents:UIControlEventTouchUpInside];
    
        dispatch_async(dispatch_get_global_queue(0, 0), 
                           ^{
                               //Your request
        dispatch_async(dispatch_get_main_queue(), 
                               ^{
                       NSLog(@"Starting request..");
                       [myButton setHighlighted:NO];
                       [myButton setEnabled:NO];
                       [myButton setSelected:YES];  
                         });
                    });
    

    关于iphone - UIButton在按下时保持突出显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11582700/

    相关文章:

    iphone - ZXing读取一维条码iPhone

    ios - 使用在解析云代码中保存之前或之后将userId添加到另一个表

    ios - 从 Swift 中的 PopOver UITableViewCell 选择更改 UITextField 中的值

    ios - 初始化 UIButton 时出现不需要的动画

    ios - UIButton 在隐藏和取消隐藏后中断

    白色背景上带有透明标题的 iOS UIButton

    iphone - 使用多个顶点和索引缓冲区对象进行渲染(ios - OpenGLES 2.0)

    iphone - Objective-C - 对 NSMutableStrings 使用 deleteCharactersInRange

    ios - 应用程序加载器卡住,但状态为 "Waiting for Review"

    iphone - 苹果开发者发行证书