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 ...
随机推荐
- Eclipes批量创建文件夹
package file; import java.io.File; import java.io.IOException; import java.util.Scanner; public clas ...
- php 编译代码
编译其实就是把所有的代码整合在于一个文件,减少文件包含时间,加快php解析,虽然优化后时间上提升了不多,但能优化便多多少少进行优化.下面给一个编译例子,从而引申. // 定义编译状态 define(' ...
- 列表和range、元组
1.listt.append()默认追加在后面 2.list.insert(索引,“元素”)按索引添加 3.list.extend()可添加多个字或字母的字符串,也可以是列表 4.list.pop() ...
- vsftpd服务器配置虚拟用户
添加宿主用户 新建系统用户vsftpd,用户目录为/home/wwwroot, 用户登录终端设为/bin/false(即使之不能登录系统) useradd vsftpd -d /home/wwwroo ...
- Linux mint 安装踩坑记录
记得之前电脑上的那个Ubuntu是去年寒假的时候安装的,算下来自己用Linux也快一年了.虽然在去年暑假的时候我也曾经想过要把Ubuntu升级到18.04可是当时安装了几次都没有成功,自己也就放弃了. ...
- Tensorflow入门----占位符、常量和Session
安装好TensorFlow之后,开一个python环境,就可以开始运行和使用TensorFlow了. 先给一个实例, #先导入TensorFlow import tensorflow as tf he ...
- QuantLib 金融计算——随机过程之一般 Black Scholes 过程
目录 QuantLib 金融计算--随机过程之一般 Black Scholes 过程 一般 Black Scholes 过程 如果未做特别说明,文中的程序都是 Python3 代码. QuantLib ...
- Windows运行常用命令(win+R)
Windows运行常用命令(win+R) 1.calc: 启动计算器 2.notepad: 打开记事本 3.write: 写字板 4.mspaint: 画图板 5.snippingtool:截图工具, ...
- 【实战】Apache Shiro 1.2.4 RCE
poc: #coding: utf-8 import os import re import sys import base64 import uuid import subprocess impor ...
- phpspreadsheet开发手记
坑安装简单示例通过模板来生成文件释放内存单元格根据索引获取英文列设置值合并单元格居中显示宽度设置批量设置单元格格式直接输出下载自动计算列宽函数formula单元格变可点击的超链 PhpSpreadsh ...