将“活动指示器”添加到 TableView 并在 Swift 中恢复为“披露指示器”
Posted
技术标签:
【中文标题】将“活动指示器”添加到 TableView 并在 Swift 中恢复为“披露指示器”【英文标题】:Add "activity indicator" to TableView and restore to "disclosure indicator" in Swift 【发布时间】:2015-09-06 11:14:25 【问题描述】:我有一个 TableView,每个单元格的附件都设置为“披露指示器”,它工作正常。
然后,我决定添加一个活动指示器,同时使用来自外部来源的数据更新每个单元格。为此,我设置:
cell.accessoryView = UIActivityIndicatorView(activityIndicatorStyle: .Gray)
当我从外部来源加载完数据后,我的“披露指示器”(单元格右侧的箭头)丢失了。我应该将“cell.accessoryView”恢复到什么?
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
let item = items[indexPath.row]
var cell = self.tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! UITableViewCell
// SET ACTIVITY INDICATOR HERE
if cell.accessoryView == nil
let indicator = UIActivityIndicatorView(activityIndicatorStyle: .Gray)
cell.accessoryView = indicator
let indicator = cell.accessoryView as! UIActivityIndicatorView
// ... some code here ...
switch (item.state)
case .New:
indicator.startAnimating()
self.fetchExternalData(item, indexPath:indexPath)
case .Downloaded:
indicator.stopAnimating()
// I'D LIKE TO RESTORE THE DISCLOSURE INDICATOR HERE
cell.accessoryType = UITableViewCellAccessoryType.DisclosureIndicator
// cell.accessoryView = ???
return cell
【问题讨论】:
【参考方案1】:糟糕,我刚刚尝试设置“cell.accessoryView = nil”,它起作用了。我应该在发布之前想到这一点:-(
【讨论】:
【参考方案2】:当然需要设置
cell.accessoryType = UITableViewCellAccessoryNone;
更改附件视图之前
【讨论】:
以上是关于将“活动指示器”添加到 TableView 并在 Swift 中恢复为“披露指示器”的主要内容,如果未能解决你的问题,请参考以下文章