How to show activity indicator while tableView loads? How to show activity indicator while tableView loads? ios ios

How to show activity indicator while tableView loads?


Just try this:

var indicator = UIActivityIndicatorView()func activityIndicator() {    indicator = UIActivityIndicatorView(frame: CGRectMake(0, 0, 40, 40))    indicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.Gray    indicator.center = self.view.center    self.view.addSubview(indicator)    }

And where you want to start animating

indicator.startAnimating()indicator.backgroundColor = UIColor.whiteColor()

For stop:

indicator.stopAnimating()indicator.hidesWhenStopped = true

Note: Avoid the calling of start and stop at the same time. Just give some conditions.

SWIFT : 4.2Just try this:

var indicator = UIActivityIndicatorView()func activityIndicator() {    indicator = UIActivityIndicatorView(frame: CGRect(x: 0, y: 0, width: 40, height: 40))    indicator.style = UIActivityIndicatorView.Style.gray    indicator.center = self.view.center    self.view.addSubview(indicator)   }

And where you want to start animating

activityIndicator()indicator.startAnimating()indicator.backgroundColor = .white

For stop:

indicator.stopAnimating()indicator.hidesWhenStopped = true


Swift 3.0

// UIView Extension

fileprivate var ActivityIndicatorViewAssociativeKey = "ActivityIndicatorViewAssociativeKey"public extension UIView {   var activityIndicatorView: UIActivityIndicatorView {        get {            if let activityIndicatorView = getAssociatedObject(&ActivityIndicatorViewAssociativeKey) as? UIActivityIndicatorView {                return activityIndicatorView            } else {                let activityIndicatorView = UIActivityIndicatorView(frame: CGRect(x: 0, y: 0, width: 40, height: 40))                activityIndicatorView.activityIndicatorViewStyle = .gray                activityIndicatorView.color = .gray                activityIndicatorView.center = center                activityIndicatorView.hidesWhenStopped = true                addSubview(activityIndicatorView)                setAssociatedObject(activityIndicatorView, associativeKey: &ActivityIndicatorViewAssociativeKey, policy: .OBJC_ASSOCIATION_RETAIN_NONATOMIC)                return activityIndicatorView            }        }        set {            addSubview(newValue)            setAssociatedObject(newValue, associativeKey:&ActivityIndicatorViewAssociativeKey, policy: .OBJC_ASSOCIATION_RETAIN_NONATOMIC)        }    }}

// NSObject Extension

public extension NSObject {    func setAssociatedObject(_ value: AnyObject?, associativeKey: UnsafeRawPointer, policy: objc_AssociationPolicy) {        if let valueAsAnyObject = value {            objc_setAssociatedObject(self, associativeKey, valueAsAnyObject, policy)        }    }    func getAssociatedObject(_ associativeKey: UnsafeRawPointer) -> Any? {        guard let valueAsType = objc_getAssociatedObject(self, associativeKey) else {            return nil        }        return valueAsType    }}

start animation

tableView.activityIndicatorView.startAnimating()

stop animation

tableView.activityIndicatorView.stopAnimating()

You can find more code in Magic


Swift 2+

    class ViewController: UITableViewController {        weak var activityIndicatorView: UIActivityIndicatorView!        override func viewDidLoad() {            super.viewDidLoad()            let activityIndicatorView = UIActivityIndicatorView(activityIndicatorStyle: UIActivityIndicatorViewStyle.Gray)            tableView.backgroundView = activityIndicatorView            self.activityIndicatorView = activityIndicatorView            activityIndicatorView.startAnimating()        }        ...    }