<i id='ip66m'></i>
<acronym id='ip66m'><em id='ip66m'></em><td id='ip66m'><div id='ip66m'></div></td></acronym><address id='ip66m'><big id='ip66m'><big id='ip66m'></big><legend id='ip66m'></legend></big></address>

    <span id='ip66m'></span>
  1. <tr id='ip66m'><strong id='ip66m'></strong><small id='ip66m'></small><button id='ip66m'></button><li id='ip66m'><noscript id='ip66m'><big id='ip66m'></big><dt id='ip66m'></dt></noscript></li></tr><ol id='ip66m'><table id='ip66m'><blockquote id='ip66m'><tbody id='ip66m'></tbody></blockquote></table></ol><u id='ip66m'></u><kbd id='ip66m'><kbd id='ip66m'></kbd></kbd>
      <fieldset id='ip66m'></fieldset>

      <code id='ip66m'><strong id='ip66m'></strong></code>

        <ins id='ip66m'></ins>

          <i id='ip66m'><div id='ip66m'><ins id='ip66m'></ins></div></i>
          <dl id='ip66m'></dl>
        1. iOS Masonry 等间隔或等宽高排列多个控件

          • 时间:
          • 浏览:8
          • 来源:124软件资讯网

            masonry 现在提供了响应的接口  ,直接使用即可  ,这里记载或允许以提醒某些不知道的人而已 !

            一、先诠释相关API

            /**
             *  distribute with fixed spacing
             *
             *  @param axisType     横排照旧竖排
             *  @param fixedSpacing 两个控件距离
             *  @param leadSpacing  第一个控件与边缘的距离
             *  @param tailSpacing  最后一个控件与边缘的距离
             */
            - (void)mas_distributeViewsAlongAxis:(MASAxisType)axisType withFixedSpacing:(CGFloat)fixedSpacing leadSpacing:(CGFloat)leadSpacing tailSpacing:(CGFloat)tailSpacing;
            /**
             *  distribute with fixed item size
             *
             *  @param axisType        横排照旧竖排
             *  @param fixedItemLength 控件的宽或高
             *  @param leadSpacing     第一个控件与边缘的距离
             *  @param tailSpacing     最后一个控件与边缘的距离
             */
            - (void)mas_distributeViewsAlongAxis:(MASAxisType)axisType withFixedItemLength:(CGFloat)fixedItemLength leadSpacing:(CGFloat)leadSpacing tailSpacing:(CGFloat)tailSpacing;

            两个API  ,分为牢固距离不牢固宽高 ,牢固宽高不牢固距离  ,凭据详细需求使用响应的即可  。

            需要注重的是: 横排的时间要响应设置控件数组的垂直约束 ,竖排的时间要响应设置控件数字的水平约束  。

            二、详细实践测试

            首先做准备事情  ,先天生四个View(需要被排列的) ,代码如下:

            - (NSMutableArray *)masonryViewArray {
                if (!_masonryViewArray) {
                    
                    _masonryViewArray = [NSMutableArray array];
                    for (int i = 0; i < 4; i ++) {
                        
                        UIView *view = [[UIView alloc] init];
                        view.backgroundColor = [UIColor redColor];
                        [self.view addSubview:view];
                        [_masonryViewArray addObject:view];
                    }
                }
                
                return _masonryViewArray;
            }

            1、水平偏向排列、牢固控件距离、控件长度不定

            测试代码如下

            - (void)test_masonry_horizontal_fixSpace {
                // 实现masonry水平牢固距离要领
                [self.masonryViewArray mas_distributeViewsAlongAxis:MASAxisTypeHorizontal withFixedSpacing:30 leadSpacing:10 tailSpacing:10];
                
                // 设置array的垂直偏向的约束
                [self.masonryViewArray mas_makeConstraints:^(MASConstraintMaker *make) {
                
                    make.top.equalTo(150);
                    make.height.equalTo(80);
                }];
            }

            测试效果如下:

            2、水平偏向排列、牢固控件长度、控件距离不定

            代码如下:

            - (void)test_masonry_horizontal_fixItemWidth {
                
                // 实现masonry水平牢固控件宽度要领
                [self.masonryViewArray mas_distributeViewsAlongAxis:MASAxisTypeHorizontal withFixedItemLength:80 leadSpacing:10 tailSpacing:10];
                
                // 设置array的垂直偏向的约束
                [self.masonryViewArray mas_makeConstraints:^(MASConstraintMaker *make) {
                    
                    make.top.equalTo(150);
                    make.height.equalTo(80);
                }];
            }

            测试效果如下:

            3、垂直偏向排列、牢固控件距离、控件高度不定

            代码如下:

            - (void)test_masonry_vertical_fixSpace {
                
                // 实现masonry垂直牢固控件高度要领
                [self.masonryViewArray mas_distributeViewsAlongAxis:MASAxisTypeVertical withFixedSpacing:30 leadSpacing:10 tailSpacing:10];
                
                // 设置array的水平偏向的约束
                [self.masonryViewArray mas_makeConstraints:^(MASConstraintMaker *make) {
                    
                    make.left.equalTo(150);
                    make.width.equalTo(80);
                }];
            }

            效果如下:

            4、垂直偏向排列、牢固控件高度、控件距离不定

            - (void)test_masonry_vertical_fixItemWidth {
                
                // 实现masonry垂直偏向牢固控件高度要领
                [self.masonryViewArray mas_distributeViewsAlongAxis:MASAxisTypeVertical withFixedItemLength:80 leadSpacing:10 tailSpacing:10];
                
                // 设置array的水平偏向的约束
                [self.masonryViewArray mas_makeConstraints:^(MASConstraintMaker *make) {
                    
                    make.left.equalTo(150);
                    make.width.equalTo(80);
                }];
            }

            效果如下:

            三、完毕

            最近愈发的懒了  ,写个博客提提神  ,找找感受  ,这大好的青春啊  !可不能铺张了  !

            我本纵脱不羁爱自由  ,怎样$%&@*&&%  !