Чи є спосіб приховати індикатори прокрутки в UIScrollView?


133

У мене є випадок використання, коли ці показники порушують взаємодію користувачів. Чи можу я підкласифікувати та замінити метод чи зробити щось подібне для видалення індикаторів прокрутки з подання прокрутки?

Відповіді:


272

Встановіть showsHorizontalScrollIndicatorі showsVerticalScrollIndicatorвластивості UIScrollViewв NO.

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

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


Як дізналися в Документах, ви навіть можете використовувати його для прямого прогляду! [scrollview setShowsHorizontalScrollIndicator: NO]; Завдяки @retainCount
Раджаль

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 буде працювати…
petaire

2
@petaire - Вам потрібно заспокоїти лол. Мені насправді дуже подобається це розширення.
пам'ятний

Розширення для цього занадто зайві, будь ласка, використовуйте ці налаштування безпосередньо.
Педро Паулу Аморім

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.