2016-04-19 4 views
2

надеюсь, что вы в порядке.Как начать анимацию UIActivityIndicatorin в tableViewCell с Swift?

Я пытаюсь активировать идентификатор UIActivityIndicator в определенной ячейке моего таблицы. Я хочу скрыть метки, изображения, кнопки и показать другие элементы вместо. Одним из этих элементов является UIActivityIndicator, который появляется, но не анимировать :(

Вот код, используемый:

func showProgressViewInCell(path: NSIndexPath) { 
    let cell = self.toursUITableView.cellForRowAtIndexPath(path) as! ToursTableViewCell; 

    // stop userInteraction 
    cell.userInteractionEnabled = false; 

    // hide elements 
    cell.downloadTourButton.hidden = true; 
    cell.descriptionLabel.hidden = true; 
    cell.typeOfTourLabel.hidden = true; 
    cell.typeOfTourImage.hidden = true; 
    cell.distanceOfTourLabel.hidden = true; 
    cell.distanceOfTourImage.hidden = true; 
    cell.durationOfTourLabel.hidden = true; 
    cell.durationOftourImage.hidden = true; 
    // show progressbar, percent, activityIndicator and updateLabel 
    cell.percentLabel.hidden = false; 
    cell.downloadTourProgressView.hidden = false; 
    cell.updateLabelProgressBar.hidden = false; 
    // downloadInProgressActivityIndicator uses option hides when stopped 
    cell.downloadInProgressActivityIndicator.hidden = false; 
    cell.downloadInProgressActivityIndicator.startAnimating(); 

    // reload data of tableview 
    self.toursUITableView.beginUpdates(); 
    self.toursUITableView.reloadData(); 
    self.toursUITableView.endUpdates(); 
} 

Здесь конфигурация на InterfaceBuilder моего UIActivityIndicator:

configuration of UIActivityIndicatorView on Interface Builder

Это не сработало для меня: https://stackoverflow.com/a/29494991/6188918

Заранее благодарим за помощь.

ответ

1

Некоторое время назад я сделал приложение, которое отображало индикатор активности внутри ячейки. Я сделал это, вызвав startAnimating() внутри метода источника данных cellForRowAtIndexPath. Попробуй это.

0

Спасибо Александр Doloz,

на самом деле, прежде чем позвонить моя функция:

func showProgressViewInCell(path: NSIndexPath) {...} 

Я должен был оживить мой UIActivityIndicator по методу cellForRowAtIndexpath так:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    // custom cell 
    let cell = tableView.dequeueReusableCellWithIdentifier(self.defaultCellIdentifier, forIndexPath: indexPath) as! ToursTableViewCell; 

    //start animating ProgressActivityIndicator 
    cell.downloadInProgressActivityIndicator.startAnimating(); 

    self.configureCell(cell, indexPath:indexPath); 

    return cell; 
} 

и нравится, что это хорошо работает.

Большое спасибо,

Смежные вопросы