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 ...
随机推荐
- django系列3.3--CBV 和 FBV
一.CBV和FBV FBV function base views 用函数方法来处理请求 from django.http import HttpResponse def my_view(reques ...
- 375. 猜数字大小 II leetcode java
题目: 我们正在玩一个猜数游戏,游戏规则如下: 我从 1 到 n 之间选择一个数字,你来猜我选了哪个数字. 每次你猜错了,我都会告诉你,我选的数字比你的大了或者小了. 然而,当你猜了数字 x 并且猜错 ...
- SQL Server 根据树状结构表生成以/号分割的路由字符串
很多情况下,我们有必要把树形结构进行数据梳理.比如,要方便的过滤出一个父节点下的所有子节点等等... 这个时候,我们可以生成一个路径表字符串,在应用时只需要对该字符串进行索引即可达成目的. 目标:按图 ...
- 利用jaxb实现xml和bean的相互转换
1.使用jar包生成xsd文件 java -jar trang.jar a.xml a.xsd xml格式 生成的xsd文件 2.使用xjc命令生成bean文件 xjc a.xsd 生成的相关bean ...
- JMeterPlugin性能监控
GUI界面中的plugins manager中的jpgc-Standard set,其中共包含以下的文件: jpgc-dummy jpgc-fifo jpgc-graphs-basic jpgc-pe ...
- python 之 比较哪个数据大小
#定义一个字典info={}#定义比较的人数n=int(input("请输入你要比较的人数"))#循环while(n): #输入a,b 两个数据 ,分别代表学号 和分数 # 把输入 ...
- mysql常用日期、时间查询
好记性不如烂笔头 select curdate(); --获取当前日期 select last_day(curdate()); --获取本月最后一天. day); -- 获取本月第一天 ,interv ...
- P1273 有线电视网(树形dp)
P1273 有线电视网 题目描述 某收费有线电视网计划转播一场重要的足球比赛.他们的转播网和用户终端构成一棵树状结构,这棵树的根结点位于足球比赛的现场,树叶为各个用户终端,其他中转站为该树的内部节点. ...
- ElasticSearch 系列随笔
1.ElasticSearch 常用设置 2.ElasticSearch 从2.2升级到6.2.4碰到的问题 3.ElasticSearch 因为磁盘空间不够引起的数据插入错误.(message [C ...
- Servlet+JSP+JDBC设计实现图书系统——管理功能实现
写在前面,之前由于种种原因博客好久没有更新.最近打算重拾JavaWeb,所以从头开始,先用servlet+jdbc+bootstrap最基础的代码实现一个图书系统.考虑有管理员端+用户端,项目完成后会 ...