IOS 多控件等高等间距布局

本文介绍如何使用Masonry库在iOS应用中实现控件的水平分布布局。通过具体代码示例,展示了如何设置控件间的固定间距、首尾间距以及控件的宽高,实现了按钮的均匀分布。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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;

代码如下

#import "ZheadDataSearch.h"
#import "NSArray+MASAdditions.h"

@implementation ZheadDataSearch{
    NSMutableArray*ButtonArr;
    //用来存放 按钮视图
    NSMutableArray*masonryButtonArray;
}

- (id)initWithFrame:(CGRect)frame{
    self = [super initWithFrame:frame];
    if (self) {
        self.backgroundColor = ZWhiteColor(255);
        [self initButtonArr];
        [self masonryBtnArray];
        [self setupHorizontalView];
        
    }
    return self;
}

-(void)initButtonArr{
    if(!ButtonArr){
        ButtonArr=[[NSMutableArray alloc] initWithObjects:@"上月",@"本月",@"近3个月",@"近半年", nil];
    }
}

//
-(NSMutableArray*)masonryBtnArray{
    CGFloat buttonW = WIDTH_VALUE(75);
    masonryButtonArray= [NSMutableArray array];
    for (int i = 0; i < ButtonArr.count; i++ ){
        UIButton *dataButton = [[UIButton alloc] init];
        dataButton.tag = 200+i;
        dataButton.backgroundColor=[UIColor redColor];
        [dataButton setTitle:ButtonArr[i] forState:UIControlStateNormal];
        [dataButton setTitleColor:[UIColor colorWithRed:69.0/255.0 green:69.0/255.0 blue:69.0/255.0 alpha:1.0] forState:UIControlStateNormal];
        [dataButton.titleLabel setFont:[UIFont systemFontOfSize:14]];
        [dataButton addTarget:self action:@selector(clickedSelectButton:) forControlEvents:UIControlEventTouchUpInside];
        [self addSubview:dataButton];
        [masonryButtonArray addObject:dataButton];
    }
    return masonryButtonArray;
    
}

- (void)setupHorizontalView{
    //设置排列方向和间隔
    [masonryButtonArray mas_distributeViewsAlongAxis:MASAxisTypeHorizontal withFixedSpacing:30 leadSpacing:10 tailSpacing:10];
    
    // 设置到顶部的距离和控件的高度
    [masonryButtonArray mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.mas_equalTo(HEIGHT_VALUE(10));
        make.height.mas_equalTo(HEIGHT_VALUE(25));
    }];
}

效果图
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值