如何获得网络活动微调器状态?

时间:2014-10-30 23:52:03

标签: ios xcode

我有一个应用程序,如果数据正在加载,我想让一个按钮无法点击。如果没有网络活动,则意味着由于已加载所有数据,因此该按钮应该是可点击的。

你可以在这里看到微调器。左上角。

http://i.imgur.com/teWmZ.png

如果b.enabled = 0,if语句应该如何;是什么让按钮unlickabl并使它1可点击?

我该放什么     if()

3 个答案:

答案 0 :(得分:1)

该微调器是你的微调器。你不能知道它是否在旋转,因为你将它旋转。因此,没有必要问它是否正在旋转;你已经知道了。如果你已经设定它旋转它是旋转的,并且如果你已经停止它或者从未将它设置为旋转,它就不会旋转(并且不存在)。

那个微调器知道“数据是否正在加载”的任何内容。知道这取决于。它只是一个微调器。它没有智慧。

答案 1 :(得分:0)

if ([UIApplication sharedApplication]. isNetworkActivityIndicatorVisible){
    //action if data is loading
}

答案 2 :(得分:0)

左上角你要找的是:     [[UIApplication sharedApplication] setNetworkActivityIndi​​catorVisible:YES]; 当然使用 YES 来显示, NO 来隐藏。

然后我建议您使用AFNetworking作为您的请求,该请求具有成功和失败阻止,您可以轻松地使用它来启用或禁用您的UI。

示例:

    //DISABLE YOUR UI INTERACTION HERE
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    [manager GET:@"http://example.com/resources.json" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
        NSLog(@"JSON: %@", responseObject);
        //ENABLE YOUR UI INTERACTION ONCE REQUEST IS DONE AND SUCCESSFUL
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        NSLog(@"Error: %@", error);
        //ENABLE YOUR UI INTERACTION ONCE REQUEST IS DONE BUT FAILED
    }];