如何指定嵌套的自定义视图类?

Sib*_*ear 16 xcode nested-class storyboard ios swift

可用的 嵌套类SuperView和NestedView.

class SuperView : UIImageView {

    class NestedView : UIImageView {
        var text : String = "Nested View"
    }

    var text : String = "Super View"
    var nested : NestedView?

}
Run Code Online (Sandbox Code Playgroud)

我想为UIImageView设置名为"Custom Class Name"的属性,以在Storyboard场景的检查器中为"NestedView"值.但是Interface Builder找不到"NestedView"类.

在此输入图像描述

Rud*_*dog 15

目前,我认为Interface Builder只识别Objective-C类的名称.您仍然可以使Interface Builder找到带有@objc关键字的嵌套类:

class SuperView: UIView {
  @objc(SVNestedView) class NestedView: UIImageView {
  }
}
Run Code Online (Sandbox Code Playgroud)

然后,在Interface Builder中,指定该视图是SVNestedView类.由于Objective-C没有命名空间,您仍然需要为每个嵌套类选择唯一的名称,但至少Swift端是正确的命名空间.

  • 这似乎不适用于Xcode 8.1中的Swift 3.在IB中仍然看不到`SVNestedView` (3认同)