2014-08-27 23 views
0

我想做一個簡單的ios應用程序。Xcode ios objective c主題

我想單擊按鈕並更改視圖中按鈕的背景顏色。

它已經在工作,但我想要做它asnyc。

例如。

Buttton1灰 等待第二個 Button2的灰 等待 等。

這是基源:

int i = 1; 
UIView *view = viewButtons; 
for(UIButton *btnItem in view.subviews) 



    NSString *strValue = [@(i) stringValue]; 
    btnItem.backgroundColor = [UIColor lightGrayColor]; 
    [btnItem setTitle: strValue forState:UIControlStateNormal]; 
    i++; 

    usleep(1000 * 1000); 

誰能幫助我?謝謝!

+1

你爲什麼要這樣做異步?應始終在主線程上進行任何UI更改。 – Mike 2014-08-27 20:56:57

+1

我猜是因爲當前的代碼會阻止主UI線程 – Paulw11 2014-08-27 20:58:34

+2

在iOS中可能有10種不同的方式來執行定時操作。做一點研究。 – 2014-08-27 21:12:14

回答

0

看看NSTimer。它將允許您指定一個時間間隔以及是否要重複該操作。正如Hot Licks所提到的,還有其他方法可以做到這一點。如果您決定自行創建線程,例如使用GCD,請記住UI更新必須始終在主線程上進行。

0

您可以使用NSTimer(如前所述)或dispatch_after()調用。如果是重複動作,請使用NSTimer並將其設置爲重複。如果這是一個不重複的動作,則可以使用NSTimer集合不重複,或者使用dispatch_after()調用。由你決定。絕對不要線程UI代碼;有未定義的行爲(換句話說,它將無法正常工作)。