IOS Masonry自动布局
之前项目用Frame布局,这个项目登录用了VFL,后来觉得用Masonry,前天布局TableViewCell时用了下 ,觉得还不错。
#import "Masonry.h" #import "MASViewAttribute.h"
先看效果图:
#import "ReportsCell.h" //#import "Masonry.h" #import "YZPUIFormatMacros.h" #import "Global.h" static const CGFloat kIconWidth = 55.0f; static const CGFloat kIconHeight = 55.0f; @implementation ReportsCell - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; if (self) { self.backgroundColor = [UIColor whiteColor]; UIView *headerView = [[UIView alloc]init]; headerView.backgroundColor = YZPColorDividingLineOutdide; [self addSubview:headerView]; [headerView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(@); make.top.equalTo(@); make.width.equalTo(@(MainWidth)); make.height.equalTo(@(YZPSpaceHSmall)); }]; UIView *topLine=[self lineView]; [headerView addSubview:topLine]; [topLine mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(headerView.top); make.left.equalTo(headerView.left); make.width.equalTo(headerView.width); make.height.equalTo(@0.5); }]; UIView *bottomLine=[self lineView]; [headerView addSubview:bottomLine]; [bottomLine mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(headerView.bottom).with.offset(-0.5); make.left.equalTo(headerView.left); make.width.equalTo(headerView.width); make.height.equalTo(@0.5); }]; _orderIdLabel=[[UILabel alloc]init]; _orderIdLabel.font = YZPFontSubhead; _orderIdLabel.textColor = YZPColorTextSubhead; [self addSubview:_orderIdLabel]; [_orderIdLabel mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(headerView.bottom).with.offset(); make.left.equalTo(@); make.width.equalTo(headerView.width); make.height.equalTo(@); }]; _orderIconView=[[UIImageView alloc]init]; [self addSubview:_orderIconView]; [_orderIconView makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(@); make.top.equalTo(_orderIdLabel.bottom).with.offset(); make.width.equalTo(@(kIconWidth)); make.height.equalTo(@(kIconHeight)); }]; _orderTitleLabel=[[UILabel alloc]init]; _orderTitleLabel.font=YZPFontSubhead; _orderTitleLabel.textColor=[UIColor colorWithRed:0.141f green:0.141f blue:0.141f alpha:1.00f]; _orderTitleLabel.numberOfLines=; [self addSubview:_orderTitleLabel]; [_orderTitleLabel mas_makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(_orderIconView.right).with.offset(); make.top.equalTo(_orderIconView.top).with.offset(); make.width.equalTo(@(MainWidth-)); make.height.lessThanOrEqualTo(@()); }]; _orderSpecLabel=[[UILabel alloc]init]; _orderSpecLabel.font=YZPFontExplain; _orderSpecLabel.textColor=[UIColor colorWithRed:0.400f green:0.400f blue:0.400f alpha:1.00f]; [self addSubview:_orderSpecLabel]; [_orderSpecLabel mas_makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(_orderTitleLabel.left); make.top.equalTo(_orderTitleLabel.bottom).offset(); make.width.equalTo(@(MainWidth-)); make.height.lessThanOrEqualTo(@()); }]; _productsCountLabel=[[UILabel alloc]init]; _productsCountLabel.font=YZPFontContent; _productsCountLabel.textAlignment=NSTextAlignmentRight; _productsCountLabel.textColor=[UIColor colorWithRed:0.400f green:0.400f blue:0.400f alpha:1.00f]; [self addSubview:_productsCountLabel]; [_productsCountLabel mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(_orderTitleLabel.top); make.left.equalTo(_orderTitleLabel.right).offset(); make.right.equalTo(self.right).with.offset(-); make.height.equalTo(_orderTitleLabel.height); }]; UIView *centerLine=[self lineView]; [self addSubview:centerLine]; [centerLine mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(_orderIconView.bottom).offset(); make.left.equalTo(self); make.width.equalTo(self); make.height.equalTo(@0.5); }]; _userNameLabel=[[UILabel alloc]init]; _userNameLabel.font=YZPFontExplain; _userNameLabel.textColor=YZPColorTextExplain; // _userNameLabel.numberOfLines=2; _userNameLabel.textAlignment=NSTextAlignmentLeft; [self addSubview:_userNameLabel]; [_userNameLabel mas_makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(self.left).with.offset(); make.top.equalTo(centerLine.bottom).offset(); make.width.lessThanOrEqualTo(@); make.height.lessThanOrEqualTo(@); }]; _userPhoneLabel=[[UILabel alloc]init]; _userPhoneLabel.font=YZPFontExplain; _userPhoneLabel.textColor=YZPColorTextExplain; _userPhoneLabel.textAlignment=NSTextAlignmentRight; [self addSubview:_userPhoneLabel]; [_userPhoneLabel mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(_userNameLabel.top); make.right.equalTo(self.right).with.offset(-); make.height.lessThanOrEqualTo(@); make.width.lessThanOrEqualTo(@); }]; _userAddressLabel=[[UILabel alloc]init]; _userAddressLabel.font=YZPFontExplain; _userAddressLabel.textColor=YZPColorTextExplain; [self addSubview:_userAddressLabel]; [_userAddressLabel mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(_userNameLabel.bottom).with.offset(); make.left.equalTo(self.left).with.offset(); // make.bottom.equalTo(self.bottom).with.offset(-10); make.width.equalTo(self.width); make.height.lessThanOrEqualTo(@); }]; } return self; } -(UIView *)lineView { UIView *line=[[UIView alloc]init]; // line.backgroundColor=[UIColor redColor]; line.backgroundColor=[UIColor colorWithRed:0.800f green:0.800f blue:0.800f alpha:1.00f]; return line; } - (void)awakeFromNib { // Initialization code } - (void)setSelected:(BOOL)selected animated:(BOOL)animated { [super setSelected:selected animated:animated]; // Configure the view for the selected state } @end
IOS Masonry自动布局的更多相关文章
- iOS masonry 不规则tagView布局 并自适应高度
在搜索页面经常会有不规则的tag出现,这种tagView要有点击事件,单个tagView可以设置文字颜色,宽度不固定根据内容自适应,高度固定,数量不固定.总高度就不固定.最近对于masonry的使用又 ...
- iOS AutoLayout自动布局&Masonry介绍与使用实践
Masonry介绍与使用实践:快速上手Autolayout http://www.cnblogs.com/xiaofeixiang/p/5127825.html http://www.cocoachi ...
- iOS SnapKit自动布局使用详解(Swift版Masonry)
对于自动布局: 我们在 StoryBoard 中可以使用约束实现,简单明了,但如果用纯代码来设置约束就很麻烦了 OC里面,我们常用的有Masonry,SDAutoLayout Swift里,我们有Sn ...
- ios - masonry第三方库使用自动布局(参考:http://www.cocoachina.com/ios/20141219/10702.html)
#import "ViewController.h" #import "Masonry.h" #define kWeakSelf(weakSelf) __wea ...
- 【iOS】Masonry 自动布局 MASViewConstraint.m:207 错误
问题详情: Assertion failure 报错原因: make.right.equalTo([_imageView superview]).right.with.offset(-); make. ...
- Masonry自动布局
介绍,入门: http://www.cocoachina.com/ios/20141219/10702.html 下载: http://code.cocoachina.com/detail/30114 ...
- iOS开发-自动布局篇:史上最牛的自动布局教学!
转载自:http://www.jianshu.com/p/f6cf9ef451d9 本文我们将提到: aotulayout(手码) VFL aotulayout(Xib) Masonry(第三方框架) ...
- iOS masonry九宫格 单行 多行布局
Masonry是个好东西,在当前尺寸各异的iOS开发适配中发挥着至关重要的作用,由于项目中Masonry布局用的比较多,对于UI布局也有了一些自己的理解,经常会有人问道Masonry布局九宫格要怎么布 ...
- Masonry自动布局使用
Masonry是一个轻量级的布局框架,采用更好的语法封装自动布局,它有自己的布局DSL.简洁明了并具有高可读性 而且同时支持 iOS 和 Max OS X. 下载 NSLayoutConstraint ...
随机推荐
- C#导出EXCEL,并生成charts表
需要添加引用 Microsoft.Office.Interop.Excel 注意:使用Microsoft.Office.Interop.Excel 非常耗时.对性能有要求建议用其他. 如果要用,把数 ...
- ClamAV学习【6】—— cli_load函数浏览
(老爸回家,就放开心和他到处走,累……趁其和老妈聊天之际,再继续看代码) 参数选项,加载病毒都浏览得七七八八了,这里就贴个简单的函数注释吧.哈哈. 代码注释如下: int cli_load(const ...
- Android Studio显示可视化编辑界面
选中项目,依次展开“src/main/res/layout",双击"activity_main.xml",这样右侧就有“preview”选项卡了,点击activity_m ...
- C - Oil Deposits(dfs)
点击打开链接 Oil Deposits Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Othe ...
- ocp认证052最新题库-收集整理中-1
1..Which two are true about the Archive (ARCn) processes?❑ A) They automatically delete obsolete arc ...
- 【SSH学习笔记】用Struts2实现简单的用户登录
准备阶段 在使用学习Struts2的时候首先要下载相应的架包 Struts2资源下载 这里建议下载第一个,在struts-2.5.14.1-all.zip里有很多实用的东西,不仅有架包还有官方为开发者 ...
- jvm字节码简介
1.概述 java虚拟机的指令由一个字节长度的.代表着某种特定操作含义的数字(成为操作码,Opcde)和跟随其后的0到多个此操作所需参数(操作数,Operands).由于操作码的长度为一个字节,所以指 ...
- oracle创建表空间、用户、权限
原链接:https://www.cnblogs.com/wxm-bk/p/6510654.html oracle 创建临时表空间/表空间,用户及授权 1:创建临时表空间 create tempor ...
- Visual Studio各个版本对应关系
- sql自查询各种状态数据总和