为什么没有从模拟器调用“willDeselectRowAtIndexPath”,但在设备中运行良好? :迅速

时间:2016-08-31 15:22:06

标签: ios swift ios-simulator

我使用willDeselectRowAtIndexPathdidSelectRowAtIndexPath隐藏和取消隐藏tableView中行的内容。这适用于我的设备(ipad和iphone),但在模拟器中效果不佳。两者都具有相同的数据源。

为什么它不能在模拟器中工作?

这是我使用的代码,我展开单元格以显示内容,并收缩隐藏。

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {

    if indexPath.row == selectedRowIndex {
    //expand
        return (tableView.frame.height/6)*3
    }
    return tableView.frame.height/6
}

func tableView(tableView: UITableView, willDeselectRowAtIndexPath indexPath: NSIndexPath) -> NSIndexPath? {
    // print("unselected this \(indexPath)")

    let cell:appCell? = tableView.cellForRowAtIndexPath(indexPath) as? appCell

    if (cell != nil)
    {
    // hide cell
        cell!.textView.hidden = true
        cell!.tittle.hidden = true
        cell!.expand.hidden = true
        cell!.shared.hidden = true
        cell!.resumen.textColor = .lightGrayColor()
    }

    return indexPath
}

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

    if selectedRowIndex != indexPath.row {
        self.thereIsCellTapped = true
        self.selectedRowIndex = indexPath.row
    }
    else {
        // there is no cell selected anymore
        self.thereIsCellTapped = false
        self.selectedRowIndex = -1
    }

    let cell:appCell? = tableView.cellForRowAtIndexPath(indexPath) as? appCell

    if indexPath.row == selectedRowIndex {

        if(tableView.cellForRowAtIndexPath(indexPath)?.frame.height == tableView.frame.height/6){

           //show
            Utils().delay(0.3, closure: {
                cell!.textView.hidden = false
                cell!.tittle.hidden = false
                cell!.expand.hidden = false
                cell!.shared.hidden = false
                cell!.resumen.textColor = Colors.marron
            })
        }else {
            //hide
            cell!.textView.hidden = true
            cell!.tittle.hidden = true
            cell!.expand.hidden = true
            cell!.shared.hidden = true   
        }
    }else{
        //   hide
        cell!.textView.hidden = true
        cell!.tittle.hidden = true
        cell!.expand.hidden = true
        cell!.shared.hidden = true   
    }
    tableView.beginUpdates()
    tableView.endUpdates()
}

0 个答案:

没有答案