2014-04-08 16 views
10

Trong ứng dụng của tôi, tôi nên tạo chế độ xem với một loto thông tin; những thông tin được chia thành 4 phần, mỗi phần có thể chứa văn bản, hình ảnh danh sách ecc ...IOS: chọn UIScrollView hoặc UITableView

đây là một ví dụ tàn bạo ...

enter image description here

Bây giờ tôi không rõ ràng với những gì loại của giải pháp để áp dụng.

Theo ý kiến ​​của tôi, một cuộn cuộn lớn khó sắp xếp. Và một bảng xem lớn với phần là phức tạp để tổ chức với mã ... Ý tưởng của bạn là gì?

+0

Chắc chắn xem bảng ... vấn đề bộ nhớ –

+0

bảngView sẽ phù hợp hơn cho việc này – meda

+0

Xem chỉnh sửa của tôi về 'UICollectionView' –

Trả lời

4

Bạn nên đi với UITABLEVIEW, dễ quản lý dễ hiểu, hơn tái sử dụng và quản lý bộ nhớ tốt

Nếu bạn có nhiều nội dung để cuộn qua, UITableView có thể giúp bạn giảm mức sử dụng bộ nhớ.

Khi một ô cuộn ra khỏi tầm nhìn, nó sẽ bị xóa khỏi chế độ xem và được giữ xung quanh UITableView để sử dụng sau này (qua -dequeueReusableCellWithIdentifier:). Nếu bạn chạy thấp trên bộ nhớ sau đó tôi tin rằng những quan điểm vô hình (UITableViewCells) sẽ được phát hành. Điều này về cơ bản có nghĩa là ứng dụng của bạn sẽ chỉ giữ các chế độ xem trong bộ nhớ thực sự hiển thị. Nhiều hơn sẽ được lưu trữ, nhưng có thể được thanh lọc bất cứ lúc nào nếu cần thiết.

Nếu bạn hiển thị nhiều dữ liệu và chỉ cần thêm tất cả vào một số UIScrollView, nó sẽ có khả năng sử dụng nhiều bộ nhớ hơn nếu bạn sử dụng UITableView. Bạn có thể phải triển khai một cơ chế tương tự như những gì UITableView thực hiện để loại bỏ (và có khả năng giải phóng) các khung nhìn vô hình.

Vì vậy, về cơ bản bạn có thể đạt được hiệu quả tương tự, nhưng UITableView thực hiện rất nhiều công việc đó cho bạn.

Nếu bạn hiển thị nhiều dữ liệu (có thể nhiều hơn khoảng hai màn hình đầy đủ), tôi muốn nghiêng về phía bằng cách sử dụng UITableView.

12

UITableView được tối ưu hóa cho các ô "có thể sử dụng lại", thích hợp để cuộn trong danh sách dài. Một lợi ích khác của việc sử dụng một UITableView, như những người khác được đề xuất, là nó chỉ khởi tạo các ô hiển thị, do đó mức tiêu thụ bộ nhớ bị giảm.

Trong trường hợp của bạn, vì nội dung của bạn trông cụ thể và không lặp đi lặp lại, tôi khuyên bạn nên sử dụng đơn giản UIScrollView dễ sử dụng hơn. (UITableView thừa hưởng từ UIScrollView btw)

Nếu bộ nhớ/hiệu suất là một vấn đề, sau đó thích UITableView hoặc đơn giản là viết logic riêng của bạn để chỉ nhanh chóng quan điểm rằng có thể nhìn thấy (bằng cách sử dụng scrollOffset ví dụ)

EDIT:

Trên suy nghĩ thứ hai, trong trường hợp của bạn, UICollectionView chắc chắn là một ứng cử viên tốt hơn so với UITableView. Đặc biệt nếu bạn có kế hoạch một ngày nào đó để làm một cái gì đó giống như một bố trí 2 cột trên iPad ...

1

Loại điều này rất dễ tạo trong Trình tạo giao diện ngay với các ô tĩnh; bạn có thể bố trí toàn bộ giao diện một cách trực quan và thiết lập các cửa hàng cho các ô (và/hoặc các phần phụ của chúng) để cấu hình nội dung trong bộ điều khiển khung nhìn của bạn.

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