Dem*_*ath 26 objective-c uiview ios
我正在尝试将UIView子类化.我已经有一些指定的初始化程序,我希望有可能从代码或Nib文件初始化我的自定义视图.因此,Apple告诉我们使用指定的初始化程序,但他们不是自己做 - initWithCoder:不打电话initWithFrame:.在两种情况下,如何调用指定的初始化程序,我该怎么办?有没有办法做到这一点?
Rok*_*arc 42
在一个方法中打包您的特殊初始化.它可以是私有的(在.m中声明).然后覆盖两个初始值设定项并从其中调用init-method.
- (void)myInitialization
{
//do your stuff
}
- (id)initWithFrame:(CGRect)aRect
{
self = [super initWithFrame:aRect];
if (self)
{
[self myInitialization];
}
return self;
}
- (id)initWithCoder:(NSCoder*)aDecoder
{
self = [super initWithCoder:aDecoder];
if (self)
{
[self myInitialization];
}
return self;
}
Run Code Online (Sandbox Code Playgroud)
如你所说:
initWithFrame: - 建议您实现此方法.除了此方法之外,您还可以实现自定义初始化方法,或者代替此方法.
initWithCoder: - 如果从Interface Builder nib文件加载视图并且视图需要自定义初始化,请实现此方法.
我要做的只是一种方法,两者都会调用,这将有你想要在你的实现中的常见行为UIView.
| 归档时间: |
|
| 查看次数: |
14569 次 |
| 最近记录: |