In a I am using several UITableView in my app. Some of them contain several rows, while some have two three only. What I need is: if the table contains several rows, then the scrollbar should be visible before the user even drags the table down. Or in another way, is it possible to make scrollbar visible always??
Swift 3.0
1) Timer
var timerForShowScrollIndicator: Timer?
2) Methods
/// Show always scroll indicator in table view
func showScrollIndicatorsInContacts() {
UIView.animate(withDuration: 0.001) {
self.tableView.flashScrollIndicators()
}
}
/// Start timer for always show scroll indicator in table view
func startTimerForShowScrollIndicator() {
self.timerForShowScrollIndicator = Timer.scheduledTimer(timeInterval: 0.3, target: self, selector: #selector(self.showScrollIndicatorsInContacts), userInfo: nil, repeats: true)
}
/// Stop timer for always show scroll indicator in table view
func stopTimerForShowScrollIndicator() {
self.timerForShowScrollIndicator?.invalidate()
self.timerForShowScrollIndicator = nil
}
3) Use
startTimerForShowScrollIndicator in viewDidAppear
stopTimerForShowScrollIndicator in viewDidDisappear
var timerForIndicatore:Timer?
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
showIndicator()
}
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
deinitializeIndicator()
}
@objc func startContinuosShowingIndicator() {
UIView.animate(withDuration: 0.0001) {
self.deviceListTableView.flashScrollIndicators()
}
}
func showIndicator() {
self.timerForIndicatore = Timer.scheduledTimer(timeInterval: 0.3, target: self, selector: #selector(self.startContinuosShowingIndicator), userInfo: nil, repeats: true)
}
func deinitializeIndicator() {
self.timerForIndicatore?.invalidate()
self.timerForIndicatore = nil
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With