2016-07-10 5 views
0

iosのサブビューについては、画面全体をカバーするビューを持っています。次に、その上に赤い四角形の別のビューを作成して読み込みます。これら二つのアプローチの間の任意の差又はadvantadgeがある場合、私は思っていた:サブビューへの2つの異なるアプローチ

アプローチ1:

//set the view 
    UIView *myView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    myView.backgroundColor = [UIColor whiteColor]; 
    [self.view addSubview:myView]; 

//setTheSquareView 
    CGRect firstFrame = CGRectMake(160, 240, 100, 150); 
    HypnosisView *firstView = [[HypnosisView alloc] initWithFrame:firstFrame]; 
    firstView.backgroundColor = [UIColor redColor]; 
    [self.view addSubview:firstView]; 

とアプローチ2:

//set the view 
    UIView *myView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    myView.backgroundColor = [UIColor whiteColor]; 
    [self.view addSubview:myView]; 

//setTheSquareView 
    CGRect firstFrame = CGRectMake(160, 240, 100, 150); 
    HypnosisView *firstView = [[HypnosisView alloc] initWithFrame:firstFrame]; 
    firstView.backgroundColor = [UIColor redColor]; 
    [myView addSubview:firstView]; 

の唯一の違いは、その最初のケースにおいてIであります両方のビューをメインプロパティビューのサブビューとして追加します。一方、2番目のビューでは、最初のビューのサブビューとして2番目のビューを追加します。彼らは画面上で同じように見えます。 ありがとう

+0

あなたのmyViewのフレームがあなたのself.viewと同じフレームでない場合、それは異なって見えます。ビューのフレームは直接の親ビューとして調整されるためです。 – Surely

答えて

0

(myView)制約のいずれかを変更した場合の最初のアプローチでは、firstFrameは変更されませんが、2番目のアプローチでは違いがあります。

関連する問題