deleted-mezhevikin
@deleted-mezhevikin

Как прижать UIView к низу родительской view с помощью NSLayoutConstraint?

1d12e066b822573117cb563ebaf145bf.png


Есть UIView (голубая на рисунке) фиксированной высотой 45px, нужно ее прижать к низу с помощью autolayout (NSLayoutConstraint).

Получилось прижать таким образом UIButton, но непонятно как это сделать с view.


p.s. интересует реализация кодом без InterfaceBulder


Пробовал так:
CGRect frame = CGRectMake(0, 500, self.view.frame.size.width, 45);
UIView *bottom = [[UIView alloc] initWithFrame:frame];
bottom.translatesAutoresizingMaskIntoConstraints = NO;
bottom.backgroundColor = [UIColor blueColor];
[self.view addSubview:bottom];

 NSLayoutConstraint *constaint1 = [NSLayoutConstraint constraintWithItem: bottom
                                                                 attribute: NSLayoutAttributeBottom
                                                                 relatedBy: NSLayoutRelationEqual
                                                                    toItem: self.view
                                                                 attribute: NSLayoutAttributeBottom
                                                                multiplier: 1.0f
                                                                  constant: 0.0f
                                     ];
    
    
NSLayoutConstraint *constaint2 = [NSLayoutConstraint constraintWithItem: bottom
                                                                 attribute: NSLayoutAttributeLeading
                                                                 relatedBy: NSLayoutRelationEqual
                                                                    toItem: self.view
                                                                 attribute: NSLayoutAttributeLeading
                                                                multiplier: 1.0f
                                                                  constant: 00.0f
                                     ];
    
    
[self.view addConstraints:@[constaint1, constaint2]];
  • Вопрос задан
  • 4695 просмотров
Решения вопроса 1
мне больше нравится использовать Visual Format Language

    NSArray *verticalConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"V:[view(height)]-|"
                                                                           options:0
                                                                           metrics:@{
                                                                               @"height" : @(50)
                                                                           }
                                                                             views:@{
                                                                                 @"view" : view
                                                                             }];

    NSArray *horizontalConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-0-[view]-0-|"
                                                                             options:0
                                                                             metrics:nil
                                                                               views:@{
                                                                                   @"view" : view
                                                                               }];
    [self.view addConstraints:verticalConstraints];
    [self.view addConstraints:horizontalConstraints];
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы