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

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


person Thanks    schedule 04.05.2009    source источник


Ответы (7)


Установите для свойств showsHorizontalScrollIndicator и showsVerticalScrollIndicator UIScrollView значение NO.

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

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

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

// Для 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 или раскадровки

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

person Bhavesh Nayi    schedule 05.04.2013
comment
tableView также имеет флажки для этого - я работаю с xCode 11 - person Andy Weinstein; 08.07.2020

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

self.tableView.showsHorizontalScrollIndicator = false
self.tableView.showsVerticalScrollIndicator = false
person davidrayowens    schedule 01.09.2014

Для UIScrollView в Swift

scrollView?.showsHorizontalScrollIndicator = false
scrollView?.showsVerticalScrollIndicator = false
person mattyU    schedule 02.06.2015

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

import Foundation

extension UIScrollView {
    func hideIndicators() {
        showsHorizontalScrollIndicator = false
        showsVerticalScrollIndicator = false
    }
}
person Roman Barzyczak    schedule 24.04.2017
comment
Какого черта вы используете расширение? Вы усложняете вещи бесполезными строками кода для людей, которые пытаются учиться, когда сработает простой view.showsHorizontalScrollIndicator = false ... - person petaire; 17.06.2017
comment
@petaire - Тебе нужно успокоиться, лол. Мне действительно нравится это расширение. - person quemeful; 21.11.2017
comment
Расширений слишком много для этого, используйте эти настройки напрямую. - person Pedro Paulo Amorim; 18.12.2019

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

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

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

[YourScroll setShowsHorizontalScrollIndicator:NO];
[YourScroll setShowsVerticalScrollIndicator:NO];
person Darshan Kunjadiya    schedule 20.03.2014

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

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

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

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

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

person eemrah    schedule 25.06.2020