首页 > 其他分享 >iOS开发之--Masonry多个平均布局

iOS开发之--Masonry多个平均布局

时间:2023-08-22 11:42:10浏览次数:27  
标签:10 mas tolAry -- equalTo make iOS Masonry btn

使用Masonry平均布局,代码如下:

其实就是用Masonry提供的两个方法,如下:

/**
    *  distribute with fixed spacing
    *
    *  @param axisType     横排还是竖排
    *  @param fixedSpacing 两个控件间隔
    *  @param leadSpacing  第一个控件与边缘的间隔
    *  @param tailSpacing  最后一个控件与边缘的间隔
    */
    [tolAry mas_distributeViewsAlongAxis:MASAxisTypeVertical withFixedSpacing:30 leadSpacing:10 tailSpacing:10];
    
    /**
    *  distribute with fixed item size
    *
    *  @param axisType        横排还是竖排
    *  @param fixedItemLength 控件的宽或高
    *  @param leadSpacing     第一个控件与边缘的间隔
    *  @param tailSpacing     最后一个控件与边缘的间隔
    */
    [tolAry mas_distributeViewsAlongAxis:MASAxisTypeVertical withFixedItemLength:30 leadSpacing:10 tailSpacing:10];

一、水平布局

1、创建

//    图片组数
    NSArray *imgAry = @[@"home_icon01",@"home_icon02",@"home_icon03",@"home_icon04"];
//    文字数字
    NSArray *titleAry = @[@"高额",@"低息",@"灵活",@"便捷"];
    
    NSMutableArray *tolAry = [NSMutableArray new];
    for (int i = 0; i < 4; i ++) {
        HTVerticalButton *btn = [HTVerticalButton buttonWithType:UIButtonTypeCustom];
        [btn setImage:[UIImage imageNamed:imgAry[i]] forState:UIControlStateNormal];
        [btn setTitle:titleAry[i] forState:UIControlStateNormal];
        [btn setTitleColor:[UIColor colorWithHex:@"#333333"] forState:UIControlStateNormal];
        btn.titleLabel.font = [UIFont systemFontOfSize:13];
        btn.imageEdgeInsets = UIEdgeInsetsMake(30, 30, 30, 30);
        [self addSubview:btn];
        [tolAry addObject:btn];
    }

2、使用Masonry布局

//水平方向控件间隔固定等间隔
    [tolAry mas_distributeViewsAlongAxis:MASAxisTypeHorizontal withFixedSpacing:20 leadSpacing:10 tailSpacing:10];
    [tolAry mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.equalTo(@20);
        make.height.equalTo(@100);
    }];
    
    //水平方向宽度固定等间隔
    [tolAry mas_distributeViewsAlongAxis:MASAxisTypeHorizontal withFixedItemLength:70 leadSpacing:10 tailSpacing:10];
    [tolAry mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.equalTo(@75);
        make.height.equalTo(@100);
    }];

 

效果如下:

iOS开发之--Masonry多个平均布局_ico

 

二、垂直布局,不多阐述,直接上代码:

UIView *view = [UIView new];
    view.backgroundColor = [UIColor yellowColor];
    [self.view addSubview:view];
    
    [view mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.mas_equalTo(150);
        make.left.mas_equalTo(15);
        make.centerX.mas_equalTo(self.view);
        make.height.mas_equalTo(50*3);
    }];
    
    
    NSMutableArray *tolAry = [NSMutableArray new];//图片数组
    NSMutableArray *titleAry = [NSMutableArray new];//标题数组
    NSMutableArray *btnAry = [NSMutableArray new];//按钮数组
    
    for (int i = 0; i < 4; i ++) {
        UIImageView *img = [UIImageView new];
        img.backgroundColor = [UIColor redColor];
        [view addSubview:img];
        
        UILabel *lab = [UILabel new];
        lab.backgroundColor = [UIColor purpleColor];
        [view addSubview:lab];
        
        UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
        btn.backgroundColor = [UIColor greenColor];
        [btn setTitle:[NSString stringWithFormat:@"%d",i+90] forState:UIControlStateNormal];
        [view addSubview:btn];
        
        [tolAry addObject:img];
        [titleAry addObject:lab];
        [btnAry addObject:btn];
    }
    
    // 实现masonry垂直方向固定控件高度方法
      //垂直方向
      [tolAry mas_distributeViewsAlongAxis:MASAxisTypeVertical withFixedSpacing:10 leadSpacing:10 tailSpacing:10];

      [tolAry mas_makeConstraints:^(MASConstraintMaker *make) {
              
         //垂直方向可以设置水平居中
          make.left.mas_equalTo(5);
          make.width.equalTo(@30);
      }];
    
    [titleAry mas_distributeViewsAlongAxis:MASAxisTypeVertical withFixedSpacing:10 leadSpacing:10 tailSpacing:10];

    [titleAry mas_makeConstraints:^(MASConstraintMaker *make) {
            
       //垂直方向可以设置水平居中
        make.left.mas_equalTo(40);
        make.width.equalTo(@60);
    }];
    
    [btnAry mas_distributeViewsAlongAxis:MASAxisTypeVertical withFixedSpacing:10 leadSpacing:10 tailSpacing:10];

    [btnAry mas_makeConstraints:^(MASConstraintMaker *make) {
            
       //垂直方向可以设置水平居中
        make.right.mas_equalTo(-10);
        make.width.equalTo(@30);
    }];

