Khi sử dụng UITableView, chúng tôi có thể tái sử dụng các ô của nó bằng các phương thức [[ UITableViewCell alloc] initWithStyle: reuseIdentifier:]
và [uiTableViewInstance dequeueReusableCellWithIdentifier:]
. Điều này giúp giữ cho bộ nhớ trong kiểm tra cho các bảng lớn như chỉ có một vài tế bào đang có trong xem tại một thời điểm nhất định.Làm cách nào để tái sử dụng/tái chế phần tử tùy chỉnh như uitableviewcell?
Tôi muốn tạo một UIScrollView
có nhiều bản xem trước. Chèn tất cả các bản xem trước chiếm rất nhiều bộ nhớ và thời gian ban đầu mà tôi muốn tránh. Apple API có cung cấp các cách để tái sử dụng các thành phần tùy chỉnh như vậy (một UIView hoặc một phân lớp của nó ở đây) giống như các khung nhìn tế bào bằng cách sử dụng một định danh?
Tôi sẽ tạo một tài khoản nếu không có API, nhưng có một số nghi ngờ về việc này. Ví dụ: đối với mỗi chế độ xem phụ mới, tôi sẽ đặt vị trí khung hình của nó, sau các chế độ xem ưu tiên. Làm thế nào tôi nên đi về việc cập nhật khung cho mỗi subview trong khi tái chế? Tôi có nên xóa và tải lại nội dung của mọi chế độ xem phụ khi nó được tái chế không? Tôi có nên thực hiện tất cả các tính toán này trong một chuỗi khác để tránh bị giật không? Trong tất cả, tôi muốn có một trải nghiệm cuộn trơn tru như trong UITableView với tất cả các công cụ tái sử dụng.
Đây là một mẫu mã mà tôi đã viết cho đến nay:
int numberOfPages = 0;
int pageWidth = 100;
int pageHeight = 100
UIScrollView *myScrollView = //allocate and initialize a scrollview
//set its size to 100 by 100 (width equal to pageWidth)
//set paging enabled for myScrollView
Thêm subviews để nó từ một phương pháp, đó được gọi là nhiều lần
- (void) appendSubViewToScrollView {
UIView *view = //allocate and initialize a view and dump data in it.
CGRect rect = view.frame;
rect.size.height = pageHeight;
rect.size.width = pageWidth;
rect.origin = CGPointMake(pageHeight * numberOfPages, 0);
view.frame = rect;
[myScrollView addSubview:view];
numberOfPages++;
[scrollView setContentSize:CGSizeMake(pageHeight * numberOfPages, pageWidth)];
[view release];
}
Edit:
Một số cái nhìn sâu sắc vào cách mà tableview và các tế bào của nó đạt được điều này đằng sau hậu trường sẽ hữu ích.
Cảm ơn bạn đã trả lời Viggio. Có một số mã liên quan đến điều này? Tôi có thể sử dụng một số tài liệu tham khảo. Và vâng tôi là một nhà phát triển đã đăng ký. Bạn có thể chỉ ra video có liên quan cho trường hợp này không? ("Khung ứng dụng"? Tôi sẽ xem phần còn lại lúc rảnh rỗi). Tôi cũng sẽ tải xuống mã mẫu. Có vẻ thú vị và hữu ích. – Sailesh
Hãy đánh dấu câu trả lời này là được chấp nhận với dấu kiểm (bên dưới mũi tên bỏ phiếu lên/xuống). – JoePasq
Thật không may là tôi không nhớ video giải thích kỹ thuật này là gì, nhưng tôi nhớ nó đã được giải thích bằng một bản demo. Có một video được gọi là "Thiết kế ứng dụng với chế độ xem cuộn" nhưng tôi không chắc chắn đó có phải là video phù hợp hay không, dù sao cũng đáng xem nó trong mọi trường hợp (nó giải thích một số kỹ thuật đẹp). trang chủ video WWDC bắt đầu tại đây: http://developer.apple.com/videos/wwdc/2010/ từ nơi bạn đăng nhập bằng tài khoản nhà phát triển của mình, sau đó bạn có thể mở iTunes và tải xuống hoặc chỉ xem video. Một trong những tôi đang đề cập đến là 104 ("Thiết kế ứng dụng với Scroll Views"). – viggio24