Chciałbym ukryć oba paski po przewijaniu w dół na moim iPhonie. Kiedy przewijam w górę, powinny pojawić się ponownie. Jak mogę sobie z tym poradzić?Xcode/iOS: jak ukryć pasek nawigacyjny i pasek narzędzi po przewinięciu w dół?
Odpowiedz
Przyjęta odpowiedź nie działa dla mnie, ponieważ scrollViewWillBeginScroll:
nie jest metodą delegowaną.
Zamiast zrobić
-(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];
}
Gdziekolwiek w obiektach aplikacja może słuchać tego zgłoszenia, jak
- (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;
}];
}
Ten kod będzie ukryć paski dla każdego zwoju. jeśli chcesz mieć tylko na dole, ta sama sztuczka locationOffset
jak w zaakceptowanej odpowiedzi powinna zadziałać.
- (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;
}
Uwaga: lastOffset
jest CGPoint
i idzie w pliku nagłówka: @Interface
.
Oto moje rozwiązanie w Swift; to działa pięknie
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)
}
}
Można to sprawdzić, dostępny z systemów iOS 8, myślę, że to jest odwrotnością tego, co szukasz ... ale warto sprawdzić, jak to jest coś i to jest standardowe jak Safari działa.
Swift
var hidesBarsOnSwipe: Bool
Cel C
@property (nonatomic, ReadWrite przypisać) Bool hidesBarsOnSwipe Dyskusja
Gdy ta jest ustawiona na TAK , przesunięcie w górę ukrywa pasek nawigacji i pasek narzędzi. Przesunięcie w dół pokazuje ponownie oba paski. Jeśli pasek narzędzi nie ma żadnych elementów, pozostaje widoczny nawet po przesunięciu . Domyślną wartością tej właściwości jest NIE.
- 1. Jak mogę naprawić pasek nawigacyjny bootstrapu po przewinięciu div?
- 2. Jak ukryć pasek akcji/pasek narzędzi podczas przewijania w dół w widoku WWW
- 3. android pasek narzędzi przycisk nawigacyjny id
- 4. Jak ukryć menu/pasek narzędzi gvim?
- 5. Jak ukryć pasek narzędzi po zwijaniu podczas recyklingu? Przeglądanie w dół
- 6. Jak ukryć pasek przewijania UICollectionView
- 7. Jak ukryć pasek nawigacyjny w iOS 7 specjalnie dla cocos2D?
- 8. Windows 7 Pasek zadań Pasek narzędzi lub pasek narzędzi
- 9. Pasek narzędzi i nawigacjaDrawer
- 10. Jak przekształcić pasek nawigacyjny i kontroler nawigacyjny w trybie poziomym
- 11. Jak ukryć pasek nawigacyjny bez utraty zdolności do cofania się?
- 12. CKEditor 4 Inline: jak ukryć pasek narzędzi na żądanie?
- 13. Pasek nawigacyjny znika po wpisaniu w polu tekstowym UISearchController
- 14. Modowe przejście, pasek nawigacyjny znika
- 15. Połączyć pasek narzędzi i pasek tytułu w Qt
- 16. Pasek nawigacyjny z wieloma przyciskami
- 17. Pasek nawigacyjny UI Tytuł obrazu
- 18. Jak ukryć pasek narzędzi kontrolera UINavigation przy użyciu storyboardów?
- 19. Modyfikuj pasek nawigacyjny twitter bootstrap
- 20. Pasek nawigacyjny Bootstrap z angularjs
- 21. ios 11 przezroczysty pasek nawigacyjny
- 22. Jak ukryć zrobiony przycisk i pasek wyszukiwania w przeglądarce SafariViewController
- 23. Pasek narzędzi Android niewidoczny
- 24. Whatsapp jak Zwijany pasek narzędzi
- 25. Pasek stanu nie ma tego samego koloru co pasek nawigacyjny
- 26. Bootstrap 3: Jak zrobić wyśrodkowany pasek nawigacyjny
- 27. Jak ukryć pasek postępu w systemie Android?
- 28. Pasek statusu nakładki na pasek nawigacyjny ios 11
- 29. Zwijany pasek narzędzi i zagnieżdżony widok nie płynnie przewijający
- 30. Treść idąca w tył Pasek nawigacyjny
Czy próbowałeś użyć 'setToolbarHidden: animated:' i 'setNavigationBarHidden: animated:' w 'scrollViewDidScroll:', gdy wzrasta wartość x 'contentOffset'. – dasdom
Proszę używać języka angielskiego tutaj. To platforma dla ludzi z całego świata. Kiedy zaczynamy mówić po niemiecku, wielu ludzi nie może naśladować. Gdy potrzebujesz porady w języku niemieckim wyślij mi e-mail. Myślę, że aby znaleźć mój adres e-mail nie powinno być trudne z informacjami, które można znaleźć w moim profilu. – dasdom