gpt4 book ai didi

ios - 我应该使用 XIB 还是 Storyboards?

转载 作者:行者123 更新时间:2023-12-01 17:56:18 28 4
gpt4 key购买 nike

我是一个相当新的 iOS 开发人员。我喜欢 AutoLayout 和程序化 UI 元素。 NSLayoutConstraints 的使用对我来说非常有意义,而调整它们的值的地方就在代码中。

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

我在这里缺少一些基本的东西吗?

例如,这是我的代码片段。我不能在没有 XIB 或 Storyboard 的情况下继续这种方式吗?

    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 和 Storyboard的原因是它通常更快。我个人使用两者的组合。当我做一些在 Storyboard中很容易做的事情时,我会使用 Storyboard。如果我需要添加一些动态变化的东西,我经常以编程方式进行。我认为通过避免使用 Storyboards 和 NIB 文件,你最终不得不重新发明轮子,至少对我来说,完成一个程序可能需要更长的时间,然后才学习如何在任何给定情况下使用最好的工具。

关于ios - 我应该使用 XIB 还是 Storyboards?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16947058/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com