私はかなり新しい iOS 開発者です。AutoLayout とプログラムによる UI 要素が大好きです。NSLayoutConstraints の使用は私にとって非常に理にかなっており、それらの値を調整するのが理にかなっているのはコード内です。
それでも、iOS UI 要素の作成に関してオンラインで見つけることができるほとんどすべての情報は、XIB またはストーリーボードのいずれかを使用しています。ここSOを含め、どちらをいつ使用するかについては多くの話がありますが、誰かがそれらの両方をスキップしてすべてをコードで実行したい理由については何も見つけられないようです.
ここで欠けている基本的なものはありますか?
たとえば、これが私のコードのスニペットです。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];