How to set an UIActivityIndicatorView when loading a UITableViewCell How to set an UIActivityIndicatorView when loading a UITableViewCell ios ios

How to set an UIActivityIndicatorView when loading a UITableViewCell


You can add UIActivityIndicatorView as cell's accessoryView.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {    UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];    spinner.frame = CGRectMake(0, 0, 24, 24);    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];    cell.accessoryView = spinner;    [spinner startAnimating];    [spinner release];}


In viewDidLoad of tableview B class, add an activity indicator.

// Create the Activity Indicator.    let activityIndicator = UIActivityIndicatorView(activityIndicatorStyle: .gray)    activityIndicator.hidesWhenStopped = true    view.addSubview(activityIndicator)    // Position it at the center of the ViewController.    activityIndicator.translatesAutoresizingMaskIntoConstraints = false    NSLayoutConstraint.activate([        activityIndicator.centerXAnchor.constraint(equalTo: view.centerXAnchor),        activityIndicator.centerYAnchor.constraint(equalTo: view.centerYAnchor)])    activityIndicator.startAnimating()

Now call your method that downloads data from the network.

myDownloadMethod()

Do it in a different thread if you don't want the UI to be non responsive during the process.

read this thread for that.Can I use a background thread to parse data?

When you are notified that the contents are downloaded, stop the indicator.

activityIndicator.stopAnimating()

Now you can call tableview.reloadData() for reloading the table to display the new contents.


UIActivityIndicatorView * activityindicator1 = [[UIActivityIndicatorView alloc]initWithFrame:CGRectMake(150, 200, 30, 30)];[activityindicator1 setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleWhiteLarge];[activityindicator1 setColor:[UIColor orangeColor]];[self.view addSubview:activityindicator1];[activityindicator1 startAnimating];[self performSelector:@selector(callfunction) withObject:activityindicator1 afterDelay:1.0];-(void)callfunction{// Here your stuf}