Есть ли способ скрыть индикаторы прокрутки в UIScrollView?

133

У меня есть пример использования, когда эти индикаторы мешают взаимодействию с пользователем. Могу ли я создать подкласс и переопределить метод или сделать что-то подобное, чтобы удалить индикаторы прокрутки из представления прокрутки?

Спасибо
источник

Ответы:

272

Установите showsHorizontalScrollIndicatorи showsVerticalScrollIndicatorсвойства UIScrollViewв NO.

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

Документация - UIScrollView

retainCount
источник
Как стало известно из Документов, вы даже можете использовать его напрямую для прокрутки! [scrollview setShowsHorizontalScrollIndicator: NO]; Спасибо @retainCount
Rajal
1
Начиная с iOS 11, это должно вызываться в viewWillAppear, оно не работает, если вызывается в viewDidLoad
melvinto
61

// Для UITableView - Objective-C

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

// Для UITableView - SWIFT 3.0

tbl.showsHorizontalScrollIndicator = false
tbl.showsVerticalScrollIndicator = false

// Для UIScrollView - Objective-C

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

// Для UIScrollView - SWIFT

scrl.showsHorizontalScrollIndicator = false
scrl.showsVerticalScrollIndicator = false

Переход с XIB или раскадровки

введите описание изображения здесь

Бхавеш Найи
источник
В tableView также есть флажки для этого - я работаю с xCode 11
Энди Вайнштейн
16

Для тех, кто хочет сделать это в Swift.

self.tableView.showsHorizontalScrollIndicator = false
self.tableView.showsVerticalScrollIndicator = false
davidrayowens
источник
8

Для UIScrollView в Swift

scrollView?.showsHorizontalScrollIndicator = false
scrollView?.showsVerticalScrollIndicator = false
mattyU
источник
4

Это ваши UITableViewсвойства прокрутки:

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

Это ваши UIScrollViewсвойства прокрутки:

[YourScroll setShowsHorizontalScrollIndicator:NO];
[YourScroll setShowsVerticalScrollIndicator:NO];
Даршан Кунджадия
источник
3

Swift 3.0расширение для UIScrollViewи UITableView:

import Foundation

extension UIScrollView {
    func hideIndicators() {
        showsHorizontalScrollIndicator = false
        showsVerticalScrollIndicator = false
    }
}
Роман Баржичак
источник
2
Какого черта вы используете расширение? Вы усложняете вещи бесполезными строками кода для людей, которые пытаются учиться, когда сработает простой view.showsHorizontalScrollIndicator = false…
Петер
2
@petaire - Тебе нужно успокоиться, лол. Мне действительно нравится это расширение.
quemeful
Расширений слишком много для этого, используйте эти настройки напрямую.
Педро Пауло Аморим
0

Никакие ответы не помогли мне, потому что кольцо фокусировки индикаторов отображается каждый раз, но я решаю свою проблему с помощью NSStoryboard .

У NSCollectionView есть диаграмма;

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

введите описание изображения здесь

Щелкните любой объект Scroller, затем Attributes Inspectorустановите Focus Ringсвойство в None. Если вы не установили его, у вас могут возникнуть проблемы, когда пользователи меняют значения Appearanceмежду Darkи Light.

Элия
источник