协议方法不起作用

Protocol methods don't work

我尝试从这里添加 UIGridView:https://github.com/tanin47/UIGridView

和手册不同,我用的是storyboard。正如手册中所写,我通过协议 UIGridViewDelegate 扩展了 UITableViewController,所以我得到了这个结果:

class SmilesViewController: UITableViewController, UIGridViewDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    @objc func gridView(grid: UIGridView!, widthForColumnAt columnIndex: CInt) -> CGFloat {
        return 100
    }

    @objc func gridView(grid: UIGridView!, heightForRowAt rowIndex: CInt) -> CGFloat {
        return 100
    }

    @objc func numberOfColumnsOfGridView(grid: UIGridView!) -> Int {
        return 3
    }

    @objc func numberOfCellsOfGridView(grid: UIGridView!) -> Int {
        return 9
    }

    @objc func gridView(grid: UIGridView!, cellForRowAt rowIndex: CInt, andColumnAt columnIndex: CInt) -> UIGridViewCell! {
        var cellIdentifier: String = "smile_cell"

        var cell: UIGridViewCell? = grid.dequeueReusableCellWithIdentifier(cellIdentifier) as? UIGridViewCell
        if cell != nil {
            cell = NSBundle.mainBundle().loadNibNamed("SmilesTableViewCell", owner: self, options: nil)[0] as? UIGridViewCell
        }

        return cell!
    }

    /*@objc func gridView(grid: UIGridView!, didSelectRowAt rowIndex: CInt, andColumnAt columnIndex: CInt) {

    }*/
}

但是协议函数的断点不起作用。所以我尝试将 cutom class 添加到我的 Table 视图并得到这个:

但不管怎么说都行不通

我是 swift 的新手,没有将基于 xib 的应用程序转换为故事板应用程序的经验。来自 github 的演示应用程序运行完美。我不明白为什么我的应用程序不起作用。是obj-c移植问题还是storyboard错误?

而且,也许有人给我 link 以更好地实施 ios 网格

更新

示例项目有 "uiGridViewDelegate" 连接,在我的项目中我无法将它与我的控制器代码连接

我从 GitHub 下载了该项目,目前我能注意到的唯一区别是。在项目中,UIGridViewdataSource 没有像您正在做的那样连接到 UIViewController。所以删除它。

实际连接的是uiGridViewDelegate。不是 dataSource 如您的图片所示。

图片来自 GitHub 项目:

试试看。