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?

Antworten:


272

Setzen Sie die showsHorizontalScrollIndicatorund showsVerticalScrollIndicatorEigenschaften von UIScrollViewto NO.

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

Dokumentation - UIScrollView


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


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

8

Für UIScrollView in Swift

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

4

Dies sind Ihre UITableViewBildlaufeigenschaften:

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

Dies sind Ihre UIScrollViewBildlaufeigenschaften:

[YourScroll setShowsHorizontalScrollIndicator:NO];
[YourScroll setShowsVerticalScrollIndicator:NO];

3

Swift 3.0Erweiterung für UIScrollViewund UITableView:

import Foundation

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

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.