2016-03-07 63 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

相關問題