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

可用的嵌套类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" } 
Interesting Posts