2012-03-02 39 views
11

Làm cách nào để tạo thanh điều hướng ẩn/ẩn hiện giống như những gì thú vị và nhiều ứng dụng khác đang thực hiện? Tôi biết ý tưởng cơ bản là sử dụng đại biểu UIScrollView và phát hiện xem tôi đang cuộn lên hay xuống và hiển thị thanh điều hướng dựa trên đó. Vì vậy, tôi cũng nên điều chỉnh chiều cao xem navcontroller nếu thanh nav bị ẩn? Cái này hoạt động ra sao?làm thế nào để tạo phong cách riêng biệt ẩn/ẩn thanh điều hướng/tab?

Trả lời

26

Tôi có một dự án mẫu nằm trên github thực hiện chính xác các Pinterest/piictu phong cách 'ẩn nội dung UINavigationController/UITabBarController'

https://github.com/tonymillion/ExpandingView

+2

Ví dụ tuyệt vời, cảm ơn người đàn ông! – codingrhythm

+1

tuyệt vời, nó hoạt động như một nét duyên dáng –

+0

Tôi đã tìm thấy rất dễ sử dụng thư viện: https://github.com/inamiy/YIFullScreenScroll – ilya

0

Tôi có thể thử tạo bộ điều khiển gốc của riêng mình bằng thanh cuộn làm chế độ xem chính và đặt chế độ xem của trình điều khiển điều hướng vào đó. Bạn không thể sử dụng thanh cuộn bên trong chế độ xem thanh điều hướng sau đó nhưng tôi tin rằng bạn không cần nó trong trường hợp này.

Nếu cách tiếp cận này không hoạt động, tôi có thể tạo bộ điều khiển của chính mình giống như giao diện điều khiển điều hướng.

6

Tôi đã thử https://github.com/tonymillion/ExpandingView và chạy vào một loạt các vấn đề.

Tôi đã kết thúc việc điều khiển điều hướng của riêng mình để có được tất cả các hình động được đồng bộ hóa và sử dụng mã scrollview này để tìm hiểu xem tôi có nên mở rộng hoặc hợp đồng hay không. iOS> = 5.0

- (void)scrollViewDidScroll:(UIScrollView *)scrollView { 
    MyCustomNavController* navController = (MyCustomNavController*)self.parentViewController; 
    if([scrollView.panGestureRecognizer translationInView:self.view].y < 0.0f) { 
     [navController setExpanded:YES animated:YES]; 
    } else if ([scrollView.panGestureRecognizer translationInView:self.view].y > 0.0f ) { 
     [navController setExpanded:NO animated:YES]; 
    } 

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