2016-03-07 66 views
0

我有一个表视图控制器和I在屏幕的中viewDidLoad中的中心()UIActivityIndi​​catorView未出现后滚动的UITableView

let bounds = UIScreen.mainScreen().bounds; 
     let width = bounds.size.width 
     let height = bounds.size.height 

     loadingIndicator = UIActivityIndicatorView(frame: CGRectMake(width/2, height/2, 75, 75)) 
     loadingIndicator.layer.cornerRadius = 10 
     loadingIndicator.backgroundColor = kfbBlue 
     loadingIndicator.center = CGPointMake(width/2, height/2 - 37) 
     loadingIndicator.activityIndicatorViewStyle = .WhiteLarge 
     loadingIndicator.hidesWhenStopped = true 
     self.tableView.addSubview(loadingIndicator) 
     loadingIndicator.startAnimating() 

这只是正常显示UIActivityIndi​​catorView。我有一个重载表格视图数据的重载方法。 reload()工作,但如果在滚动表视图后按下调用此方法的按钮,则不会显示活动指示符。它只会在表格视图向上滚动时出现。

func reload() { 
     loadingIndicator.startAnimating() 
     self.beginParsing() 
    } 

无论桌面视图滚动多远,我怎样才能让活动指示符出现在中心?

回答

1

请勿将UIActivityIndicatorView添加到UITableView。将其添加到包含UITableView的父视图的中心。您将其添加到UITableView的内容视图中,该视图将滚动。除此之外,即使当UITableView已被滚动时,如果您希望它仍然存在,请将其添加。最有可能是这样的:

self.view.addSubview(loadingIndicator) 

,而不是你行

self.tableView.addSubview(loadingIndicator) 

如果您使用的是UITableViewController,最上面的看法将是TableView中,所以你将无法工作。您将不得不调整活动指标的中心,以考虑滚动位置:

loadingIndicator.center = CGPointMake(width/2, self.tableView.contentOffset.y + height/2 - 37) 
+0

我试过了,它的确问题是一样的。 – raginggoat

+0

你的'UIViewController'是'UITableViewController',意思是self.view与self.tableView相同? – wottle

+0

这是一个UITableViewController – raginggoat

相关问题