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];

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

  • 相关阅读:
    js 数组,字符串,json互相转换
    数据库相关概念
    信号量,Event, 定时器
    解决Navicat远程连接mysql很慢的方法
    Ubuntu安装mycli,让mysql命令行可以自动提示
    Requests模块调用接口
    selenium chrome浏览器对应chrome版本
    selenium 元素定位+显示等待 方法封装
    smtplib 发送文本文件和附件文件 的类方法封装
    python 数据库的方法封装
  • 原文地址:https://www.cnblogs.com/scaptain/p/4172749.html
Copyright © 2011-2022 走看看