2010-05-27 32 views
5

Điều gì khiến cho việc cuộn cuộn trở nên khó khăn trên UITableView khi hình ảnh được tải? Có phải vì họ cần phải được thêm vào dưới dạng bản phụ? Hay là vì hình ảnh cần được lưu trữ? Cả hai?Hiệu suất cuộn UITableView mượt mà

Trả lời

6

Vì chúng được thêm dưới dạng bản xem phụ và có rất nhiều công việc để vẽ các bản xem phụ khi chúng phải được tổng hợp. Thậm chí nhiều hơn như vậy khi Core Graphics hoặc Core Animation đang vẽ nhiều ô với các bản xem trước này.

Loren Brichter (atebits) giải thích nó tốt hơn:

Giống như trên Mac OS X, có hai hệ thống bản vẽ trên iPhone. Một là CoreGraphics, cái còn lại là LayerKit CoreAnimation. CoreGraphics hiện đang vẽ trên CPU, CoreAnimation sẽ vẽ bất cứ thứ gì mà nó nghĩ là nhanh nhất - rất có thể là GPU.

GPU trên iPhone ghét sự pha trộn, đó là lý do tại sao Apple khuyên bạn nên giữ càng nhiều lượt xem càng mờ càng tốt. Đôi khi bạn không có sự lựa chọn - nếu bạn có một nhãn trên một hình ảnh bạn buộc phải làm cho nhãn trong suốt nếu không bạn sẽ nhận được một khối xấu xí lớn xung quanh văn bản của bạn.

Nhà phát triển cần làm gì? Pre-pha trộn của khóa học ... với CoreGraphics vào quan điểm của riêng bạn. Nếu bạn pha trộn các công cụ của bạn với nhau thành một chế độ xem tĩnh theo yêu cầu (ví dụ: khi chế độ xem bảng di chuyển một ô trên màn hình), nó sẽ đắt hơn một chút so với khung đầu tiên, nhưng mỗi khung sau đó CoreAnimation chỉ xử lý một kết cấu ... mà nó thích. Nó còn hơn cả sự pha trộn nữa. Nếu bạn nghĩ về những gì đang xảy ra trong quá trình rút tiền, có một lượt xem lớn trên mỗi ô bảng là một chiến thắng lớn vì CoreAnimation sẽ chỉ chạm vào một pixel nhất định trên màn hình một lần thay vì nhiều lần (có khả năng, tùy thuộc vào mức độ trùng lặp của bạn) xem hệ thống phân cấp đã có).

+0

Liên kết đó dường như bị lỗi: (Tôi có thể đã sai khi tôi đang ở trên mạng riêng – GoodSp33d

+1

@ GoodSp33d: Bạn nói đúng, atebits.com đã ngừng hoạt động trong một số năm. Điều tốt được lưu trữ; – BoltClock

0

Thành thật mà nói, tôi không chắc chắn nên trả lời gì.

Những gì tôi biết, đó là khi tôi có một thực sự "nặng" UITableView, và cần nó để cuộn nhanh, tôi sử dụng phương pháp này từ tác giả của Tweetie:

http://blog.atebits.com/2008/12/fast-scrolling-in-tweetie-with-uitableview/

Không bao giờ tìm thấy một tốt hơn cách này hơn.

+0

vui lòng không thêm liên kết vào ứng dụng của bạn hoặc chữ ký cho câu trả lời của bạn – iwasrobbed

+0

Cảm ơn bạn đã dành thời gian để thực hiện yêu cầu đó. Tôi rất vui lòng xóa chữ ký của tôi. – camilo

Các vấn đề liên quan