【发布时间】:2014-02-24 13:25:24
【问题描述】:
我正在寻找如何使用传入参数的自定义 init 方法正确地继承 UIView。
我在这里阅读了UIView 类参考文档:https://developer.apple.com/library/ios/documentation/uikit/reference/uiview_class/uiview/uiview.html
目前 UIView 正在UIViewController 中创建,并且可以移动/重构到它自己的子类中。此外,目前视图完全是在代码中创建的,并且框架是通过添加到视图本身的约束来计算的。
文档说如下
initWithFrame: - 建议你实现这个方法。除了或代替此方法,您还可以实现自定义初始化方法。
问题
因为我没有创建一个框架作为视图的起点/它也不是从 XIB 加载的,所以对它进行子类化的正确过程是什么?
这是否正确:
-(id)init {
NSLog(@"%s",__PRETTY_FUNCTION__);
self = [super init];
if (self) {
// Init code
[self spmCustomInit];
}
return self;
}
-(void)spmCustomInit {
NSLog(@"%s",__PRETTY_FUNCTION__);
}
如果这是正确的,我需要进一步更改。创建视图时,它会根据信息创建一些子视图。此外,布局也因难度级别而异。
其他问题
如何创建传入参数的进一步自定义 init 方法?
例如,如果我创建了一个名为
spmInitWithWord:(NSString *)word difficulty:(GameTurnDifficulty)difficulty
然后如何调用标准的 init 方法。然后我会在最初创建视图时调用这个自定义初始化吗? [[UICustomViewExample alloc] spmInitWithWord:testWord difficulty:turnDifficulty]??
【问题讨论】:
标签: ios objective-c uiview ios6 ios7