Czy istnieje sposób na ukrycie wskaźników przewijania w UIScrollView?

133

Mam przypadek użycia, w którym te wskaźniki zakłócają interakcję użytkownika. Czy mogę utworzyć podklasę i zastąpić metodę lub zrobić coś podobnego, aby usunąć wskaźniki przewijania z widoku przewijania?

Dzięki
źródło

Odpowiedzi:

274

Ustaw właściwości showsHorizontalScrollIndicatori showsVerticalScrollIndicatorwłaściwości UIScrollViewto NO.

[tableView setShowsHorizontalScrollIndicator:NO];
[tableView setShowsVerticalScrollIndicator:NO];

Dokumentacja - UIScrollView

retainCount
źródło
Jak dowiedziałem się z Dokumentów, możesz nawet używać go bezpośrednio do przewijania widoku! [scrollview setShowsHorizontalScrollIndicator: NO]; Podziękowania dla @retainCount
Rajal
1
Od iOS 11 powinno to być wywołane w viewWillAppear, nie działa, jeśli zostanie wywołane w
viewDidLoad
63

// Dla UITableView - Objective-C

tbl.showsHorizontalScrollIndicator = NO;
tbl.showsVerticalScrollIndicator = NO;

// Dla UITableView - SWIFT 3.0

tbl.showsHorizontalScrollIndicator = false
tbl.showsVerticalScrollIndicator = false

// Dla UIScrollView - Objective-C

scrl.showsHorizontalScrollIndicator = NO;
scrl.showsVerticalScrollIndicator = NO;

// W przypadku UIScrollView - SWIFT

scrl.showsHorizontalScrollIndicator = false
scrl.showsVerticalScrollIndicator = false

Zmień z XIB lub storyboardu

wprowadź opis obrazu tutaj

Bhavesh Nayi
źródło
tableView również ma do tego pola wyboru - pracuję z xCode 11
Andy Weinstein
17

Dla tych, którzy chcą to zrobić w Swift.

self.tableView.showsHorizontalScrollIndicator = false
self.tableView.showsVerticalScrollIndicator = false
davidrayowens
źródło
8

Dla UIScrollView w Swift

scrollView?.showsHorizontalScrollIndicator = false
scrollView?.showsVerticalScrollIndicator = false
mattyU
źródło
4

Oto Twoje UITableViewwłaściwości przewijania:

[YourTableView setShowsHorizontalScrollIndicator:NO];
[YourTableView setShowsVerticalScrollIndicator:NO];

Oto Twoje UIScrollViewwłaściwości przewijania:

[YourScroll setShowsHorizontalScrollIndicator:NO];
[YourScroll setShowsVerticalScrollIndicator:NO];
Darshan Kunjadiya
źródło
4

Swift 3.0rozszerzenie dla UIScrollViewi UITableView:

import Foundation

extension UIScrollView {
    func hideIndicators() {
        showsHorizontalScrollIndicator = false
        showsVerticalScrollIndicator = false
    }
}
Roman Barzyczak
źródło
2
Dlaczego do diabła używasz rozszerzenia? Komplikujesz sprawę bezużytecznymi liniami kodu dla ludzi, którzy próbują się uczyć, kiedy prosty widok.showsHorizontalScrollIndicator = false zadziała…
petaire
2
@petaire - Musisz się uspokoić lol. Naprawdę podoba mi się to rozszerzenie.
quemeful
Rozszerzenia są na to zbyt przesadne, użyj tych ustawień bezpośrednio.
Pedro Paulo Amorim
0

Żadne odpowiedzi nie pomogły, ponieważ za każdym razem wyświetlany jest pierścień wskaźników, ale rozwiązuję problem za pomocą NSStoryboard.

NSCollectionView mają diagram;

Scroll View - Collection View then Clip View then Scroller (vertical) & Scroller (Horizontal)

wprowadź opis obrazu tutaj

Kliknij dowolny obiekt Scroller, a następnie Attributes Inspectorustaw Focus Ringwłaściwość na None. Jeśli nie ustawiłeś tego, możesz mieć problem, gdy użytkownicy zmienią się Appearancemiędzy Darka Light.

elia
źródło