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 ...
随机推荐
- WPF 分享一种设置程序保存配置文件的方法
最近需要做一个配置程序,主要给其他程序做相关配置的小工具. 配置项蛮多的,一般我们都是将各个配置项写到配置文件的节点中,比如App.config文件或者自定义的xml文件. 因为我用的是wpf,MVV ...
- 【Oracle 12c】最新CUUG OCP-071考试题库(55题)
55.(13-3) choose the best answer: Which statement is true regarding the SESSION_PRIVS dictionary vie ...
- 微信小程序转发商品的详情页 + 转发功能(传参)
1.微信小程序转发传参,利用的还是onShareAppMessageapi 2.利用的还有json转换 JSON 是用于存储和传输数据的格式. JSON 通常用于服务端向网页传递数据 函数 描述JSO ...
- kvm虚拟化之convirt集中管理平台搭建
情况说明: (1)本文采用OEL6.3x64操作系统,需要有KVM安装环境.(2)convirt2.1.1采用源码方式安装,convirt环境分别两部分,一部分是cms,用于管理kvm/xen虚拟主机 ...
- 关于CocoaPods添加第三方库造成项目崩溃
在很多时候,我们接手了别人的代码,项目中已经使用cocoapods,但是再想通过pods添加第三方库时会造成崩溃,如果你没备份项目的话那你就悲催了,幸好当初用了git了,不然又够忙乎的了. 好,回到正 ...
- ps与grep组合命令使用
管道命令 我们在做运维的时候,经常会使用这个命令ps -ef | grep nginx. ps -ef 表示显示所有进程的消息. | 是管道命令.通常需要借助管道命令”|”多个命令的组合,形式如下: ...
- 【OpenCV3】直线拟合--FitLine()函数详解
一.FitLine()函数原型 CV_EXPORTS_W void fitLine( InputArray points, // 待输入点集(一般为二维数组或vector点集) OutputArray ...
- (C/C++) STL 標頭檔 algorithm (一)
因為解題需求認識了一些STL相關funciton. 分別是 max_element (ForwardIterator first, ForwardIterator last); min_element ...
- SSAS Tabular模式中关系设置不支持直接设置多对多?
在网上文档发现一篇文章 微软BI 之SSAS 系列 - 多维数据集维度用法之一 引用维度 Referenced Dimension 有涉及到SSAS模型的关系设置 但是本人的基于表格模型的 没有关系可 ...
- 网络基础 05_DHCP
1 DHCP概述 DHCP (Dynamic Host Configuration Protocol)是一种动态的向Internet终端提供配置参数的协议.在终端提出申请之后,DHCP可以向终端提供I ...