zoukankan      html  css  js  c++  java
  • 在autolayout中加入每个view的weight

    在autolayout中加入每个view的weight,这样相互之间的关系就更明确,比如:

      double iconViewWeight = 1;
        double titleLabelWeight = 12;
        double timeLabelWeight = 3;
        
        double standardWeigth = iconViewWeight;
        double iconViewWeightRatio = iconViewWeight / standardWeigth;
        double titileLabelWightRatio = titleLabelWeight / standardWeigth;
        double timeLabelWightRatio = timeLabelWeight / standardWeigth;
        
        UIView *standardView = _iconView;
        
        NSDictionary *views = NSDictionaryOfVariableBindings(_iconView, _titileLabel, _timeLabel, bgImageView);
        NSLayoutConstraint *constraint = [NSLayoutConstraint constraintWithItem:_iconView
                                                                      attribute:NSLayoutAttributeWidth
                                                                      relatedBy:NSLayoutRelationEqual
                                                                         toItem:standardView
                                                                      attribute:NSLayoutAttributeWidth
                                                                     multiplier:iconViewWeightRatio
                                                                       constant:0.0f];
        [self addConstraint:constraint];
        
        constraint = [NSLayoutConstraint constraintWithItem:_titileLabel
                                                  attribute:NSLayoutAttributeWidth
                                                  relatedBy:NSLayoutRelationEqual
                                                     toItem:standardView
                                                  attribute:NSLayoutAttributeWidth
                                                 multiplier:titileLabelWightRatio
                                                   constant:0.0f];
        [self addConstraint:constraint];
        constraint = [NSLayoutConstraint constraintWithItem:_timeLabel
                                                  attribute:NSLayoutAttributeWidth
                                                  relatedBy:NSLayoutRelationEqual
                                                     toItem:standardView
                                                  attribute:NSLayoutAttributeWidth
                                                 multiplier:timeLabelWightRatio
                                                   constant:0.0f];
        [self addConstraint:constraint];
        
        constraints = [NSLayoutConstraint constraintsWithVisualFormat:@"|-[_iconView]-[_titileLabel]-[_timeLabel]-|"
                                                              options:NSLayoutFormatAlignAllCenterY
                                                              metrics:nil
                                                                views:views];
        [self addConstraints:constraints];
    
        constraint = [NSLayoutConstraint constraintWithItem:_iconView
                                                  attribute:NSLayoutAttributeCenterY
                                                  relatedBy:NSLayoutRelationEqual
                                                     toItem:self.contentView
                                                  attribute:NSLayoutAttributeCenterY
                                                 multiplier:1.0
                                                   constant:0.0f];
        [self addConstraint:constraint];

    代码更加简介,但这适用于一些特定的场合

  • 相关阅读:
    Linux mysql忘记密码 修改密码 解决方法
    nginx http转https后js,css样式丢失/没显示
    Spring cron 表达式
    Python 学习笔记 -- 装饰器
    Python 学习笔记 -- 一些常用的BIF
    Python 学习笔记 -- 类的一些小知识
    Python 学习笔记 -- 继承与多态(入门级实例)
    Python 基础实战 -- 小游戏之乌龟吃鱼(其实只能看不能玩.....)
    Python 学习笔记 -- 类的访问限制
    Python 学习笔记 -- 类和实例
  • 原文地址:https://www.cnblogs.com/scaptain/p/4172749.html
Copyright © 2011-2022 走看看