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


133

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

Ответы:


272

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

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

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


Как стало известно из Документов, вы даже можете использовать его напрямую для прокрутки! [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

8

Для UIScrollView в Swift

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

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.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.