在uitableview swift底部插入行

时间:2015-02-11 14:47:36

标签: ios uitableview swift insert

当用户滚动到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后会将我带回第一行。

0 个答案:

没有答案