2011-02-08 18 views
5

Bạn có dễ dàng viết mã sau đây không?Vuốt để thay đổi giao diện

Tôi có chế độ xem bảng và khi người dùng chọn một ô xem chế độ xem chi tiết. Tôi muốn cho phép người dùng điều hướng trong các mục/chi tiết-chế độ xem thể hiện các mục trong bảng xem bằng cách vuốt sang trái và sang phải, hoạt động theo cách tương tự như ví dụ: màn hình chính của iphone (ví dụ: trong khi vuốt, một trang đang di chuyển khỏi màn hình và trang tiếp theo xuất hiện).

Tôi đã thấy điều này được triển khai trong MobileRSS-APP, do đó, có thể, nhưng tôi chỉ có một thời gian khó tìm ra cách để làm điều đó đúng cách.

Cảm ơn một triệu trước! Tôi vẫn đang cố gắng tìm bàn chân của mình bằng cacao-touch ...

+1

+1, tôi cũng quan tâm đến việc tìm hiểu cách hoạt động của tính năng này. Ứng dụng Reeder thực hiện điều đó bằng cách cuộn lên và xuống, vì vậy có lẽ EGOTableviewPullRefresh có thể là một nơi tốt để bắt đầu nghiên cứu về các kỹ thuật tương tự. – phi

+0

Dựa trên nhận xét của tôi, tôi đã tìm kiếm (tôi nên tìm kiếm trước đây :) và có một bài đăng trên blog trong Bí quyết iDev mô tả chính xác những gì tôi muốn: http: // idevrecipes.com/2010/12/28/how-does-the-reeder-iphone-app-swipe-up-and-down-between-articles/ – phi

+0

Cảm ơn Irene, điều đó cũng rất hữu ích. Câu trả lời thứ hai dường như theo hướng tôi đang nghĩ đến, nhưng ví dụ này cho tôi câu trả lời cho một câu hỏi khác, cho phép kéo xuống để quay lại danh sách (thay cho nút quay lại) –

Trả lời

2

Đây không phải là một bí mật, Apple cung cấp mã mẫu gọi là PageControl thể hiện chính xác những gì bạn muốn đạt được:

Ứng dụng này chủ yếu thể hiện sử dụng các chức năng phân trang UIScrollView để sử dụng cuộn ngang như một cơ chế điều hướng giữa các trang nội dung khác nhau.

Tôi đã triển khai nó trong many of my apps.

+0

Xem nhanh là những gì tôi mong đợi hình thành PageControl, nhưng tôi đã không có cơ hội để có một cái nhìn sâu sắc. Nhưng điều đó có nghĩa là thay vì tải XIB xem chi tiết khi một ô được chọn mà tôi tải một ViewController mới và chuyển tham chiếu đến ô đã chọn và có xây dựng chi tiết (và trong khởi tạo cũng tải chi tiết bên cạnh nó)? –

+0

"Chế độ xem chi tiết" là chế độ xem cuộn chứa mọi chế độ xem chi tiết, bạn tải nó bằng chỉ mục, và trong khi đó, tải các chế độ xem khác một cách lười biếng để khi người dùng vuốt, các chế độ xem khác sẵn sàng hiển thị. Hãy xem mã mẫu, và bạn sẽ thấy những gì bạn phải làm. Nó không chứa nhiều mã. –

2

Màn hình chính của iPhone (bàn đạp) hoạt động với chế độ xem cuộn được đặt để bật phân trang.

UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0,0,self.view.frame.size.width, self.view.frame.size.height)]; 
[scrollView setPagingEnabled:YES]; 

Sau đó, cho phép nói có hai trang ứng dụng để vuốt qua - bạn thiết lập kích thước nội dung của xem di chuyển đến hai lần chiều rộng của quan điểm của bạn:

[scrollView setContentSize:CGSizeMake(self.view.frame.size.width*2, self.view.frame.size.height)]; 

và thats làm thế nào mà được thực hiện . :) Tôi không biết nếu nó giống nhau cho MobileRSS-APP.

Những điều cần ghi nhớ:

  1. Đây không phải là cách mặc định một cái nhìn bảng hoạt động. Bạn có thể khiến ứng dụng của bạn từ chối bởi táo. Chế độ xem bảng có nghĩa là hoạt động bằng cách nhấp vào.

  2. Bạn có thể sao chép chức năng mà không cần sử dụng chế độ xem cuộn bằng cách sử dụng các phương pháp chạm và trình điều khiển điều hướng. Một hướng dẫn tốt mô tả làm thế nào để phát hiện trượt trên quan điểm của bạn là ở đây: http://www.dosomethinghere.com/2009/07/23/simple-swipe-detection-in-the-iphone-sdk/

Trong phương pháp cuối cùng trong hướng dẫn mà nơi có NSLog ("swipe đúng"), bạn có thể thay thế mà với [self.navigationController popViewControllerAnimated:YES] đó sẽ tái tạo bức xúc nút "quay lại" trong thanh điều hướng.

Tôi không biết bạn có thể làm gì để vuốt sang trái mặc dù ..... nếu bạn muốn thực hiện điều này trên màn hình bảng, bạn sẽ phải thực hiện một số phép toán phức tạp xác định khoảng cách xem bảng đã được cuộn . Hoặc bạn có thể kiểm tra các sự kiện cảm ứng trên chính các tế bào, nhưng đó là điều mà bạn phải xem xét. :)

+0

Cảm ơn câu trả lời của bạn! Về nhận xét của bạn về hành vi mặc định của bảng, tôi nghĩ Luuk muốn cuộn cho chế độ xem chi tiết, chứ không phải cho chế độ xem bảng, vì vậy nó nghe có vẻ an toàn với tôi .. – phi