<分区>
标签 ios objective-c ios7 uikit
在 iOS View Controller 中,我通常有如下代码:
- (void)viewDidLoad
{
UIScrollView *scrollView = [[UIScrollView alloc] init];
// [several lines of code to configure the view]
[self.view addSubview:scrollView]
}
这往往会变得困惑,所以我添加了一个辅助方法(例如 createScrollView
)来分配、初始化和配置 View 。这是构建 View 的既定模式吗?是否有命名辅助方法的约定?我注意到的一件事是这个名字 initScrollView
由于 ARC 而不允许。
最佳答案
这是我遵循的模式:
在init
/initWithFrame:
中创建对象,并设置在此 Controller 生命周期内永远不会改变的任何属性:
- (instancetype) init {
self = [super init];
if (self) {
_textField = [UITextField new];
_textField.keyboardType = UIKeyboardTypeEmailAddress;
}
return self;
}
如果您想将它们分离到诸如 createTextFields
等方法中,那很好,但如果您可以在一个地方看到实例化的所有内容的列表,则调试起来会更容易。
在viewDidLoad
中,设置 View 层次结构:
- (void) viewDidLoad {
[self.view addSubview:self.textField];
}
在 viewWillLayoutSubviews
中,设置框架(如果您不使用自动布局):
- (void) viewWillLayoutSubviews {
self.textField.frame = CGRectMake(10, 44, 320, 50);
}
此方法将使您成功处理 View 大小调整和旋转事件。
关于ios - 考虑 iOS UI 初始化的推荐方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20110936/