2014-10-30 61 views
0

我有一個應用程序,如果數據加載,我想讓一個按鈕不可點擊。如果沒有網絡活動,則意味着由於所有數據都已加載,所以該按鈕應該是可點擊的。如何獲取網絡活動微調狀態?

你可以在這裏看到微調。左上方。

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

if語句應該如何看待一樣,如果b.enabled = 0;是什麼讓按鈕unclickabl,並使其1可點擊?

什麼,我把 如果()

回答

1

那飛旋是微調。你不能不是知道它是否旋轉,因爲你設置它旋轉。因此,沒有問題是否在旋轉;你已經知道了。如果您已將其設置爲旋轉,則它正在旋轉,並且如果您已經停止旋轉或從未將其設置爲初始旋轉,則它不旋轉(並且不存在)。

Spinner確實不是對於「數據是否正在加載」知道任何事情。知道這是高達。這只是一個微調。它沒有智慧。

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

你正在尋找頂部左邊的一個是: [UIApplication的sharedApplication] setNetworkActivityIndi​​catorVisible:YES]; 當然要用YES來顯示,要用NO來隱藏。

然後,我會建議使用AFNetworking爲您的請求,它有一個成功和失敗塊,您可以輕鬆地使用來啓用或禁用您的用戶界面。

實施例:

//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 
    }];