Swift中的UICollectionView的单元格registerClass

时间:2014-06-08 21:05:22

标签: ios swift uitableview

现在我正在使用NSClassFromString,但有更好的方法来获得AnyClass!来自Swift的一个班级?我正在尝试将引用传递给我的集合视图' -registerClass:forCellWithReuseIdentifier:方法。

collectionView.registerClass(NSClassFromString("MyCoolViewCell"), forCellWithReuseIdentifier: "MyCoolViewCell")

4 个答案:

答案 0 :(得分:149)

目前这只是盲目但有根据的猜测,但使用Class.self可能就是你想要的。

collectionView.registerClass(MyCoolViewCell.self, forCellWithReuseIdentifier: "MyCoolViewCell")

答案 1 :(得分:14)

如果您使用的是nib文件,请改用此代码:

    let nib = UINib(nibName: "MyCoolViewCell", bundle: nil)
    collectionView?.register(nib, forCellWithReuseIdentifier: "MyCoolViewCellIdentifier")

答案 2 :(得分:13)

在Swift 3中:

self.collectionView.register(CustomCollectionViewCell.self, forCellWithReuseIdentifier: "CustomCollectionViewCellReuseIdentifier")

答案 3 :(得分:0)

NSClassFromString("MyCoolViewCell")可能无效。
应该在前缀中添加模块名称:
collectionView.registerClass(NSClassFromString("MyApp.MyCoolViewCell"), forCellWithReuseIdentifier: "MyCoolViewCell")

如果cellClass不是变量,则使用MyCoolViewCell.self是更好的选择。