我正在创建一个UIControl子类,因此以编程方式布置其中的所有内容。现在我已经完成了它,我需要在各种屏幕上多次放置它。我知道你不能为iOS制作一个IB插件,但是没有办法在IB中使用UIView并将其大小/放置在我应该控制的位置,然后将其'Custom Class属性设置为我的UIControl的子类?我知道我不会看到它在IB中的显示方式,但至少这让我可以设置相对于屏幕上其他内容的整体大小和位置。我还在viewController中创建了IBOutlets,并将IB中的视图正确连接到它们。但是在运行时我没有看到任何自定义,当我在initWithFrame:
或loadView
中设置断点时,我从未看到我的代码被调用。我该怎么做?
答案 0 :(得分:10)
您可以将UIView拖到nib文件上,然后使用身份检查器(command-opt-3)将类更改为UIView的任何子类。
您需要在从nib加载时调用的初始化代码中设置子类,即initWithFrame:
中的不。如果您要编写完整性,那么这两种方法(基于编程和基于nib的)应该调用相同的初始化。
如果您愿意,只需在初始化代码中创建并addSubview:
,然后实施layoutSubviews
来布置自定义子视图。无论何时调整视图以及最初调整视图,都会调用此方法。