Tôi muốn ẩn cả hai thanh khi cuộn xuống trên iPhone của mình. Khi tôi cuộn lên, chúng sẽ xuất hiện trở lại .. Làm thế nào tôi có thể xử lý điều này?Xcode/iOS: Cách ẩn Navigation- AND ToolBar khi cuộn xuống?
Trả lời
Câu trả lời được chấp nhận không phù hợp với tôi, vì scrollViewWillBeginScroll:
không phải là phương thức ủy nhiệm.
Thay vào đó tôi làm
-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
[[NSNotificationCenter defaultCenter] postNotificationName:@"BarsShouldHide" object:self];
}
-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView
willDecelerate:(BOOL)decelerate
{
if(!decelerate)
[[NSNotificationCenter defaultCenter] postNotificationName:@"BarsShouldUnhide"
object:self];
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
[[NSNotificationCenter defaultCenter] postNotificationName:@"BarsShouldUnhide"
object:self];
}
Anywhere trong các đối tượng ứng dụng có thể nghe được thông báo này, như
- (void)viewDidLoad
{
[super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserverForName:@"BarsShouldHide"
object:nil
queue:nil
usingBlock:^(NSNotification *note) {
//hide tab bar with animation;
}];
[[NSNotificationCenter defaultCenter] addObserverForName:@"BarsShouldUnhide"
object:nil
queue:nil
usingBlock:^(NSNotification *note) {
//Unhide tab bar with animation;
}];
}
Mã này sẽ ẩn các thanh cuộn cho bất kỳ. nếu bạn muốn chỉ có trên xuống, cùng một thủ thuật locationOffset
như trong câu trả lời được chấp nhận sẽ hoạt động.
- (void)scrollViewWillBeginScroll :(UIScrollView *)scrollView {
if (scrollView.contentOffset.y < lastOffset.y) {
[toolBar setHidden:YES];
[[[self navigationController] navigationBar] setHidden:YES];
} else{
// unhide
}
}
- (void)scrollViewDidScroll :(UIScrollView *)scrollView {
/// blah blah
lastOffset = scrollView.contentOffset;
}
Note: lastOffset
là một CGPoint
và nó đi trong tập tin tiêu đề của bạn: @Interface
.
Đây là giải pháp của tôi trong Swift; nó hoạt động tuyệt đẹp
func scrollViewDidScroll(scrollView: UIScrollView) {
let navController: UINavigationController = self.navigationController!
if self.collectionView.panGestureRecognizer.translationInView(self.view).y <= 0.0 {
defaultCenter.postNotificationName("stuffShouldHide", object: self)
} else {
defaultCenter.postNotificationName("stuffShouldUnhide", object: self)
}
}
Bạn có thể kiểm tra điều này, có sẵn từ iOS8, tôi nghĩ rằng đây là điều ngược lại những gì bạn đang tìm kiếm ... nhưng giá trị kiểm tra vì nó là một cái gì đó tiêu chuẩn và đây là cách Safari hoạt động.
Swift
var hidesBarsOnSwipe: Bool
Objective-C
@property (nonatomic, readwrite, chuyển nhượng) BOOL hidesBarsOnSwipe Thảo luận
Khi thuộc tính này được thiết lập để YES , một lần vuốt lên sẽ ẩn thanh điều hướng và thanh công cụ. Một lần vuốt xuống sẽ hiển thị lại cả hai thanh. Nếu thanh công cụ không có bất kỳ mục nào, nó vẫn hiển thị ngay cả sau khi vuốt . Giá trị mặc định của thuộc tính này là NO.
- 1. Làm thế nào để ẩn/thanh chương nav khi người dùng cuộn lên/xuống
- 2. UITableView -> Cách tải thêm mục nhập khi cuộn xuống?
- 3. Cách tải disqus khi cuộn xuống cuối trang?
- 4. Ẩn UISearchBar cho đến khi người dùng cuộn?
- 5. Cuộn NSTextView xuống dưới
- 6. cách cuộn xuống một trang web
- 7. RelativeLayout - Cuộn xuống
- 8. Giữ cuộn xuống dưới
- 9. tự động cuộn xuống dưới khi tự động tràn
- 10. Chụp sự kiện "cuộn xuống"?
- 11. Vị trí cuộn bị mất khi ẩn div
- 12. Bắt sự kiện cuộn khi tràn: phần tử bị ẩn
- 13. Tải hình ảnh khi người dùng cuộn xuống trang -
- 14. Xác định khi cuộn xuống cuối trang bằng Javascript
- 15. UITableView tự động cuộn xuống sau khi tải lạiData
- 16. Cuộn xuống cuối C# TextBox
- 17. Thay đổi lớp CSS sau khi cuộn 1000px xuống
- 18. Thay đổi tiêu đề khi bạn cuộn xuống (jQuery)
- 19. UITableview không hiển thị ô cuối cùng khi cuộn xuống
- 20. Ẩn thanh cuộn trong WebView
- 21. Thanh cuộn ẩn trừ khi trang đổi kích thước
- 22. Android WebBrowser cuộn xuống trang
- 23. Ẩn thanh cuộn của HorizontalScrollView
- 24. Ẩn thanh cuộn Trong DataGridView
- 25. Chế độ xem cuộn không cuộn xuống hoàn toàn
- 26. Cách ẩn thanh cuộn cho đến khi cần thiết rồi xóa nếu không cần
- 27. Tắt di chuyển xuống khi nhấn phím cách trên firefox
- 28. Cuộn xuống cuối C# DataGridView
- 29. ẩn thanh cuộn scrollview android
- 30. Cuộn xuống trang tự động cho đến khi người dùng cuộn lên
Bạn đã cố gắng sử dụng 'setToolbarHidden: animated:' và 'setNavigationBarHidden: animated:' in 'scrollViewDidScroll:' khi giá trị x của 'contentOffset' tăng lên. – dasdom
Vui lòng sử dụng tiếng Anh tại đây. Đây là một nền tảng cho mọi người từ khắp nơi trên thế giới. Khi chúng tôi bắt đầu nói chuyện bằng tiếng Đức, rất nhiều người không thể theo kịp. Khi bạn cần lời khuyên bằng tiếng Đức, hãy gửi cho tôi một email. Tôi nghĩ, để tìm địa chỉ email của tôi không khó với thông tin bạn có thể tìm thấy trong tiểu sử của mình. – dasdom