2015-06-06 62 views
1

我有在故事板的ViewController場景設計的原型細胞的表圖。顯示行/細胞的UITableView逐個與動畫

現在我的目標是當應用程序將啓動,並認爲將被載入然後在tableview中的數據不應該來一次,而它會通過一個動畫來一個。

這裏是我做我的動畫代碼: -

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if (![shownIndexes containsObject:indexPath]) { 
     [shownIndexes addObject:indexPath]; 
     [UIView animateWithDuration:2.0f delay:0.0f usingSpringWithDamping:0.5f initialSpringVelocity:1.0f options:UIViewAnimationOptionAllowAnimatedContent animations:^{ 
      vw.frame = frame; 
     } completion:^(BOOL finished) { 

     }]; 
    } 

其他方法: -

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
    tableView.separatorStyle = UITableViewCellSeparatorStyleNone; 

    return 1; //count of section 
} 


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 

    return 20; //count number of row from counting array hear cataGorry is An Array 
} 

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    return 120; 

} 

- (UITableViewCell *)tableView:(UITableView *)tableView 
     cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *MyIdentifier = @"CellA"; 

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier]; 
    cell.selectionStyle = UITableViewCellSelectionStyleNone; 
return cell; 


} 

下面的代碼動畫第5個細胞中,顯示最初一次在tableview中,但之後當我滾動時,它正在逐一發生。

所以主要問題是

如何通過一個動畫無法一次顯示在UITableView的一個行或單元格?

任何信息或幫助將不勝感激。

謝謝。

+0

問題是什麼?可能會使其更清晰 – omerio

+0

如何在不一次顯示動畫的情況下逐個顯示UITableview中的行或單元格? @omerio – Vizllx

+0

您可以增加i動畫的延遲時間,例如第二個單元格爲2秒,第三個單元格爲4秒等等,但正如您所看到的那樣,它將持續使用,因此請確保您的用戶在動畫結束之前不會過時。 – sunshinejr

回答

-1

告訴榜第一,在只有一排,在numberOfRows…。延遲後,返回2而不是1.等等。

+0

這真的是一個解決方案!你怎麼想到這個會的工作,你怎麼可以想給在「numberOfRows」的延遲,這意味着你必須調用重載表視圖,這必將再次動畫上一個單元格。 – Vizllx

+0

你也可以使用insert insertRowsAtIndexPaths:withRowAnimation:'。 – sunshinejr

+0

您可以在不重新加載整個表的情況下更改行數。陽光提出的是一種方法,同時檢查'beginUpdates'和'endUpdates'。 –