Ios 注册类语法-Swift
我希望通过UICollectionViewFlowLayout类的init方法注册它:Ios 注册类语法-Swift,ios,class,swift,init,Ios,Class,Swift,Init,我希望通过UICollectionViewFlowLayout类的init方法注册它: class GridLayout: UICollectionViewFlowLayout { override init() { super.init() self.scrollDirection = UICollectionViewScrollDirection.Vertical; self.itemSize = CGSizeMake(187, 2
class GridLayout: UICollectionViewFlowLayout {
override init() {
super.init()
self.scrollDirection = UICollectionViewScrollDirection.Vertical;
self.itemSize = CGSizeMake(187, 273)
// Register my class here...
}
required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
在目标C中,我将使用以下语法实现这一点
[self registerClass:[MyView class] forDecorationViewOfKind:[MyView kind]];
一个很简单的问题,我如何用swift写这个
编辑:
kind是MyView类中的一个函数
func kind() -> NSString {
return kShelfViewKind
}
可以向您展示您所使用的大多数objective-c方法的Swift语法。对于这个特定的案例,它是
棘手的一点是传递viewClass
参数。与Swift中Objective-C的[MyView类]
最接近的等价物是:MyView.self
此外,您的kind()
函数应该是一个函数,这样您就可以在类本身上调用它,而不仅仅是在类的实例上调用它:
class func kind() -> NSString { ... }
更改后,函数调用应如下所示:
self.registerClass(MyView.self, MyView.kind());
我道歉,我应该澄清这是一种方便的方法:见我的帖子编辑