在iOS视图控制器中,我通常使用以下代码:
- (void)viewDidLoad
{
UIScrollView *scrollView = [[UIScrollView alloc] init];
// [several lines of code to configure the view]
[self.view addSubview:scrollView]
}
这往往会变得混乱,所以我添加一个辅助方法(例如createScrollView
)来分配,初始化和配置视图。这是构建视图的既定模式,是否有一个命名帮助方法的约定?我注意到的一件事是由于ARC而不允许使用名称initScrollView
。
答案 0 :(得分:1)
这是我遵循的模式:
在init
/ initWithFrame:
中创建对象,并设置在此控制器生命周期内永远不会更改的任何属性:
- (instancetype) init {
self = [super init];
if (self) {
_textField = [UITextField new];
_textField.keyboardType = UIKeyboardTypeEmailAddress;
}
return self;
}
如果你想将这些方法分成createTextFields
等方法,那很好,虽然如果你能看到在一个地方实例化的所有内容的列表,它会更容易调试
在viewDidLoad
中,设置视图层次结构:
- (void) viewDidLoad {
[self.view addSubview:self.textField];
}
在viewWillLayoutSubviews
中,设置框架(如果您未使用自动布局):
- (void) viewWillLayoutSubviews {
self.textField.frame = CGRectMake(10, 44, 320, 50);
}
这种方法可以帮助您成功处理视图调整大小和旋转事件。