Home > Blockchain >  Disable scroll indicator in all tableview / collectionview
Disable scroll indicator in all tableview / collectionview

Time:07-20

If I want to disable the scroll indicator in all tableview and collectionview, what minimum changes do I need to make?

Suppose, I have 50 tableviews in my project, I don't want to set the property below in all of them or make changes to many storyboards.

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

Basically, I need to mutate a property of an object in one place only that will be reflected in all its instances or child.

More context:

  • I tried protocol with default implementation but I need to call it somewhere anyway. Is there a hook that gets called every time an object in swift is instantiated for a particular class where I can attach some function or execution block?
  • Maybe javascript object prototype mutation is something similar to what I am looking for, which has an adverse performance impact at the time of mutation, and in subsequent execution. What is the performance penalty for similar things (if exist) in swift?

CodePudding user response:

Use the following snippet in AppDelegate or SceneDelegate depending on what you have:

 UITableView.appearance().showsVerticalScrollIndicator = false
 UITableView.appearance().showsHorizontalScrollIndicator = false

CodePudding user response:

You can subclass a UITableView and use that class everywhere instead of default one.

class MyTableView: UITableView {

    override init(frame: CGRect, style: UITableView.Style) {
        super.init(frame: frame, style: style)
        
        self.showsVerticalScrollIndicator = false
        self.showsHorizontalScrollIndicator = false
    }
    
    required init?(coder: NSCoder) {
        super.init(coder: coder)
        
        self.showsVerticalScrollIndicator = false
        self.showsHorizontalScrollIndicator = false
    }
}

Now use this class everywhere. If you create tableview in storyboard, set its class to MyTableView.

  • Related