美文网首页
iOS小笔记之 等间距创建控件

iOS小笔记之 等间距创建控件

作者: 小码honey | 来源:发表于2020-08-13 10:48 被阅读0次

    相信大部分的项目中都集成了masonry这个三方库,实际使用中,除了最常用对某一控件的自动布局之外,还有很多隐藏的好方法,比如mas_distributeViewsAlongAxis
    只怪自己学艺不精,好多基础的东西现在才开始重视

    还是贴代码吧,做个小结

        UIView *functionView = [[UIView alloc]init];
         functionView.backgroundColor = [UIColor whiteColor];
         [self.view addSubview:functionView];
          [functionView mas_makeConstraints:^(MASConstraintMaker *make) {
             make.left.right.bottom. equalTo(self.view);
            make.height.mas_equalTo(KTabBarHeight);
          }];
    

    这是底层view,在上面创建三个普通按钮

        NSArray * titleArr = @[@"编辑小题",@"编辑作业",@"匹配"];
        NSMutableArray * buttonArray = [NSMutableArray array];
        for (NSInteger i = 0 ; i < titleArr.count; i ++) {
            XKCCEditButton * btn = [[XKCCEditButton alloc] init];
            [functionView addSubview:btn];
            btn.title =titleArr[i];
            btn.tag = i + buttonTag;
            [btn addTarget:self action:@selector(editButtonClick:)           forControlEvents:UIControlEventTouchUpInside];
            if (i == titleArr.count - 1) {
                btn.backgroundColor = UIColor.redColor;
            }
            [buttonArray addObject:btn];
        }
    

    设置布局

        //按钮等间距排列
        [buttonArray mas_distributeViewsAlongAxis:MASAxisTypeHorizontal withFixedSpacing:10 leadSpacing:KMargin tailSpacing:KMargin];
        [buttonArray mas_makeConstraints:^(MASConstraintMaker *make) {
            make.centerY.equalTo(functionView.mas_centerY);
            make.height.mas_equalTo(KTITLE_HEIGHT);
        }];
    

    四个参数
    第一个枚举值,用来确定水平、垂直方向

    typedef NS_ENUM(NSUInteger, MASAxisType) {
        MASAxisTypeHorizontal, 
        MASAxisTypeVertical
    };
    

    第二个参数,各控件间距
    (CGFloat)fixedSpacing
    后面两个参数分别是距左/右、上/下,距离
    (CGFloat)leadSpacing (CGFloat)tailSpacing

    特别提示:

    这个方法的数组元素个数必须大于等于2,否则没有效果,masonry源码部分:

    if (self.count < 2) {
            NSAssert(self.count>1,@"views to distribute need to bigger than one");
            return;
        }
    ··· 其他代码
    

    关于该方法更详细解释,这边集合iOS Masonry 等间隔或等宽高排列多个控件

    相关文章

      网友评论

          本文标题:iOS小笔记之 等间距创建控件

          本文链接:https://www.haomeiwen.com/subject/bjkbdktx.html