Ios 我应该使用XIB还是故事板?

Ios 我应该使用XIB还是故事板?,ios,ios6,nslayoutconstraint,Ios,Ios6,Nslayoutconstraint,我是一个新的iOS开发者。我喜欢自动布局和编程UI元素。NSLayoutConstraints的使用对我来说非常有意义,而调整其值的地方就在代码中 然而,我在网上找到的关于创建iOS UI元素的几乎所有信息都使用XIB或故事板。关于何时使用其中一个或另一个,有很多讨论,包括在这里,但我似乎找不到任何关于为什么有人可能想跳过这两个,而只是在代码中完成 有什么基本的东西我在这里遗漏了吗 例如,下面是我的一段代码。我不能在没有XIB或故事板的情况下继续这样做吗 UIView *overlayV

我是一个新的iOS开发者。我喜欢自动布局和编程UI元素。NSLayoutConstraints的使用对我来说非常有意义,而调整其值的地方就在代码中

然而,我在网上找到的关于创建iOS UI元素的几乎所有信息都使用XIB或故事板。关于何时使用其中一个或另一个,有很多讨论,包括在这里,但我似乎找不到任何关于为什么有人可能想跳过这两个,而只是在代码中完成

有什么基本的东西我在这里遗漏了吗

例如,下面是我的一段代码。我不能在没有XIB或故事板的情况下继续这样做吗

    UIView *overlayView = [[UIView alloc] initWithFrame:[self getScreenFrameForCurrentOrientation]];
    overlayView.opaque = NO;
    mHighlightImagePicker.cameraOverlayView = overlayView;

    CGSize screenSize = [[UIScreen mainScreen] bounds].size;        
    float cameraAspectRatio = 4.0 / 3.0;
    float imageWidth = floorf(screenSize.width * cameraAspectRatio);
    float scale = ceilf(((screenSize.height - 90) / imageWidth) * 100.0) / 100.0;
    mHighlightImagePicker.cameraViewTransform = CGAffineTransformMakeScale(scale, scale);

    mCameraToolBar=[[UIImageView alloc] init];
    mCameraToolBar.image =[UIImage imageNamed:@"review_bottom_bar"];
    mCameraToolBar.userInteractionEnabled = YES;
    mCameraToolBar.hidden = NO;        
    [mCameraToolBar setTranslatesAutoresizingMaskIntoConstraints:NO];
    [overlayView addConstraint:
     [NSLayoutConstraint constraintWithItem:mCameraToolBar
                                  attribute:NSLayoutAttributeTop
                                  relatedBy:NSLayoutRelationEqual
                                     toItem:overlayView
                                  attribute:NSLayoutAttributeBottom
                                 multiplier:1
                                   constant:-70]];
    [overlayView addConstraint:
     [NSLayoutConstraint constraintWithItem:mCameraToolBar
                                  attribute:NSLayoutAttributeLeft
                                  relatedBy:NSLayoutRelationEqual
                                     toItem:overlayView
                                  attribute:NSLayoutAttributeLeft
                                 multiplier:1
                                   constant:0]];
    [overlayView addConstraint:
     [NSLayoutConstraint constraintWithItem:mCameraToolBar
                                  attribute:NSLayoutAttributeRight
                                  relatedBy:NSLayoutRelationEqual
                                     toItem:overlayView
                                  attribute:NSLayoutAttributeRight
                                 multiplier:1
                                   constant:0]];
    [overlayView addConstraint:
     [NSLayoutConstraint constraintWithItem:mCameraToolBar
                                  attribute:NSLayoutAttributeBottom
                                  relatedBy:NSLayoutRelationEqual
                                     toItem:overlayView
                                  attribute:NSLayoutAttributeBottom
                                 multiplier:1
                                   constant:0]];
    [overlayView addSubview:mCameraToolBar];

如果你真的愿意,你可以在代码中完成这一切。然而,使用.NIB和故事板的原因是它通常更快。我个人将两者结合使用。当我在故事板中做一些简单的事情时,我会使用故事板。如果我需要添加一些动态变化的内容,我通常会通过编程来完成。我认为,通过避免使用故事板和NIB文件,你最终不得不重新发明轮子,至少对我来说,完成一个程序可能需要更长的时间,然后只是学习如何在任何特定情况下使用最好的工具。

如果你真的愿意,你可以在代码中完成这一切。然而,使用.NIB和故事板的原因是它通常更快。我个人将两者结合使用。当我在故事板中做一些简单的事情时,我会使用故事板。如果我需要添加一些动态变化的内容,我通常会通过编程来完成。我认为,通过避免使用故事板和NIB文件,你最终不得不重新发明轮子,至少对我来说,完成一个程序可能需要更长的时间,然后只是学习如何在任何给定情况下使用最好的工具。

你肯定可以用编程的方式创建视图,使用。如果你在谷歌上搜索“loadView教程”,你可能会得到一大堆相关的点击率。话虽如此,我认为你可以更有效地设计带有故事板和NIB的用户界面。对于新开发人员,我建议您从故事板开始,只在需要的地方使用代码。此外,如果以编程方式添加约束(即,你不关心预IOS 6支持),考虑视觉格式化语言,例如“代码> @”H:[McCopaToLoBar ]“< /C>和<代码> @”(McCopaToOLBar(70)] < <代码>。对我来说,所有的故事板和XIBs都是杂乱的。拥有3个选项让我觉得我必须学习3倍的知识才能做出明智的选择。这就是说,我对代码总是很满意,它可以为您提供更多的配置选项,最后,我只是一个静态分析的吸盘,您可以忘记使用interface builder之类的工具(例如,让我们匹配神奇的字符串)。从我有限的经验来看,建议使用故事板/XIB的人要么是初级开发人员,要么是公司开发人员,对于他们来说,视图的数量是一个生产力指标。如果你在谷歌上搜索“loadView教程”,你可能会得到一大堆相关的点击率。话虽如此,我认为你可以更有效地设计带有故事板和NIB的用户界面。对于新开发人员,我建议您从故事板开始,只在需要的地方使用代码。此外,如果以编程方式添加约束(即,你不关心预IOS 6支持),考虑视觉格式化语言,例如“代码> @”H:[McCopaToLoBar ]“< /C>和<代码> @”(McCopaToOLBar(70)] < <代码>。对我来说,所有的故事板和XIBs都是杂乱的。拥有3个选项让我觉得我必须学习3倍的知识才能做出明智的选择。这就是说,我对代码总是很满意,它可以为您提供更多的配置选项,最后,我只是一个静态分析的吸盘,您可以忘记使用interface builder之类的工具(例如,让我们匹配神奇的字符串)。根据我有限的经验,建议使用故事板/XIB的人要么是初级开发人员,要么是公司开发人员,对他们来说,视图数量是一个生产力指标。