使用PHP和JSON填充我的表視圖與來自MYSQL數據庫的對象Swift 3.我有一個拉下來刷新功能,但當我拉下來刷新它在中途停留一秒鐘,然後繼續(如輪子不會旋轉一秒鐘)。Swift:如何刷新tableview沒有滯後(UIRefreshControl)
如何更新我的tableview更平滑,因爲我猜測,因爲我將更多的內容添加到數據庫中,未來滯後更大。我目前在我的數據庫中有12個對象,所以想象100個對象。
在viewDidLoad中
// Pull to Refresh
let refreshControl = UIRefreshControl()
refreshControl.addTarget(self, action: #selector(handleRefresh), for: .valueChanged)
if #available(iOS 10.0, *) {
myTableView.refreshControl = refreshControl
print("iOS 10")
} else {
myTableView.addSubview(refreshControl)
print("iOS 9 or iOS 8")
}
然後拉刷新功能
// Pull to Refresh
func handleRefresh(refreshControl: UIRefreshControl) {
// Fetching Data for TableView
retrieveDataFromServer()
// Stop Refreshing
refreshControl.endRefreshing()
}
// Retrieving Data from Server
func retrieveDataFromServer() {
// Loading Data from File Manager
loadData()
let getDataURL = "http://example.com/receiving.php"
let url: NSURL = NSURL(string: getDataURL)!
do {
let data: Data = try Data(contentsOf: url as URL)
let jsonArray = try JSONSerialization.jsonObject(with: data, options: .mutableContainers) as! NSMutableArray
// Clear the arrays
self.followedArray = [Blog]()
self.mainArray = [Blog]()
// Looping through jsonArray
for jsonObject in jsonArray {
if let blog = Blog(jsonObject:jsonObject as! [String : Any]) {
// Check if Identifiers Match
if followedIdentifiers.contains(blog.blogID) {
self.followedArray.append(blog)
} else {
self.mainArray.append(blog)
}
}
}
} catch {
print("Error: (Retrieving Data)")
}
myTableView.reloadData()
}
您呼叫的retrieveDataFromServer loaddata()()嘗試調用loadData()和API機制在後臺排隊。 。因爲它需要幾秒鐘才能加載loadData()和Api機制的所有參數 –
@iOSGeek,即使我評論'// loadData()'它仍然滯後於 – BroSimple
不要評論只是使用異步機制並嘗試使用,因爲for我這總是工作我應該評論基本的異步機制? –