Tôi đang phát triển một ứng dụng iOS có trong một chế độ xem là UITableView
với hai tùy chỉnh UITableViewCell
. Tất cả điều này bằng cách sử dụng bảng phân cảnh chính.
Mọi thứ hoạt động khá tốt. Nhưng những gì tôi cần thực hiện là một hình ảnh mờ dần trong/mờ dần trong một UIView
từ chỉ một ô.
Hiện nay tôi đang sử dụng một đoạn mã này để animate xem:Hoạt ảnh UIView bên trong UITableViewCell
[UIView animateWithDuration:1.2
delay:0
options:UIViewAnimationOptionAutoreverse | UIViewAnimationOptionRepeat | UIViewAnimationOptionCurveEaseInOut animations:^{
self.myView.alpha = 0;
} completion:^(BOOL finished) {
self.myView.alpha = 1;
}];
Trong một phương pháp "đặt nội dung" mà tôi gọi là trong phương pháp nguồn tableView:cellForRowAtIndexPath:
dữ liệu của UITableView
.
Hoạt ảnh hoạt động ok. Ngay cả khi thay đổi giữa chế độ xem, chế độ xem vẫn hoạt ảnh. Vấn đề của tôi là khi tôi tải lại dữ liệu từ chế độ xem bảng hoặc chế độ xem bảng cuộn lên hoặc xuống cho đến khi ô có hoạt ảnh biến mất và phải sử dụng lại ô để hiển thị lại, trong thời điểm đó ô được hiển thị không có hoạt ảnh.
Tôi đang thiếu gì ở đây? Có cách nào tốt hơn để thực hiện điều này? Làm cách nào để khởi động lại hoạt ảnh sau khi xem bảng sử dụng lại ô?
Tôi nghĩ điều quan trọng cần lưu ý là theo thiết kế giao diện người dùng của tôi, chỉ một ô sẽ có hoạt ảnh.
Cảm ơn.
Yeah, tha đã giúp rất nhiều, cảm ơn!. Nhưng vẫn không hoạt động trong một số trường hợp khác như phương thức 'reloadData'. Nhờ phản hồi của bạn và cũng sử dụng phương thức 'tableView: didEndDisplayingCell: forRowAtIndexPath:' để dừng hoạt ảnh vì có vẻ như nó cũng gây ra sự cố. –
Trong willDisplayCell: nếu bạn đang làm hoạt hình chế độ xem trong 1,2 giây sau khi thời lượng này là trên hoạt ảnh sẽ tự động dừng, thực sự tôi không hiểu việc sử dụng phương thức tableView: didEndDisplayingCell: forRowAtIndexPath:. Tôi cần phải biết sử dụng nó, bạn có thể vui lòng elobrate một chút về nó, cảm ơn. –
Tôi đang sử dụng nó để xóa hoạt ảnh khỏi chế độ xem vì tôi nhận ra rằng nếu hoạt ảnh bị gián đoạn, nó sẽ không bắt đầu lại. –