如何在运行时设置自适应布局?

时间:2015-02-09 07:27:22

标签: ios objective-c adaptive-design

如何在运行时设置自适应布局?

我正在使用具有多个视图的自适应布局开发iOS应用。我想在弹出键盘时更改视图位置。

我正在使用以下自动布局编码,但它无法正常工作。

NSArray *constraint_POS_V = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-vSpacing-[redView]-vSpacing-|"                                                                        options:NSLayoutFormatDirectionLeadingToTrailing
                                                                    metrics:metrics
                                                                      views:viewsDictionary];
NSArray *constraint_POS_H = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-hSpacing-[redView]-hSpacing-|"
                                                                    options:NSLayoutFormatDirectionLeadingToTrailing
                                                                    metrics:metrics
                                                                      views:viewsDictionary];
[self.view addConstraints:constraint_POS_V];
[self.view addConstraints:constraint_POS_H];

1 个答案:

答案 0 :(得分:0)

您必须在运行时为约束设置常量值。为视图选择顶部布局约束(viewTopLayoutConstraint)的插座。

- (void) keyboardWillShow:(NSNotification *) notification
{
    [UIView animateWithDuration:0.3 animations:^
    {
        _viewTopLayoutConstraint.constant = -100;
        [self.view layoutIfNeeded];
    }];
}