影响iOS UI初始化的推荐方法是什么?

时间:2013-11-21 01:47:40

标签: ios objective-c ios7 uikit

在iOS视图控制器中,我通常使用以下代码:

- (void)viewDidLoad
{
    UIScrollView *scrollView = [[UIScrollView alloc] init];
    // [several lines of code to configure the view]
    [self.view addSubview:scrollView]
}

这往往会变得混乱,所以我添加一个辅助方法(例如createScrollView)来分配,初始化和配置视图。这是构建视图的既定模式,是否有一个命名帮助方法的约定?我注意到的一件事是由于ARC而不允许使用名称initScrollView

1 个答案:

答案 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);
}

这种方法可以帮助您成功处理视图调整大小和旋转事件。