Как программно сделать зависимость высоты просмотра uiimageview от uiview? - PullRequest
0 голосов
/ 29 марта 2020

Это мой код. Я пытаюсь начать просмотр изображений (баннер) с (0,0), но мой просмотр (кнопка) начнется после безопасной области. Высота просмотра кнопок будет 250 или 180 в зависимости от устройства. Высота просмотра изображения будет равна высоте просмотра кнопки + безопасной области. Но, похоже, есть какая-то ошибка. Изображение покрывает всю область, но высота не обновляется. Согласитесь, если высота кнопки равна 250 в iphone 11 макс., То размер баннера должен быть 250 + 44. Показывается как 250 + 44, но когда я собираюсь использовать высоту баннера где-нибудь еще в моем коде Я получаю высоту баннера только 250. Почему это происходит? Извините за мое плохое объяснение.

-(void)addBanner{
    UIImage *banner = [UIImage imageNamed:@"Banner Top"];
    bannerTop = [[UIImageView alloc]initWithImage:banner];
    [contentView addSubview:bannerTop];
    bannerTop.translatesAutoresizingMaskIntoConstraints = NO;
    [bannerTop.topAnchor constraintEqualToAnchor:self.contentView.topAnchor].active=YES;
    [bannerTop.leftAnchor constraintEqualToAnchor:self.contentView.leftAnchor].active=YES;
    [bannerTop.rightAnchor constraintEqualToAnchor:self.contentView.rightAnchor].active=YES;
    [bannerTop setContentMode:UIViewContentModeScaleAspectFill];
}

-(void)addButtonView{
    buttonView = [[UIView alloc]init];
    buttonView.translatesAutoresizingMaskIntoConstraints = NO;
    [contentView addSubview:buttonView];
    [buttonView.topAnchor constraintEqualToAnchor:self.contentView.safeAreaLayoutGuide.topAnchor].active=YES;
    [buttonView.leftAnchor constraintEqualToAnchor:contentView.leftAnchor].active=YES;
    [buttonView.rightAnchor constraintEqualToAnchor:contentView.rightAnchor].active=YES;
    if((deviceWidth==320 && deviceHeight==568) || (deviceHeight==320 && deviceWidth==568)){
        [buttonView.heightAnchor constraintEqualToConstant:180].active=YES;
    }
    else{
        [buttonView.heightAnchor constraintEqualToConstant:250].active=YES;
    }
    [bannerTop.bottomAnchor constraintEqualToAnchor:self.buttonView.bottomAnchor].active=YES;
    [bannerTop updateConstraints];
    skip = [[UIButton alloc]init];
    skip.translatesAutoresizingMaskIntoConstraints = NO;
    [buttonView addSubview:skip];
    [skip.topAnchor constraintEqualToAnchor:buttonView.topAnchor constant:30].active=YES;
    [skip.rightAnchor constraintEqualToAnchor:buttonView.rightAnchor constant:-30].active=YES;
    [skip.heightAnchor constraintEqualToConstant:30].active=YES;
    [skip.widthAnchor constraintEqualToConstant:50].active=YES;
    [skip setTitle:@"Skip" forState:UIControlStateNormal];
    skip.backgroundColor = [UIColor redColor];
    buttonView.backgroundColor = [UIColor clearColor];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...