Existe-t-il un moyen de masquer les indicateurs de défilement dans un UIScrollView?


133

J'ai un cas d'utilisation où ces indicateurs perturbent l'interaction de l'utilisateur. Puis-je sous-classer et remplacer une méthode ou faire quelque chose de similaire pour supprimer les indicateurs de défilement de la vue de défilement?

Réponses:


272

Définissez les propriétés showsHorizontalScrollIndicatoret showsVerticalScrollIndicatordu UIScrollViewsur NO.

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

Documentation - UIScrollView


Comme appris de Docs, vous pouvez même l'utiliser directement pour le scrollview! [scrollview setShowsHorizontalScrollIndicator: NO]; Merci à @retainCount
Rajal

1
À partir d'iOS 11, cela devrait être appelé dans viewWillAppear, cela ne fonctionne pas s'il est appelé dans viewDidLoad
melvinto

61

// Pour UITableView - Objective-C

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

// Pour UITableView - SWIFT 3.0

tbl.showsHorizontalScrollIndicator = false
tbl.showsVerticalScrollIndicator = false

// Pour UIScrollView - Objective-C

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

// Pour UIScrollView - SWIFT

scrl.showsHorizontalScrollIndicator = false
scrl.showsVerticalScrollIndicator = false

Changement de XIB ou de storyboard

entrez la description de l'image ici


tableView a également des cases à cocher pour cela - je travaille avec xCode 11
Andy Weinstein

16

Pour ceux qui cherchent à faire cela à Swift.

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

8

Pour UIScrollView dans Swift

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

4

Voici vos UITableViewpropriétés de défilement:

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

Voici vos UIScrollViewpropriétés de défilement:

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

3

Swift 3.0extension pour UIScrollViewet UITableView:

import Foundation

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

2
Pourquoi diable utilisez-vous une extension? Vous compliquez les choses avec des lignes de code inutiles pour les gens qui essaient d'apprendre, quand un simple view.showsHorizontalScrollIndicator = false fonctionnerait…
petaire

2
@petaire - Vous devez vous calmer lol. J'aime vraiment vraiment cette extension.
quemeful

Les extensions sont trop exagérées pour cela, veuillez utiliser ces paramètres directement.
Pedro Paulo Amorim

0

Aucune réponse n'a fonctionné pour moi car la bague de mise au point des indicateurs est affichée à chaque fois, mais je résous mon problème via NSStoryboard.

NSCollectionView a un diagramme;

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

entrez la description de l'image ici

Cliquez sur n'importe quel objet Scroller puis dans Attributes Inspectorset Focus Ringproperty to None. Si vous ne l'avez pas défini, vous pouvez rencontrer un problème lorsque les utilisateurs modifient le paramètre Appearanceentre Darket Light.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.