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

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

  • 相关阅读:
    支付宝支付
    七牛云存储介绍
    ubuntu开发机初始化
    Unity3D 正六边形,环状扩散,紧密分布,的程序
    Unity属性的封装、继承、方法隐藏
    DateTime.Now的一些用法
    [转] 增强现实 colAR Mix 浅析
    [转] Vuforia AR 中的阴影与浮现效果
    网址整理
    [转] 如何使用unity Vs来进行断点调试
  • 原文地址:https://www.cnblogs.com/scaptain/p/4172749.html
Copyright © 2011-2022 走看看