快速侧边栏菜单创建

时间:2014-12-02 06:52:37

标签: ios swift

我正在尝试按照此处的指南创建一个快捷的侧边栏菜单:https://www.youtube.com/watch?v=qaLiZgUK2T0 我已达到以下功能:

override func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! {
    var cell:UITableViewCell? = tableView.dequeueReusableCellWithIdentifier("Cell") as? UITableViewCell

    if cell == nil{
        cell = UITableViewCell(style :UITableViewCellStyle.Default, reuseIdentifier: "Cell")
        // Configure the cell...
        cell!.backgroundColor = UIColor.clearColor()
        cell!.textLabel.textColor = UIColor.darkTextColor()

        let selectedView:UIView = UIView(frame: CGRect (x: 0, y:0, width: cell!.frame.size.width, height: cell!.frame.size.height))
        selectedView.backgroundColor = UIColor.blackColor().colorWithAlphaComponent(0.3)

        cell!.selectedBackgroundView = selectedView

    }

    cell!.textLabel.text = tableData[indexPath.row]

    return cell
} 

我得到了一个“使用选择器'覆盖方法'tableView:cellForRowAtIndexPath ...”错误;对于斯威夫特来说还是比较新的我不知道该怎么做。请让我知道该怎么做,如果您碰巧知道更好的指南,请告诉我。

对于今后可能遇到此问题的人来说,这是对我有用的完整解决方案,感谢zisoft的帮助:

    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    var cell:UITableViewCell? = tableView.dequeueReusableCellWithIdentifier("Cell") as? UITableViewCell

    if cell == nil{
        cell = UITableViewCell(style :UITableViewCellStyle.Default, reuseIdentifier: "Cell")
        // Configure the cell...
        cell!.backgroundColor = UIColor.clearColor()
        cell!.textLabel.textColor = UIColor.darkTextColor()

        let selectedView:UIView = UIView(frame: CGRect (x: 0, y:0, width: cell!.frame.size.width, height: cell!.frame.size.height))
        selectedView.backgroundColor = UIColor.blackColor().colorWithAlphaComponent(0.3)

        cell!.selectedBackgroundView = selectedView

    }

    cell!.textLabel.text = tableData[indexPath.row]

    return cell!
}

2 个答案:

答案 0 :(得分:1)

在swift演变过程中,函数签名发生了变化。现在正确的签名是:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    ...
}

请删除感叹号。

答案 1 :(得分:0)

这些方法没有消除同样的错误,发现了这个:

if cell == nil{
        cell = UITableViewCell(style :UITableViewCellStyle.Default, reuseIdentifier: "Cell")
        // Configure the cell...
        cell!.backgroundColor = UIColor.clearColor()
        cell!.textLabel?.textColor = UIColor.darkGrayColor()            
        let selectedView:UIView = UIView(frame: CGRect (x: 0, y:0, width: cell!.frame.size.width, height: cell!.frame.size.height))
        selectedView.backgroundColor = UIColor.blackColor().colorWithAlphaComponent(0.3)            
        cell!.selectedBackgroundView = selectedView            
    }        
    cell!.textLabel?.text = tableData[indexPath.row]        
    return cell!
}

希望这可能有所帮助。