跟踪按钮上的水龙头?

时间:2015-07-23 14:11:42

标签: ios xcode swift uitableview nsindexpath

有没有办法记录用户点击按钮的次数?我希望在用户点击按钮很多次之后执行一个segue。截至目前,我正在跟踪有多少次点击。

@IBAction func nextbuttontest(sender: AnyObject) {

        let button = sender as! UIButton
        let view = button.superview!
        let cell = view.superview as! NewFeedControllerCell
        let indexPath = tableView.indexPathForCell(cell)
        let row = indexPath?.row

        tableView.scrollToRowAtIndexPath(NSIndexPath(forRow: row!+1, inSection: 0), 
                                         atScrollPosition: UITableViewScrollPosition.Top, 
                                         animated: false)   
    }

2 个答案:

答案 0 :(得分:5)

您可以在视图控制器中创建整数变量,并将其用作计数器 - >也就是说,当用户点击它时,如果你有足够的点击执行segue或其他任何东西。

例如:

var tapCounter = 0

作为视图控制器中的声明。

func tapGestureForElement(gest:UIGestureRecognizer){
    tapCounter = tapCounter + 1
    if(tapCounter == 123){
        //performSegue
    }
}

EDIT ::

第二部分:

if(row!+1 == yourArray.count){ // or == 10, as you mentioned in comments, but I think that is a bad practice
    //do nothing or do something, up to you :)
{
else{
    tableView.scrollToRowAtIndexPath(NSIndexPath(forRow: row!+1, inSection: 0), atScrollPosition: UITableViewScrollPosition.Top, animated: false)
}

编辑2:

你甚至可以做得更好,你可以检查你是否到达了部分行的末尾:

if( row!+1 == tableView. numberOfRowsInSection(indexPath.section)

最后一部分未经过测试,但应该是它。

答案 1 :(得分:1)

就像NickCatib所说,向视图控制器添加tapCounter属性。但是,当抽头计数达到所需值时,不要手动触发segue,而是覆盖shouldPerformSegueWithIdentifier:sender:,以便在达到抽头计数之前不会为该特定segue返回YES