我有tableview控制器。它从api获取数据并加载第1页。 当我滚动当前页面的底部时,我想转到下一页。 有没有办法实现这个?
var currentPage = 1
func loadArticles(){
let url = "http://yazar.io/api/article/feed/" + String(currentPage)
Alamofire.request(.GET, url).responseJSON { (Request, response, json, error) -> Void in
if (json != nil){
var jsonObj = JSON(json!)
if let data = jsonObj["articles"].arrayValue as [JSON]?{
self.articles = data
self.tableView.reloadData()
self.view.hideLoading()
self.refreshControl?.endRefreshing()
}
}
}
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCellWithIdentifier("MakaleCell") as MakaleTableViewCell
if (indexPath.row == self.articles!.count - 5) {
currentPage += 1
println(currentPage)
loadArticles(currentPage: currentPage)
}
cell.article = self.articles?[indexPath.row]
return cell
}
答案 0 :(得分:0)
我试过这个,看起来不错。这对你有用吗?
@IBOutlet weak var tableview: UITableView!
var datasource = Array<Int>()
override func viewDidLoad() {
super.viewDidLoad()
for i in 0...21
{
datasource.append(i)
}
}
func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath)
{
if indexPath.row == datasource.count-1
{
var max = datasource.count;
for i in max...max+15
{
datasource.append(i)
}
self.tableview.reloadData()
}
}
答案 1 :(得分:0)
谢谢大家,扩展数据解决了我的问题...
self.articles?.extend(data)