当用户滚动到UITableView
的底部时,我正试图在底部插入一行。但问题是,它是在底部插入行,但它将我带回第一行。我怎么能阻止这种情况发生?这是我的代码
func delay(delay:Double, closure:()->()) {
dispatch_after(
dispatch_time(
DISPATCH_TIME_NOW,
Int64(delay * Double(NSEC_PER_SEC))
),
dispatch_get_main_queue(), closure)
}
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
var tableView:UITableView = UITableView()
var array:NSMutableArray = ["hey \n2 \n2 \n2 \n2 \n2 \n2","fjcjscsoomc sample text message big","and this is a small text "]
override func viewDidLoad() {
super.viewDidLoad()
tableView.frame = CGRectMake(0, 0, phonewidth, self.view.frame.height)
tableView.delegate = self
tableView.dataSource = self
self.tableView.registerNib(UINib(nibName: "CustomCell", bundle: nil), forCellReuseIdentifier: "cell")
self.view.addSubview(tableView)
self.tableView.addInfiniteScrollingWithActionHandler { () -> Void in
delay(2.0, { () -> () in
self.tableView.beginUpdates()
self.array.insertObject("123", atIndex: self.array.count)
var nspath = NSIndexPath(forRow: self.array.count - 1, inSection: 0)
self.tableView.insertRowsAtIndexPaths([nspath], withRowAnimation: UITableViewRowAnimation.Left)
self.tableView.endUpdates()
self.tableView.infiniteScrollingView.stopAnimating()
})
}
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("cell") as CustomCell
cell.labelText.text = array.objectAtIndex(indexPath.row) as String
return cell
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return array.count
}
}
这段代码工作正常,当我向下滚动到底部时,它会在底部插入一行但插入tableView后会将我带回第一行。