2011-01-07 43 views
5

Hiện tại tôi thiết lập hầu hết giao diện người dùng của mình theo lập trình. Có hai cách sắp xếp các quan điểm đó thuộc về một màn hình (bổ sung để sử dụng ngòi):Thiết lập chế độ xem phức tạp trong UIVIew hoặc UIViewController? (Quyết định thiết kế)

  • Trong bộ điều khiển xem, quản lý tất cả các quan điểm (đó là một bộ điều khiển xem!)
  • Thực hiện một phân lớp tùy chỉnh UIView và chỉ nối dây điện lên trên bộ điều khiển

Tôi biết cả hai sẽ hoạt động, nhưng trong trường hợp nào bạn chọn giải pháp nào?

Ngoài ra, đối với biến thể đầu tiên, có một tùy chọn để thực hiện thiết lập trong viewDidLoad và thêm chế độ xem vào self.view hoặc tạo chế độ xem vùng chứa và thêm tất cả chế độ xem trong loadView. Bất kỳ lời khuyên tốt nào ở đây cũng sẽ được đánh giá cao.

Biến thể thứ hai đến gần với việc sử dụng ngòi bút, khi bạn đặt chế độ xem hoàn chỉnh làm chế độ xem của bộ điều khiển.

Không có ý định bắt đầu một cuộc chiến tôn giáo ở đây, nhưng tìm kiếm các đối số cho cả hai cách tiếp cận.

Trả lời

4

Tôi có thể nghĩ đến một vài tiêu chí mà tôi sẽ sử dụng để chọn một tùy chọn này hoặc tùy chọn khác.

Nếu tập hợp các chế độ xem là hoặc có thể là thành phần có thể sử dụng lại được hiển thị trên nhiều màn hình, tôi sẽ ưu tiên tạo lớp con UIView.

Nếu trình điều khiển chế độ xem cần truy cập trực tiếp vào một số chế độ xem, tôi sẽ tạo chúng trong bộ điều khiển. Tôi cố gắng để làm cho UIView tùy chỉnh các lớp học container mờ nên bộ điều khiển của họ chỉ cần tương tác với khung nhìn cha mẹ, không đào xung quanh thông qua các quan điểm con của nó.

Nếu tập hợp chế độ xem không thể trình bày giao dịch API với một khái niệm, ví dụ: nếu hệ thống phân cấp chế độ xem chỉ tồn tại để đặt chỉ mục z của chế độ xem chính xác và những lượt xem đó đối phó với hiển thị dữ liệu không liên quan tạo chúng trong bộ điều khiển. Lớp con UIView phải chịu trách nhiệm chỉ hiển thị một tập hợp dữ liệu đơn nhất hoặc quản lý tập hợp các chế độ xem phụ theo cách nhất quán.

Nếu lượt xem cần được định vị liên quan đến các chế độ xem bên ngoài hệ thống phân cấp của chúng, tôi sẽ ưu tiên xác định chúng trong bộ điều khiển.

1

Hãy suy nghĩ MVC (Phương thức, Chế độ xem, Bộ điều khiển) trong trường hợp này.

Một lựa chọn tốt là tạo một lớp UIView riêng biệt và đặt chế độ xem UIViewController thành dạng này (hoặc thêm nó dưới dạng chế độ xem con trỏ), sau đó sử dụng phương thức ủy nhiệm cho bất kỳ tương tác người dùng nào từ lớp con UIView của bạn tới bộ điều khiển. Tuy nhiên, nếu bạn chỉ đang có kế hoạch để có một cái nhìn trong giao diện điều khiển của bạn (vì vậy không có quan điểm trao đổi, lật, vv) bạn về cơ bản chỉ có thể sử dụng quan điểm của bộ điều khiển cho tất cả giao diện người dùng. Về đầu trang

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