【问题标题】:Visual formatting language, button width and height constraint视觉格式化语言、按钮宽度和高度约束
【发布时间】:2014-07-09 12:42:58
【问题描述】:

有没有办法用 NSLayoutConstraints 设置 UIView 的宽度和高度? 例如我有以下约束设置

subView.setTranslatesAutoresizingMaskIntoConstraints(false);
        let cons:NSArray =   NSLayoutConstraint.constraintsWithVisualFormat("[subView(99)]", options:nil, metrics: nil, views: ["subView":subView]);
        self.view.addConstraints(cons);

这仅设置宽度,如何添加高度?

【问题讨论】:

    标签: ios objective-c swift nslayoutconstraint autolayout


    【解决方案1】:

    两种可能的选择:

    [view setTranslatesAutoresizingMaskIntoConstraints:NO];
    NSArray* vConstraints = [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[view(25)]|" options:0 metrics:nil views:view]];
    [parentView addConstraints:vConstraints];
    

    NSLayoutConstraint* vConstraint = [NSLayoutConstraint constraintWithItem:view attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:25];
    [parentView addConstraint:vConstraint];
    

    【讨论】:

      【解决方案2】:

      对于垂直布局,只需将 V: 添加到 VFL 字符串的开头:

        subView.setTranslatesAutoresizingMaskIntoConstraints(false);
      
        let horizontalCons:NSArray = NSLayoutConstraint.constraintsWithVisualFormat("[subView(99)]", options:nil, metrics: nil, views: ["subView":subView]);
        let veritcleCons:NSArray = NSLayoutConstraint.constraintsWithVisualFormat("V:[subView(50)]", options:nil, metrics: nil, views: ["subView":subView]);
      
        self.view.addConstraints(horizontalCons);
        self.view.addConstraints(veritcleCons);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-10
        • 1970-01-01
        • 1970-01-01
        • 2018-02-25
        • 1970-01-01
        • 2013-11-29
        相关资源
        最近更新 更多