2015-10-01 3 views
0

Мне известно о добавлении объекта ActivityIndicator в определенное место в представлении, при запуске и остановке анимации, когда это необходимо. Но в некоторых случаях в моем приложении, где пользователь нажимает на ячейку (с заголовком и субтитрами), я беру некоторые данные в фоновом режиме, а затем показываю предупреждение пользователю, чтобы получить некоторые входы. Во всех этих случаях я просто показываю индикатор активности в середине, который выглядит не так хорошо. Таким образом, я хотел бы отображать индикатор активности только в конце ячейки, на которую пользователь нажал. Есть ли способ сделать это?Динамически перемещать индикатор активности в UITableView в Swift 2.0

Одна вещь, о которой я мог думать, это использование пользовательской таблицы View Cell, а затем явное добавление индикатора активности. Но можно ли сделать то же самое со стандартной ячейкой заголовка и субтитров и может динамически переставлять индикатор активности в зависимости от позиции ячейки, которую пользователь нажал?

ответ

2

Я думаю, что вы можете сделать это с помощью accessoryView

var selectedIndexPath : NSIndexPath? 

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 
{ 
    // ... 

    if (indexPath == selectedIndexPath) 
    { 
     cell.accessoryView = UIActivityIndicatorView(activityIndicatorStyle: UIActivityIndicatorViewStyle.Gray) 
     (cell.accessoryView as! UIActivityIndicatorView).startAnimating() 
    } 
    else 
    { 
     cell.accessoryView = nil 
    } 

    return cell 
} 

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) 
{ 
    selectedIndexPath = indexPath 
    tableView.reloadRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Automatic) 
} 
+0

Он сделал работу UITableViewCell в. Единственное изменение, которое я сделал получить клетку, когда didSelectRowAtIndexPath называлась так: пусть клетка = tableView.cellForRowAtIndexPath (indexPath) клеток .accessoryView = UIActivityIndicatorView (activityIndicatorStyle: UIActivityIndicatorViewStyle.Gray)! (! Клетка .accessoryView, как UIActivityIndicatorView) .startAnimating() –

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