2012-09-11 21 views
5

Tôi đã tự lái bản thân mình qua cái này. Nó có thể là một trong những điều mà tôi cần phải lùi lại một bước và tìm ra cách đơn giản nhất để thực hiện điều này. Không thể tìm thấy bất cứ điều gì về điều này hoặc. Tôi google-fu'd heck ra khỏi này.Kéo để hiển thị menu navBar ẩn trong iOS? như đã thấy trong GetPocket App

Trong ứng dụng bỏ túi khi bạn kéo xuống một trình đơn, hãy tự hiển thị giống như thanh công cụ tìm kiếm. Trong trường hợp này, thanh giả khi bạn kéo nó qua nửa chừng của nó nếu bạn thả nó cho thấy lò xo vào vị trí. Nếu nó được phát hành trước khi nửa chừng thanh sẽ chụp lại và ẩn. Như đã trình bày ở đây

enter image description here

Trong trường hợp của tôi, tôi đã cố gắng để tái tạo này không có may mắn. Trong trường hợp của tôi, tôi có một UITextView bên trong một khung nhìn UIViewController. Tôi nghĩ tôi đã sai rồi.

Tôi có thể làm cho nó hoạt động với một UIScrollView ẩn bằng cách bắt đầu với nó offscreen và sau đó khi tôi nhấn một nút UIScrollView cho thấy chính nó. Vấn đề là phương pháp này bao gồm tất cả mọi thứ vì vậy tôi sẽ phải thay đổi kích thước và chuyển tiếp một loạt các khung nhìn. Đây có phải là trong một UITableView có thể? Tôi muốn nó là một hành động kéo mặc dù chỉ muốn đặt một số TextStrings/Nhãn trong thanh này.

Cảm ơn bạn trước.

+0

Đây có thể là khá tốt .. Quan tâm đến việc một cách để làm điều này nếu bạn đã bao giờ tìm thấy một giải pháp! – rdurand

+0

@rdurand Tôi đã nghĩ đến việc biến thư viện đầu tiên này thành chia sẻ. Tôi thề tôi nhìn khắp nơi và tôi cứ tiếp tục tìm Pull to Refresh. Giống như một triệu cách khác nhau để kéo để làm mới. – retrospct

+0

Vâng, hãy cho tôi biết nếu bạn chia sẻ nó một ngày nào đó (không biết làm thế nào, lol), tôi rất muốn xem nó! – rdurand

Trả lời

6

Cảm thấy như bạn cần một UIScrollView (hoặc UITableView) và để đặt menu bạn muốn tiết lộ ở phía trên (ví dụ như trong tiêu đề xem bảng) và sau đó nhận được các cuộc gọi lại đại biểu để cuộn.

UIScrollViewDelegate 
- (void)scrollViewDidScroll:(UIScrollView *)scrollView 

Bạn cũng có thể cần phải xem cho một số các callbacks đại biểu kéo

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView 
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate 

Bạn ban đầu có thể ẩn menu bằng cách thiết lập các nội dung bù đắp cho chiều cao của menu, sau đó bắt callbacks đại biểu để cuộn và, nếu cuộn đã vượt quá một nửa kích thước của menu, hãy đặt độ lệch nội dung bằng hoạt ảnh.

- (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated 
+0

cảm ơn bạn đã trả lời. Tôi nghĩ rằng đó là nơi tôi đã được treo lên trên, bù đắp nội dung. Tôi nên đọc tài liệu tham khảo UIScrollViewDelegate chặt chẽ hơn. Khi tôi lùi lại một bước và làm một số việc vặt quanh nhà, tôi nhận ra rằng có một bất lợi cho menu ẩn này. Mặc dù nó rất kiểu dáng đẹp trong trường hợp của tôi, nơi người dùng sẽ gõ một lượng dồi dào văn bản vào cuộn UITextView tất cả các cách để trên cùng để truy cập vào menu này sẽ không có ý nghĩa. Ngoài ra nếu tôi đã có nó autoscroll người dùng sẽ mất vị trí của mình. cổ vũ! – retrospct

1

Nếu tôi hiểu đúng mục tiêu của bạn, bạn không cần chế độ xem cuộn.

Điều tôi sẽ làm là có một đơn giản UIView chứa tất cả những thứ bạn cần và đặt nó bên ngoài khu vực hiển thị. Đây sẽ là chế độ xem kéo xuống của bạn. Sau đó, thêm UIPanGestureRecognizer vào chế độ xem trong số UIViewController và sử dụng nó để theo dõi chuyển động của ngón tay và cập nhật khung của chế độ xem kéo xuống tương ứng. Sau đó, trong phương pháp cập nhật này, bạn chỉ cần kiểm tra xem vị trí đã vượt qua một số ngưỡng và nếu như vậy bạn cho phép chế độ xem kéo xuống đến vị trí cuối cùng của nó (sử dụng hoạt ảnh tất nhiên).

Nếu bạn không quen với các UIPanGestureRecognizer có một hướng dẫn thực sự tốt ở đây: http://www.raywenderlich.com/6567/uigesturerecognizer-tutorial-in-ios-5-pinches-pans-and-more

+0

cảm ơn bạn. Tôi có thể thử thực hiện tương tự như thế này. Tôi vẫn chưa tìm thấy thời gian để triển khai các đề xuất này vào mã của mình vì tôi đã làm việc trên các khía cạnh khác của ứng dụng. – retrospct

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