gpt4 book ai didi

ios - 对 initWithCoder 和自定义 UIViews 感到困惑

转载 作者:技术小花猫 更新时间:2023-10-29 11:14:15 25 4
gpt4 key购买 nike

我正在尝试创建一个自定义 UIView,它从 nib 文件中引入它的 View 。

在我的 Controller 中我有类似的东西:

self.arcView=[[JtView alloc] initWithCoder:self];
self.arcView.backgroundColor=[UIColor redColor];
self.arcView.frame=CGRectMake(30.0f,200.0f, 100.0f, 100.0f);
[self.view addSubview:self.arcView];

我的第一个问题是initWithCoder (NSCoder *) 的参数应该包含什么?我尝试了 self 但得到了一个不兼容的指针类型,但这似乎有效。但关于问题 #2:

其次,争论是在将自定义 View 放入框架中时,您将 initWithCodernibsinitWithFrame 一起使用。嗯,我想在我的自定义 View 中加载一个 nib,然后将它放入一个框架中。我可以像上面那样只添加一个框架就可以了吗(看起来可以)?

最佳答案

initWithCoderinitviewDidLoad 方法之前被调用。而你从不调用它。当您从 mainBundle 加载 nib 文件时,它会被调用。

但是,它接收 NSCoder 作为参数。检查它在类中的调用方式:

- (id)initWithCoder:(NSCoder *)aDecoder {
if ((self = [super initWithCoder:aDecoder])) {
[self baseClassInit];
}
return self;
}

- (void)baseClassInit {

//initialize all ivars and properties
}

关于ios - 对 initWithCoder 和自定义 UIViews 感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15149935/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com