效果如下图:

iOS开发之--Masonry多个平均布局_控件_02

仅做记录!


作者:稻草人11223

标签:10,mas,tolAry,--,equalTo,make,iOS,Masonry,btn
From: https://blog.51cto.com/u_13188203/7187409

相关文章

  • ios开发之--条用第三方地图路线导航
    项目里面有位置功能,需要有导航,导航两种实现方式(集成第三方SDK、URL跳转第三方应用),直接集成就不说,下面来说下通过url跳转,最终效果如如下:  如果手机上安装的有客户端就展示,没有就不展示,文档上面写的很详细的,具体地址如下:高德地图:https://lbs.amap.com/api/amap-mobile/guide/io......
  • ios开发之--WKWebView的使用
    WKWebView是ios8出来的,是为了解决UIWebView卡慢,占用内存过大的问题。在以往时候,如果用UIWebView加载加载网页的时候,卡慢现象会很严重,有时候往往会卡到一个页面无法动弹,空白屏时间过长,基本上没有什么体验可言;WebKit中的WKWebView控件的新特性和使用方法,较好的解决了卡、慢、占用内......
  • ios开发之--数组的一些操作
    1,创建数组NSMutableArray*array=[[NSMutableArrayalloc]initWithObjects:@"a",@"b",@"c",nil];NSMutableArray*array1=[NSMutableArrayarrayWithObjects:@"a",@"b",@"c",nil];NSArray*array2=@......
  • ios开发之--tableview刷新某一个区和某一行
    在开发中,有时候,我们不需要刷新整个表,只需要刷新局部数据即可,具体代码如下://section刷新NSIndexSet*indexSet=[[NSIndexSetalloc]initWithIndex:2];[tableviewreloadSections:indexSetwithRowAnimation:UITableViewRowAnimationAutomatic];//cell刷新NSInde......
  • iOS开发之-- 字符串的操作,去掉某一个字符或者替换成其他字符
    一个简单的操作,记录下:NSString*strUrl=[urlStringstringByReplacingOccurrencesOfString:@""withString:@""];去掉空格NSString*strUrl=[urlStringstringByReplacingOccurrencesOfString:@""withString:@"/"];替换字符 仅做记录!作者:稻草人11......
  • ios开发之--首页 导航栏隐藏 下一级页面显示,pop回来显示白条
    解决方法,在首页中实现如下两个方法,代码如下:-(void)viewWillDisappear:(BOOL)animated{[superviewWillDisappear:animated];[self.navigationControllersetNavigationBarHidden:NOanimated:NO];}-(void)viewWillAppear:(BOOL)animated{[superviewWillAppear......
  • ios开发之--新手引导页图片适配方案
    1,图片适配,最早以前是自己命名规范,例如@1x,@2x,@3x等,3套图基本上就够用了2,在iPhoneX之后,需要适配的图就多了,因为分辨率增多了,屏幕尺寸也增多了3,尺寸:640*960,640*1136,750*1334,1242*2208,1125*24364,方案:a、判断,代码如下:#defineIS_IPHONE4([UIScreenmainScreen].bounds.size.height<56......
  • ios开发之--UIButton中imageView和titleLabel的位置调整
    在使用UIButton时,有时候需要调整按钮内部的imageView和titleLabel的位置和尺寸。在默认情况下,按钮内部的imageView和titleLabel的显示效果是图片在左文字在右,然后两者紧挨在一起构成组合居中显示。如下图:我们可以使用setImageEdgeInsets:和setTitleEdgeInsets:方法来调整两者的位置......
  • ios开发之 -- NSString指定字体高亮显示
    一个简单的小需求,就是在一个字符串里面,指定一部分字节高亮显示,代码如下:NSString*descStr=@"需要高亮显示的字符";NSString*nickStr=[NSStringstringWithFormat:@"%@%@",@"这里是高亮显示以外的字符",descStr];NSMutableAttributedString*attrStr=[[NSMutabl......
  • ios开发之--使用xib适配iPhone X
    最近在修改一个老项目,里面有很多xib文件,需要适配iPhoneX,但是又不想重写页面用代码适配,分享个小方法,也算是个笨办法吧,适配iPhoneX底部,iPhoneX底部有34px的操作区域,而其他机型的则是没有的,具体步骤如下:1、2、3、双击上图箭头所指,进入如下界面:  然后,就可以了!上面导航适配,目前我还......