Два разных подхода к подпредставлениям

Что касается подпредставлений в 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];

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


person Paul    schedule 10.07.2016    source источник
comment
если кадр вашего myView не совпадает с кадром вашего self.view, он будет выглядеть иначе. Потому что рамка вида настроена как его прямой родительский вид.   -  person Surely    schedule 10.07.2016


Ответы (1)


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

person Abd Aboudi    schedule 10.07.2016