1

私はかなり新しい 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];
4

1 に答える 1

5

本当にやりたいのであれば、すべてコードで行うことができます。ただし、.NIB とストーリーボードを使用する理由は、多くの場合高速であるためです。私は個人的に2つの組み合わせを使用しています。絵コンテでやりやすいことをするときは絵コンテを使います。動的に変化するものを追加する必要がある場合は、プログラムで行うことがよくあります。ストーリーボードと NIB ファイルの使用を避けることで、車輪を再発明する必要が生じると思います。少なくとも私にとっては、プログラムを完成させてから、特定の状況に最適なツールを使用する方法を学ぶのにおそらくはるかに時間がかかります.

于 2013-06-05T18:20:57.667 に答える