Existe uma maneira de ocultar os indicadores de rolagem em um UIScrollView?


133

Eu tenho um caso de uso em que esses indicadores atrapalham a interação do usuário. Posso subclassificar e substituir um método ou fazer algo semelhante para remover os indicadores de rolagem da exibição de rolagem?

Respostas:


272

Defina as propriedades showsHorizontalScrollIndicatore showsVerticalScrollIndicatorde UIScrollViewpara NO.

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

Documentação - UIScrollView


Conforme aprendido no Documentos, você pode até usá-lo para a visualização de rolagem diretamente! [scrollview setShowsHorizontalScrollIndicator: NO]; Obrigado @retainCount
Rajal

1
A partir de iOS 11, este deve ser chamado em viewWillAppear, ele não funciona se for chamado em 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

Mudar de XIB ou storyboard

insira a descrição da imagem aqui


tableView também tem caixas de seleção para isso - estou trabalhando com o xCode 11
Andy Weinstein

16

Para quem quer fazer isso no Swift.

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

8

Para UIScrollView no Swift

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

4

Estas são suas UITableViewpropriedades de rolagem:

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

Estas são suas UIScrollViewpropriedades de rolagem:

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

3

Swift 3.0extensão para UIScrollViewe UITableView:

import Foundation

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

2
Por que diabos você está usando uma extensão? Você está complicando as coisas com linhas inúteis de código para as pessoas que estão tentando aprender, quando um simples view.showsHorizontalScrollIndicator = false iria trabalhar ...
petaire

2
@ petaire - Você precisa se acalmar lol. Na verdade, eu realmente gosto dessa extensão.
quemeful

As extensões são muito exageradas para isso, use essas configurações diretamente.
Pedro Paulo Amorim

0

Nenhuma resposta funcionou para mim porque o anel de foco dos indicadores é mostrado sempre, mas eu resolvo meu problema via NSStoryboard.

NSCollectionView tem um diagrama;

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

insira a descrição da imagem aqui

Clique em qualquer objeto Scroller e, em seguida, em propriedade Attributes Inspectorset Focus Ringpara None. Se você não o tiver definido, poderá ter um problema quando os usuários alterarem o Appearanceintervalo entre Darke Light.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.