我正在创建一个自定义UICustomView,它是UIView的子视图。我可以在其中创建一个自定义的指定初始化程序,该初始化程序将要求委托和数据源。但这仅在控件使用者将以编程方式创建控件时调用。

但是,我想提供基本的布局支持。应该可以将一个空的UIView放入任何NIB文件中,然后将其在Identity Inspector中的类更改为UICustomView。就像您可以将其他Apple股票控件放入笔尖一样。

但是,我将如何迫使消费者提供委托和数据源呢?

最佳答案

不幸的是,无法从nib文件中使用自定义初始化程序。最常见的是,需要数据源和委托的视图使用视图类中的IBOutlet属性进行连接,或者在呈现视图之前在视图控制器中设置其属性。

如果要强制使用者提供委托和数据源,则可以始终在-viewDidLoad方法中放入一个断言,并确保已将它们连接好(并在使用时处理正确的协议)。

10-05 20:24