Gibt es eine Möglichkeit, die Bildlaufanzeigen in einer UIScrollView auszublenden?

133

Ich habe einen Anwendungsfall, in dem diese Indikatoren die Benutzerinteraktion stören. Kann ich eine Methode unterordnen und überschreiben oder etwas Ähnliches tun, um die Bildlaufanzeigen aus der Bildlaufansicht zu entfernen?

Vielen Dank
quelle

Antworten:

272

Setzen Sie die showsHorizontalScrollIndicatorund showsVerticalScrollIndicatorEigenschaften von UIScrollViewto NO.

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

Dokumentation - UIScrollView

keepCount
quelle
Wie aus Docs gelernt, können Sie es sogar direkt für die Bildlaufansicht verwenden! [scrollview setShowsHorizontalScrollIndicator: NO]; Vielen Dank an @retainCount
Rajal
1
Ab iOS 11 sollte dies in viewWillAppear aufgerufen werden. Es funktioniert nicht, wenn es in viewDidLoad
melvinto
60

// Für UITableView - Objective-C

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

// Für UITableView - SWIFT 3.0

tbl.showsHorizontalScrollIndicator = false
tbl.showsVerticalScrollIndicator = false

// Für UIScrollView - Objective-C

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

// Für UIScrollView - SWIFT

scrl.showsHorizontalScrollIndicator = false
scrl.showsVerticalScrollIndicator = false

Wechsel von XIB oder Storyboard

Geben Sie hier die Bildbeschreibung ein

Bhavesh Nayi
quelle
tableView hat auch Kontrollkästchen dafür - ich arbeite mit xCode 11
Andy Weinstein
16

Für diejenigen, die dies in Swift tun möchten.

self.tableView.showsHorizontalScrollIndicator = false
self.tableView.showsVerticalScrollIndicator = false
Davidrayowens
quelle
8

Für UIScrollView in Swift

scrollView?.showsHorizontalScrollIndicator = false
scrollView?.showsVerticalScrollIndicator = false
mattyU
quelle
4

Dies sind Ihre UITableViewBildlaufeigenschaften:

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

Dies sind Ihre UIScrollViewBildlaufeigenschaften:

[YourScroll setShowsHorizontalScrollIndicator:NO];
[YourScroll setShowsVerticalScrollIndicator:NO];
Darshan Kunjadiya
quelle
3

Swift 3.0Erweiterung für UIScrollViewund UITableView:

import Foundation

extension UIScrollView {
    func hideIndicators() {
        showsHorizontalScrollIndicator = false
        showsVerticalScrollIndicator = false
    }
}
Roman Barzyczak
quelle
2
Warum zum Teufel benutzt du eine Erweiterung? Sie komplizieren Dinge mit nutzlosen Codezeilen für Leute, die versuchen zu lernen, wenn eine einfache view.showsHorizontalScrollIndicator = false funktionieren würde ...
Petaire
2
@petaire - Du musst dich beruhigen lol. Ich mag diese Erweiterung wirklich sehr.
Quemeful
Erweiterungen sind dafür zu übertrieben, bitte verwenden Sie diese Einstellungen direkt.
Pedro Paulo Amorim
0

Für mich haben keine Antworten funktioniert, da der Fokusring der Indikatoren jedes Mal angezeigt wird, aber ich löse mein Problem über NSStoryboard.

NSCollectionView hat ein Diagramm;

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

Geben Sie hier die Bildbeschreibung ein

Klicken Sie auf ein beliebiges Scroller-Objekt und dann in Attributes Inspectorder Focus RingEigenschaft set auf None. Wenn Sie es nicht festgelegt haben, kann ein Problem auftreten, wenn Benutzer Appearancezwischen Darkund wechseln Light.

elia
quelle