C'è un modo per nascondere gli indicatori di scorrimento in un UIScrollView?


133

Ho un caso d'uso in cui quegli indicatori disturbano l'interazione dell'utente. Posso sottoclassare e sovrascrivere un metodo o fare qualcosa di simile per rimuovere gli indicatori di scorrimento dalla vista di scorrimento?

Risposte:


272

Impostare le proprietà showsHorizontalScrollIndicatore showsVerticalScrollIndicatordi UIScrollViewa NO.

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

Documentazione - UIScrollView


Come appreso da Documenti, puoi persino usarlo direttamente per scrollview! [scrollview setShowsHorizontalScrollIndicator: NO]; Grazie a @retainCount
Rajal il

1
A partire da iOS 11, questo dovrebbe essere chiamato in viewWillAppear, non funziona se chiamato in viewDidLoad
melvinto

61

// Per UITableView - Objective-C

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

// Per UITableView - SWIFT 3.0

tbl.showsHorizontalScrollIndicator = false
tbl.showsVerticalScrollIndicator = false

// Per UIScrollView - Objective-C

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

// Per UIScrollView - SWIFT

scrl.showsHorizontalScrollIndicator = false
scrl.showsVerticalScrollIndicator = false

Cambia da XIB o storyboard

inserisci qui la descrizione dell'immagine


tableView ha anche delle caselle di controllo per questo - Sto lavorando con xCode 11
Andy Weinstein l'

16

Per coloro che cercano di farlo in Swift.

self.tableView.showsHorizontalScrollIndicator = false
self.tableView.showsVerticalScrollIndicator = false

8

Per UIScrollView in Swift

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

4

Queste sono le UITableViewproprietà di scorrimento:

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

Queste sono le UIScrollViewproprietà di scorrimento:

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

3

Swift 3.0estensione per UIScrollViewe UITableView:

import Foundation

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

2
Perché diavolo stai usando un'estensione? Stai complicando le cose con inutili righe di codice per le persone che stanno cercando di imparare, quando una semplice view.showsHorizontalScrollIndicator = false funzionerebbe ...
petaire

2
@petaire - Devi calmarti lol. In realtà mi piace davvero quell'estensione.
quemeful

Le estensioni sono troppo esagerate per questo, si prega di utilizzare queste impostazioni direttamente.
Pedro Paulo Amorim,

0

Nessuna risposta ha funzionato per me perché l'anello di messa a fuoco degli indicatori viene mostrato ogni volta ma risolvo il mio problema tramite NSStoryboard .

NSCollectionView ha un diagramma;

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

inserisci qui la descrizione dell'immagine

Fare clic su qualsiasi oggetto Scroller, quindi nella proprietà Attributes Inspectorset Focus Ringsu None. Se non lo hai impostato, puoi avere un problema quando gli utenti cambiano Appearancetra Darke Light.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.