2016-07-10 6 views
0

Что касается subviews в ios, у меня есть представление, которое охватывает весь экран, тогда я создаю и импортирую другое представление, которое является только красным квадратом поверх него. Мне было интересно, если есть какая-то разница или advantadge между этими двумя подходами:Два разных подхода к subviews

Подход 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]; 

Единственное различие в том, что в первом случае я добавьте оба представления в виде представлений основного вида свойств, тогда как во втором случае я добавляю второе представление в качестве подсмотра первого представления. Они выглядят одинаково на экране.

+0

если ваш рама myView не такой же, как ваш self.view, он будет выглядеть по-другому. Поскольку кадр представления настраивается как его прямое родительское представление. – Surely

ответ

0

Разница на мой взгляд, что при первом подходе, если вы измените какие-либо ограничения (myView), firstFrame не изменится, а во втором подходе это произойдет.

Смежные вопросы