2012-04-02 46 views
7

Thực tiễn tốt nhất để triển khai chế độ xem cuộn ngang với phân trang, với một bộ điều khiển chế độ xem trên mỗi trang là gì?Chế độ xem trang phân trang với bộ điều khiển chế độ xem trẻ em

Ví dụ PageControl vẫn là cách tốt nhất để triển khai điều này ngay bây giờ iOS5 có API để xem bộ chứa/bộ điều khiển xem không?

+0

Cách tiếp cận bạn đang sử dụng hiện nay là gì? Tôi sử dụng phương pháp thể hiện trong ví dụ của Apple PageControl.Nó hoạt động, nhưng vẫn còn một số tình huống mà lỗi xuất hiện: Rotation releated, có lẽ do thực tế là ScrollView không phải là một ViewController. – AlexWien

+0

Tôi đã sử dụng UIPageViewController với UIPageViewControllerTransitionStyleScroll, tôi chạy vào rất nhiều trường hợp cạnh thêm bộ điều khiển chế độ xem mới vào đầu và cuối của chế độ xem cuộn khiến việc thực hiện dễ dàng hơn nhiều so với phương pháp loại PageControl. – railwayparade

Trả lời

6

Tôi biết câu hỏi này hơi cũ, nhưng với iOS 6, UIPageViewController có thuộc tính kiểu chuyển đổi mới được gọi là UIPageViewControllerTransitionStyleScroll cho phép bạn sử dụng trình điều khiển trang cho trường hợp sử dụng giống như của bạn, với thao tác cuộn giữa các trang thay vì chuyển đổi curl trang theo phong cách iBooks.

Bạn cũng nên xem số video WWDC 2012 223 - Enhancing User Experience with Scroll Views nơi họ về cơ bản chuyển đổi ứng dụng cũ sử dụng phương pháp bạn mô tả sang UIPageViewController mới với chuyển đổi kiểu cuộn.

-1

Tôi nghĩ UIPageViewController có thể đi theo chiều ngang:

- (id)initWithTransitionStyle:(UIPageViewControllerTransitionStyle)style navigationOrientation:(UIPageViewControllerNavigationOrientation)navigationOrientation options:(NSDictionary *)options 

enum { 
    UIPageViewControllerNavigationOrientationHorizontal = 0, 
    UIPageViewControllerNavigationOrientationVertical = 1 
}; 
typedef NSInteger UIPageViewControllerNavigationOrientation; 

http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIPageViewControllerClassReferenceClassRef/UIPageViewControllerClassReference.html

+0

Cảm ơn phản hồi của bạn. UIPageViewController chỉ hỗ trợ chuyển trang khi di chuyển giữa các trang. Tôi đang tìm cách tốt nhất để cuộn theo chiều ngang giữa nhiều trang. Với một trang cho mỗi bộ điều khiển xem như ví dụ pagecontrol hiện – railwayparade

2

câu trả lời của tôi sẽ được rằng nó phụ thuộc vào mục tiêu của bạn. Nếu bạn muốn làm cho một ứng dụng hiệu quả nhất có thể, tôi sẽ chỉ sử dụng cách nó được thực hiện trong mã mẫu. Tôi đã sử dụng nó trước đây, và tôi sẽ làm điều đó một lần nữa.

Mặt khác, nếu mục tiêu của bạn là tìm hiểu về ngăn chặn bộ điều khiển chế độ xem, cách hoạt động và cách sử dụng nó, điều này có thể là một trường hợp tốt để dùng thử. Nếu bạn đi theo cách đó, đừng quên kiểm tra video WWDC "Triển khai UIViewController Containment" (https://developer.apple.com/videos/wwdc/2011/).

+0

Cảm ơn tôi đã xem các video WWDC, nó không phải là một trong những tốt nhất của Apple, rất khó hiểu. Video thảo luận về ngăn chứa UIViewController trong bối cảnh quản lý các phần khác nhau của màn hình, đó là một trường hợp khác với chế độ xem cuộn. Vấn đề với ví dụ kiểm soát trang là lỗi thời của nó. Không có storyboards vv – railwayparade

-1

Nếu bạn thêm chế độ xem Bộ điều khiển chế độ xem (myViewControllerOne.view) vào UIScrollView - và sau đó sắp xếp chúng một cách thích hợp để xuất hiện theo chiều ngang - khi người dùng tương tác với chế độ xem đó bên trong các phương thức xem cuộn trong Trình điều khiển chế độ xem sẽ được gọi. Bằng cách này, tôi có nghĩa là nếu bạn có MyViewControllerOne.view dưới dạng xem phụ bên trong khung nhìn cuộn của bạn, khi bạn cuộn đến 'trang' của dạng xem cuộn và nhấn nút phương thức đính kèm (IBAction v.v.) trong MyViewControllerOne sẽ được gọi là.

Điều này sẽ cung cấp cho bạn tất cả chức năng bạn cần, chẳng hạn như thêm phần tử giao diện người dùng, bảng, chế độ xem cuộn khác, v.v. Các yếu tố này sẽ được kiểm soát từ Trình điều khiển chế độ xem có nguồn gốc của chúng.

Hy vọng điều này sẽ hữu ích!

+0

Cảm ơn RachelD thats những gì tôi đã làm. Câu hỏi là nhiều hơn về thực hành tốt nhất là gì. Lưu ý thêm một khung nhìn bộ điều khiển chế độ xem vào hệ thống phân cấp của trình xem có thể có vấn đề. Xem http://blog.carbonfive.com/2011/03/09/abusing-uiviewcontrollers/ – railwayparade

+0

Đây không phải là cách thích hợp, bạn không bao giờ nên làm theo cách này! –

2

Xuất hiện thực hành tốt nhất khi iOS5 vẫn còn sử dụng cùng phương pháp như ví dụ về PageControl. Đó là một lớp điều khiển (lưu ý không phải là một bộ điều khiển xem). Với bộ điều khiển chế độ xem con cho mỗi trang.

Hiện tại không có cách nào tốt hơn để thực hiện chế độ xem cuộn trang bằng cách sử dụng các phương pháp ngăn chứa bộ điều khiển chế độ xem được bao gồm trong iOS5.

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