如何指定嵌套的自定义视图类?
可用的嵌套类SuperView和NestedView。
class SuperView : UIImageView { class NestedView : UIImageView { var text : String = "Nested View" } var text : String = "Super View" var nested : NestedView? }
我想设置一个名为“自定义类名”的属性,以在故事板场景的检查器中为值“NestedView”的UIImageView属性。 但是Interface Builder找不到“NestedView”类。
此时,我认为Interface Builder只能识别Objective-C类的名称。 您仍然可以使Interface Builder使用@objc关键字查找嵌套类:
class SuperView: UIView { @objc(SVNestedView) class NestedView: UIImageView { } }
然后,在Interface Builder中,指定该视图是SVNestedView类的。 由于Objective-C没有命名空间,所以你仍然需要为每个嵌套类select唯一的名字,但是至lessSwift一侧是正确命名空间的。
在Swift中,内部类的实例独立于外部类的任何实例。 就好像Swift中的所有内部类都是使用Java的静态方法声明的。
我不认为这个课程devise适合你的要求。 你需要做的是,你需要在你的视野之外创build一个新的类,并创build某种构图。 这一定会为你解决。
这是对你的代码的一些修改:
class SuperView : UIImageView { var text : String = "Super View" var nested : NestedView = NestedView() } class NestedView : UIImageView { var text : String = "Nested View" }