两种不同的子视图方法

时间:2016-07-10 09:50:45

标签: ios objective-c uiview subview

关于ios中的子视图,我有一个覆盖整个屏幕的视图,然后我创建并导入另一个视图,它只是一个红色方块。我想知道这两种方法之间是否存在任何差异或优势:

方法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];

唯一的区别是,在第一种情况下,我将两个视图添加为主属性视图的子视图,而在第二种情况下,我将第二个视图添加为第一个视图的子视图。它们在屏幕上看起来一样。 感谢

1 个答案:

答案 0 :(得分:0)

我认为,如果你改变任何(myView)约束,第一种方法的差异,firstFrame将不会改变,但在第二种方法中它将会改变。