¿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?

Respuestas:


272

Establezca las propiedades showsHorizontalScrollIndicatory showsVerticalScrollIndicatorde UIScrollViewa NO.

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

Documentación - UIScrollView


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í


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

8

Para UIScrollView en Swift

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

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];

3

Swift 3.0extensión para UIScrollViewy UITableView:

import Foundation

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

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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.