<ins id='fjch1'></ins>

    <span id='fjch1'></span>
  1. <i id='fjch1'></i>

    <code id='fjch1'><strong id='fjch1'></strong></code>
    <dl id='fjch1'></dl>

    1. <acronym id='fjch1'><em id='fjch1'></em><td id='fjch1'><div id='fjch1'></div></td></acronym><address id='fjch1'><big id='fjch1'><big id='fjch1'></big><legend id='fjch1'></legend></big></address>

    2. <tr id='fjch1'><strong id='fjch1'></strong><small id='fjch1'></small><button id='fjch1'></button><li id='fjch1'><noscript id='fjch1'><big id='fjch1'></big><dt id='fjch1'></dt></noscript></li></tr><ol id='fjch1'><table id='fjch1'><blockquote id='fjch1'><tbody id='fjch1'></tbody></blockquote></table></ol><u id='fjch1'></u><kbd id='fjch1'><kbd id='fjch1'></kbd></kbd>

        <fieldset id='fjch1'></fieldset>
          <i id='fjch1'><div id='fjch1'><ins id='fjch1'></ins></div></i>

        1. iOS Masonry 等间隔或等宽高排列多个控件

          • 时间:
          • 浏览:2
          • 来源: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);
                }];
            }

            效果如下:

            三、完毕

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

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