2012-01-10 106 views
0

我有我的單元格中的活動指示符問題。我在這裏啓動這個方法的動畫,然後從那裏下載數據我重新加載表格視圖並呼叫停止動畫numbersResponseData.length != 0但我看不到活動指示器。UIActivityIndi​​catorView顯示爲空白

我有一個配件視圖箭頭thingy,它移動到左邊時,它的加載我只是看不到指標。

這是tableView:cellForRowAtIndexPath:方法中:

if(indexPath.section == 0) 
{   
    if ((indexPath.row == 0) && (numbersResponseData.length == 0)) 
    { 
     cellActivityIndicator = 
      [[UIActivityIndicatorView alloc] 
       initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]; 
     [cellActivityIndicator startAnimating]; 
     [cell setAccessoryView:cellActivityIndicator]; 

     // Call ASIHTTPRequest methods to start xml download/cache process 
     [self setRequestString:@"Numbers.xml"]; 
    } 
    //will set other cells up later 
} 

更新:

我加入了UIActivityIndi​​cator叫我的if語句的不同部分中,現在應用的活動指標,每一個細胞,但現在我可以看到他們。

if(indexPath.section == 0) 
    {   
      cellActivityIndicator = 
       [[UIActivityIndicatorView alloc] 
        initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]; 
      [cellActivityIndicator startAnimating]; 
      [cell setAccessoryView:cellActivityIndicator]; 
     if ((indexPath.row == 0) && (numbersResponseData.length == 0)) 
     { 
      cellActivityIndicator = 
       [[UIActivityIndicatorView alloc] 
        initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]; 
      [cellActivityIndicator startAnimating]; 
      [cell setAccessoryView:cellActivityIndicator]; 

      // Call ASIHTTPRequest methods to start xml download/cache process 
      [self setRequestString:@"Numbers.xml"]; 
     } 
     //will set other cells up later 
    } 

我已經調試的.row if語句和挑釁獲取調用..我只是不明白爲什麼它會從一個if語句工作,但不是未來。

+0

你不會看到指示燈,如果你正在使用同步請求,因爲它阻斷UI。你在使用同步請求嗎? – Cyprian 2012-01-10 21:27:49

+0

不,我很挑剔地使用異步只是檢查它...它很奇怪,因爲細胞配件視圖移動到左側,然後返回到右側,一旦它完成它只是你根本看不到指標。 – 2012-01-10 21:40:29

+0

我已經修復了這個問題,初始化UIActivityIndi​​cator開始和停止動畫的代碼是一樣的,但要讓它正常工作我不得不改變if語句結構..怪異我知道也許它的其他東西導致它,我沒有點擊,但通過改變if語句,它似乎已經正確地修復了它。 – 2012-01-11 00:49:46

回答

0

你是從UI循環還是從工作線程調用這段代碼?您將需要使用performSelectorOnMainThread:如果您從工作線程調用,則調用UI更改。請參考:

http://blog.jayway.com/2010/03/30/performing-any-selector-on-the-main-thread/

+0

我不太確定在這裏,因爲我從tableView:cellForRowAtIndexPath調用:但調用tableviewcell的組件,所以不知道它是否與上面描述的相同。 – 2012-01-10 22:04:57

1

我覺得你UIActivityIndi​​catorView隱藏着的UITableView後面。轉儲該代碼,並檢查你能夠看到視圖或這個指標不

subViewActivityIndicator = [[[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge] autorelease]; 
subViewActivityIndicator.frame=CGRectMake(150, 220, 37, 37); 
subViewActivityIndicator.color = [UIColor colorWithRed:0.6 green:1 blue:0 alpha:1.0]; 
[self.tableview addSubview:subViewActivityIndicator]; 
[subViewActivityIndicator startAnimating]; 

刪除使用此,

[subViewActivityIndicator removeFromSuperview]; 
+0

好吧,我做到了這一點,沒有我看不到ActivityIndi​​catorView ... :( – 2012-01-10 22:00:29

+0

檢查兩件事1)您添加子視圖右子視圖([self.tableview addSubview:subViewActivityIndi​​cator];)和2)如果你仍然有錯誤,你有使用選擇器afterDelay來調用微調方法([self performSelector:@selector(getStartSpinner)withObject:nil afterDelay:0.1]; ) – AAV 2012-01-10 22:04:52

+0

我剛剛在上面的問題中描述了它。現在我想它與我的if語句的錯誤,這是在裏面調用的。 – 2012-01-10 22:07:16

相關問題