Tôi có một dự án có nút cho phép người dùng chuyển đổi giữa chế độ xem danh sách (UITableView
) và chế độ xem lưới (UICollectionView
) nhưng tôi không biết cách thực hiện.Cách chuyển UITableView và UICollectionView
Trả lời
Giả sử rằng bộ điều khiển của bạn có thuộc tính UITableView
tên là tableView
và thuộc tính UICollectionView
có tên collectionView
. Trong số viewDidLoad
bạn cần thêm chế độ xem bắt đầu. Giả sử đó là xem bảng:
- (void)viewDidLoad
{
self.tableView.frame = self.view.bounds;
[self.view addSubview:self.tableView];
}
Sau đó, trong nút gọi lại của bạn, trao đổi các quan điểm hiện:
- (void)buttonTapped:(id)sender
{
UIView *fromView, *toView;
if (self.tableView.superview == self.view)
{
fromView = self.tableView;
toView = self.collectionView;
}
else
{
fromView = self.collectionView;
toView = self.tableView;
}
[fromView removeFromSuperview];
toView.frame = self.view.bounds;
[self.view addSubview:toView];
}
Nếu bạn muốn có một hình ảnh động ưa thích, bạn có thể sử dụng +[UIView transitionFromView:toView:duration:options:completion:]
thay vì:
- (void)buttonTapped:(id)sender
{
UIView *fromView, *toView;
if (self.tableView.superview == self.view)
{
fromView = self.tableView;
toView = self.collectionView;
}
else
{
fromView = self.collectionView;
toView = self.tableView;
}
toView.frame = self.view.bounds;
[UIView transitionFromView:fromView
toView:toView
duration:0.25
options:UIViewAnimationTransitionFlipFromRight
completion:nil];
}
cảm ơn! Nhưng tôi có thể sử dụng ViewController nào? TableViewController hoặc CollectionViewController. Làm thế nào tôi có thể sử dụng TableViewDelegate và Datasource trong một lớp outsite (không ViewController)? –
Chỉ cần sử dụng UIViewController bình thường và thêm cả hai loại chế độ xem đó làm thuộc tính. Hoặc, nếu bạn muốn giữ logic cho hai khung nhìn riêng biệt, bạn có thể tạo một UITableViewController và một UICollectionViewController và sử dụng các khung nhìn của chúng thay vì các thuộc tính của bộ điều khiển chính. – Simon
Trong trường hợp quan điểm của bạn đã là một phần của cấu trúc phân cấp khung nhìn (ví dụ: bằng cách thêm vào xib/storyboard), bạn phải chuyển 'UIViewAnimationOptionShowHideTransitionViews' làm tham số tùy chọn trong phương thức' + transitionFromView: ToView: duration: options: completion: ' . – MrBr
Một cách khác để giải quyết vấn đề này là có một đơn UICollectionView
, trong đó bạn có thể chuyển đổi triển khai UICollectionViewFlowLayout
tùy thuộc vào chế độ bạn muốn.
Để chuyển đổi từ UITableView
thành UICollectionView
, có rất nhiều hướng dẫn trực tuyến, ví dụ: this.
- 1. Không thể chọn khi UICollectionView được lồng trong UITableVIew
- 2. Làm mới UICollectionview
- 3. di chuyển ngang UITableView
- 4. UITableView di chuyển đến ô
- 5. UITableView Di chuyển đến phần
- 6. UICollectionView tải thêm dữ liệu
- 7. subclassing UICollectionViewLayout và gán cho UICollectionView
- 8. UICollectionView - Chuyển đổi thu phóng như Lịch iOS7
- 9. Di chuyển nhanh trong Tweetie với UITableView
- 10. Khoảng cách UICollectionView giữa các ô?
- 11. UITableView không di chuyển đến ô
- 12. Phát hiện kéo hoặc kéo của UICollectionView
- 13. Cách cuộn UITableView vào bảngFooterView
- 14. UICollectionView trong UICollectionViewCell
- 15. Cách lấy chỉ mục đúng cách từ đường dẫn chỉ mục trong UICollectionView?
- 16. Dừng cuộn trong UICollectionView
- 17. phóng to toàn bộ UICollectionView
- 18. Ô UICollectionView biến mất
- 19. UICollectionView hiển thị các ô sai sau khi di chuyển - vấn đề dequeue?
- 20. iOS 7: insertItemsAtIndexPaths: cuộn UICollectionView
- 21. Đặt đường viền trong UICollectionView
- 22. UICollectionView: Một hàng hoặc cột
- 23. UICollectionView Cuộn đến một mục
- 24. Tạo giá sách bằng cách sử dụng UICollectionView
- 25. indexPath Giá trị của UICollectionView
- 26. UICollectionView phản hồi khi đang được cuộn?
- 27. UICollectionView - sao chép chức năng Photos.app
- 28. Ngăn UITableView di chuyển đến ô chứa textField
- 29. UITableView không cuộn sau khi chuyển sang iOS 7
- 30. UICollectionView registerCell - Các ô trống
Nó không phải là tiếng Anh rất kém nhưng nó hiện là một câu hỏi không tốt. Bạn đang mắc kẹt _exactly_ gì? Bạn đã cố gắng làm gì cho đến nay? –
Tôi xin lỗi @ nhưng tôi là người mới! –