¿Hay alguna manera de ocultar los indicadores de desplazamiento en un UIScrollView?

133

Tengo un caso de uso donde esos indicadores perturban la interacción del usuario. ¿Puedo subclasificar y anular un método o hacer algo similar para eliminar los indicadores de desplazamiento de la vista de desplazamiento?

Gracias
fuente

Respuestas:

272

Establezca las propiedades showsHorizontalScrollIndicatory showsVerticalScrollIndicatorde UIScrollViewa NO.

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

Documentación - UIScrollView

RetenerCount
fuente
Como aprendió de Docs, ¡incluso puede usarlo para la vista de desplazamiento directamente! [scrollview setShowsHorizontalScrollIndicator: NO]; Gracias a @retainCount
Rajal
1
A partir de iOS 11, esto debería llamarse en viewWillAppear, no funciona si se llama en viewDidLoad
melvinto
61

// Para UITableView - Objective-C

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

// Para UITableView - SWIFT 3.0

tbl.showsHorizontalScrollIndicator = false
tbl.showsVerticalScrollIndicator = false

// Para UIScrollView - Objective-C

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

// Para UIScrollView - SWIFT

scrl.showsHorizontalScrollIndicator = false
scrl.showsVerticalScrollIndicator = false

Cambiar desde XIB o storyboard

ingrese la descripción de la imagen aquí

Bhavesh Nayi
fuente
tableView también tiene casillas de verificación para esto - Estoy trabajando con xCode 11
Andy Weinstein
16

Para aquellos que buscan hacer esto en Swift.

self.tableView.showsHorizontalScrollIndicator = false
self.tableView.showsVerticalScrollIndicator = false
davidrayowens
fuente
8

Para UIScrollView en Swift

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

Estas son sus UITableViewpropiedades de desplazamiento:

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

Estas son sus UIScrollViewpropiedades de desplazamiento:

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

Swift 3.0extensión para UIScrollViewy UITableView:

import Foundation

extension UIScrollView {
    func hideIndicators() {
        showsHorizontalScrollIndicator = false
        showsVerticalScrollIndicator = false
    }
}
Roman Barzyczak
fuente
2
¿Por qué demonios estás usando una extensión? Usted está complicando las cosas con líneas inútiles de código para las personas que están tratando de aprender, cuando un simple view.showsHorizontalScrollIndicator = false funcionaría ...
petaire
2
@petaire - Necesitas calmarte jajaja. De hecho, realmente me gusta esa extensión.
2017
Las extensiones son demasiado exageradas para esto, utilice esta configuración directamente.
Pedro Paulo Amorim
0

No hay respuestas han trabajado para mí, porque se muestra el anillo de enfoque de indicadores cada vez mas puedo solucionar mi problema a través NSStoryboard.

NSCollectionView tiene un diagrama;

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

ingrese la descripción de la imagen aquí

Haga clic en cualquier objeto Scroller y luego en la propiedad Attributes Inspectorset Focus Ringa None. Si no lo ha configurado, puede tener un problema cuando los usuarios cambian Appearanceentre Darky Light.

elia
fuente