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?

Odpowiedzi:


274

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

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

Dokumentacja - UIScrollView


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


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

8

Dla UIScrollView w Swift

scrollView?.showsHorizontalScrollIndicator = false
scrollView?.showsVerticalScrollIndicator = false

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];

4

Swift 3.0rozszerzenie dla UIScrollViewi UITableView:

import Foundation

extension UIScrollView {
    func hideIndicators() {
        showsHorizontalScrollIndicator = false
        showsVerticalScrollIndicator = false
    }
}

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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.