何かカスタムが必要だったので、UIView サブクラスを作成しました。
次に、xibs の 1 つに UIView を追加し、クラスを UIView からカスタム クラスに変更しました。実行すると、カスタム クラスがインスタンス化されません。
どうすればいいですか?カスタム クラスのインスタンス化に使用するコンストラクタは?
何かカスタムが必要だったので、UIView サブクラスを作成しました。
次に、xibs の 1 つに UIView を追加し、クラスを UIView からカスタム クラスに変更しました。実行すると、カスタム クラスがインスタンス化されません。
どうすればいいですか?カスタム クラスのインスタンス化に使用するコンストラクタは?
でxib
インスタンス化されます
- (id)initWithCoder:(NSCoder *)decoder
の接続やその他のオブジェクトが利用可能であることに依存している場合はxib
、コードを追加することもできます。
- (void)awakeFromNib
これは、オブジェクトが... is guaranteed to have all its outlet and action connections already established.
コードの重複に対処するには、次のようなことができます
- (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self commonInit];
}
return self;
}
- (instancetype)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
if (self) {
[self commonInit];
}
return self;
}
- (void)commonInit
{
// any common setup
}