Thanks
Thanks

Reputation: 40329

Is there a way to hide the scroll indicators in a UIScrollView?

I've got a use case where those indicators disturb the user interaction. Can I subclass and override a method or do something similar to remove the scroll indicators from the scroll view?

Upvotes: 153

Views: 102444

Answers (7)

eemmrrkk
eemmrrkk

Reputation: 1700

No answers have worked for me because the focus ring of indicators is shown every time but I solve my problem via NSStoryboard.

NSCollectionView have a diagram;

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

enter image description here

Click any Scroller object then in Attributes Inspector set Focus Ring property to None. If you have not set it you can have a problem when users change the Appearance between Dark and Light.

Upvotes: 0

Roman Barzyczak
Roman Barzyczak

Reputation: 3813

Swift 3.0 extension for UIScrollView and UITableView:

import Foundation

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

Upvotes: 7

Bhavesh Nayi
Bhavesh Nayi

Reputation: 3656

//For UITableView - Objective-C

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

//For UITableView - SWIFT 3.0

tbl.showsHorizontalScrollIndicator = false
tbl.showsVerticalScrollIndicator = false

//For UIScrollView - Objective-C

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

//For UIScrollView - SWIFT

scrl.showsHorizontalScrollIndicator = false
scrl.showsVerticalScrollIndicator = false

Change from XIB or storyboard

enter image description here

Upvotes: 74

retainCount
retainCount

Reputation: 4488

Set the showsHorizontalScrollIndicator and showsVerticalScrollIndicator properties of the UIScrollView to NO.

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

Documentation - UIScrollView

Upvotes: 291

Matthew Usdin
Matthew Usdin

Reputation: 1284

For UIScrollView in Swift

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

Upvotes: 11

Darshan Kunjadiya
Darshan Kunjadiya

Reputation: 3329

These are your UITableView scrolling properties:

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

These are your UIScrollView scrolling properties:

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

Upvotes: 4

davidrayowens
davidrayowens

Reputation: 1562

For those looking to do this in Swift.

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

Upvotes: 21

Related Questions