2011-12-26 42 views
7

Vì vậy, khi người dùng chạm vào một ô trong bảng của tôi, tôi không thực sự đẩy đến bộ điều khiển chế độ xem mới mà tôi chỉ tải lại dữ liệu bên trong bảng đó.Tải lại Bảng Hoạt ảnh

Tuy nhiên, tôi muốn có hiệu ứng tương tự với giao diện nếu tôi đã đẩy bộ điều khiển chế độ xem mới.

Có ai biết cách tôi có thể trượt nội dung cũ khỏi nội dung cũ khỏi màn hình và nội dung mới trên màn hình cho toàn bộ bảng không?

Trả lời

13

Tùy thuộc vào bao nhiêu phần bạn có bạn có thể sử dụng - (void)reloadSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation

Vì vậy, bạn có thể làm một cái gì đó như thế này:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    [tableView deselectRowAtIndexPath:indexPath animated:YES]; 
    [tableView reloadSections:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0,[self numberOfSectionsInTableView])] withRowAnimation:UITableViewRowAnimationRight]; 
} 
+0

Bạn là người đàn ông. Không nhìn hoàn hảo nhưng tôi sẽ chơi với nó. – endy

+0

có vấn đề gì với nó? – DanZimm

+1

Các ứng dụng bị treo nếu tôi tải dữ liệu với một số lượng khác nhau của các phần. Tôi nghĩ rằng tôi chỉ sẽ chèn một tableview thứ hai và trượt nó trên một cũ. – endy

0

Simple animation

func animateTable() { 
    self.reloadData() 

    let cells = self.visibleCells 
    let tableHeight: CGFloat = self.bounds.size.height 

    for i in cells { 
     let cell: UITableViewCell = i as UITableViewCell 
     cell.transform = CGAffineTransform(translationX: 0, y: tableHeight) 
    } 

    var index = 0 

    for a in cells { 
     let cell: UITableViewCell = a as UITableViewCell 

     UIView.animate(withDuration: 1.5, delay: 0.05 * Double(index), usingSpringWithDamping: 0.8, initialSpringVelocity: 0, options: UIViewAnimationOptions.curveLinear, animations: { 
      cell.transform = CGAffineTransform.identity 
     }, completion: nil) 

     index += 1 
    } 
} 
Các vấn đề liên quan