2013-03-05 10 views
6

bir animasyon ile bir UITableView 2 UITableviewCells arasındaki UITableViewCells ekle, bir slayt oluştuğunda UITableViewController bildirerek bir NSNotification tabanlı sisteme sahip . Taşınan hücrenin altında ve taşınan hücrenin altındaki hücrenin altında bir UITableViewCell görüntülemeniz gerekir. Uygulamada görüldüğü gibi bir kat animasyon yapmak istiyorum ama pinch gesture (yani otomatik katlama) olmadan. MPFoldTransition adlı bu kitaplığı buldum. Ancak, UITableView desteklemiyor. Ayrıca, bu tutorial numaralı telefona pinch gesture'u da baktım, ancak bu öğretici, kullanıcıların bir tutam jest yapması gerektiğinden, animasyonun nasıl otomatik olarak animasyonlandırılacağını anlatmıyor. İnternete baktım ve bir şey bulamıyorum. Herhangi bir yardımı takdir edeceğim.Ben sol ve sağa kaydırın <code>UITableView Cells</code> içeren bir <code>UITableView</code> içeren bir iPad uygulamasının yapıyorum Şu anda

Teşekkür

+1

_ "Ancak bu öğreticide bir UITableViewCell alt sınıfı kullanılıyor ve buna sahip olamıyorum" _ Bunun için herhangi bir neden var mı? – iDev

+0

Nedeni UIView'i derhal imha etmem gerektiğidir (yani onu yeniden canlandırın) – virindh

+0

@ACB Tahminimce çok özelleştirilmiş bir UITableViewCell kullanabilir miyim, bu gözetim için üzgünüm, bu değişikliği yansıtmak için sorumu düzenledim – virindh

cevap

7

Bu MPFoldTransition 'ın transitionFromView: toView:... kullanarak tamamen mümkündür. Ben eğer isterseniz bağlanabilirsiniz bir örnek proje oluşturduk, ama hepsi gerçekten bu kadar aşağı kaynar:

Hakkında
- (void)addNewTableCellToIndexPath:(NSIndexPath *)indexPath { 
    // Add the new object to the datasource and reload the row 
    [dataSourceArray insertObject:@"New" atIndex:indexPath.row]; 

    [self.tableView beginUpdates]; 
    [self.tableView insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone]; 
    [self.tableView endUpdates]; 

    //setup temporary cell 
    UITableViewCell *fromCell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil]; 
    [fromCell setBackgroundColor:[[self.tableView cellForRowAtIndexPath:indexPath] backgroundColor]]; 
    //setup cell to animate to 
    UITableViewCell *toCell = [self.tableView cellForRowAtIndexPath:indexPath]; 
    [toCell.textLabel setText:dataSourceArray[indexPath.row]]; 

    //add fold animation to the cells create above 
    [MPFoldTransition transitionFromView:fromCell 
            toView:toCell 
           duration:0.4 
            style:MPFoldStyleUnfold 
         transitionAction:MPTransitionActionNone 
           completion:^(BOOL finished) { 
            [self.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone]; 
           }]; 
} 

bağımsız değişken olarak endeks yolunu alan bir fonksiyondur. Hücreyi katlama geçişi ile eklemek istediğiniz dizin yolunu gönderin ve hücrelerin geri kalanı aşağı kaydırırken, katlamak için masadaki boş bir geçici hücre oluşturacaktır. Mükemmel değil, çünkü UITableViewRowAnimation'un süresini katlama süresi ile mükemmel bir şekilde değiştirmenin bir yolunu bulamadım.

Her iki durumda da, bu sizi gitmeniz için yeterli olmalıdır. Bu yardımcı olur umarım!

İlgili konular