iO开发 -Masonry学习,让你一看就会用,一看就能上手项目

简介: iO开发 -Masonry学习,让你一看就会用,一看就能上手项目

在这里问下大家,用的约束方式是哪种?近年来,约束这件事情在开发中的分量越来越重,不同机型的问世,使得原来使用系数的开发人员苦不堪言,一开始约束的使用让很多人很不习惯,网上给出的Demo也层出不全,没有人真正告诉你该怎么来写一个tableview,怎么来写一个scrollView,这对于不会用约束的人来说才是最需要的,博主先在开发虽然没有用Masonry,但也是封装好的layout,最近突然想起来当年困扰自己的约束问题,所以希望能给还不会用Masonry,但却很想学的人写一个Demo,明明白白的写一个tableview和scrollView来帮助这些人怎么来写,怎么来用。


下面是博主写的一个Demo的GIF:

1.png

这两个页面虽然算不上难,但却是众多页面的基础,可以衍生出很多的界面,能写这样的几面,起码一个完整的app在约束上能难住你的东西就很少了,后面只要慢慢学习,迟早会熟练使用的。


下面放一下Cell的代码:

@implementation TmpTableViewCell
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
    if (self == [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
        [self createTmpView];
    }
    return self;
}
- (void)createTmpView
{
    _headerLabel = [[UILabel alloc] init];
    _headerLabel.text = @"张三";
    _headerLabel.backgroundColor = [UIColor blueColor];
    _headerLabel.textAlignment = NSTextAlignmentCenter;
    _headerLabel.font = [UIFont systemFontOfSize:18];
    _headerLabel.layer.cornerRadius = 30;
    _headerLabel.layer.borderWidth = 4;
    _headerLabel.textColor = [UIColor whiteColor];
    _headerLabel.layer.borderColor = [UIColor whiteColor].CGColor;
    _headerLabel.clipsToBounds = YES;
    [self addSubview:_headerLabel];
    [_headerLabel mas_makeConstraints:^(MASConstraintMaker *make) {
        make.left.mas_equalTo(self).offset(12);
        make.top.mas_equalTo(self).offset(20);
        make.bottom.mas_equalTo(self).offset(-20);
        make.width.height.mas_equalTo(@60);
    }];
    _nameLabel = [[UILabel alloc] init];
    _nameLabel.text = @"张三";
    _nameLabel.textColor = [UIColor blackColor];
    [self addSubview:_nameLabel];
    [_nameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
        make.left.mas_equalTo(self.headerLabel.mas_right).offset(12);
        make.top.mas_equalTo(self).offset(20);
        make.height.mas_equalTo(@20);
    }];
    _sexAgeLabel = [[UILabel alloc] init];
    _sexAgeLabel.text = @"男 18岁";
    _sexAgeLabel.font = [UIFont systemFontOfSize:12];
    _sexAgeLabel.textColor = [UIColor grayColor];
    [self addSubview:_sexAgeLabel];
    [_sexAgeLabel mas_makeConstraints:^(MASConstraintMaker *make) {
        make.left.mas_equalTo(self.nameLabel.mas_right).offset(12);
        make.top.mas_equalTo(self).offset(20);
        make.height.mas_equalTo(@20);
    }];
    _positionLabel = [[UILabel alloc] init];
    _positionLabel.text = @"我的爱好:  踢足球";
    _positionLabel.font = [UIFont systemFontOfSize:12];
    _positionLabel.textColor = [UIColor blackColor];
    [self addSubview:_positionLabel];
    [_positionLabel mas_makeConstraints:^(MASConstraintMaker *make) {
        make.left.mas_equalTo(self.headerLabel.mas_right).offset(12);
        make.top.mas_equalTo(self.nameLabel.mas_bottom).offset(0);
        make.height.mas_equalTo(@20);
    }];
    _jobLabel = [[UILabel alloc] init];
    _jobLabel.text = @"我的专业:  软件工程";
    _jobLabel.font = [UIFont systemFontOfSize:12];
    _jobLabel.textColor = [UIColor blackColor];
    [self addSubview:_jobLabel];
    [_jobLabel mas_makeConstraints:^(MASConstraintMaker *make) {
        make.left.mas_equalTo(self.headerLabel.mas_right).offset(12);
        make.top.mas_equalTo(self.positionLabel.mas_bottom).offset(0);
        make.height.mas_equalTo(@20);
    }];
    _arrowImgView = [[UIImageView alloc] init];
    _arrowImgView.image = [UIImage imageNamed:@"arrow.png"];
    [self addSubview:_arrowImgView];
    [_arrowImgView mas_makeConstraints:^(MASConstraintMaker *make) {
        make.width.height.mas_equalTo(@15);
        make.centerY.equalTo(self);
        make.right.mas_equalTo(self).mas_offset(-12);
    }];
    _needLabel = [[UILabel alloc] init];
    _needLabel.backgroundColor = [UIColor orangeColor];
    _needLabel.layer.cornerRadius = 3;
    _needLabel.clipsToBounds = YES;
    _needLabel.font = [UIFont systemFontOfSize:12];
    _needLabel.textAlignment = NSTextAlignmentCenter;
    [self addSubview:_needLabel];
    [_needLabel mas_makeConstraints:^(MASConstraintMaker *make) {
        make.centerY.mas_equalTo(self);
        make.right.mas_equalTo(self.arrowImgView.mas_left).offset(-12);
        make.height.mas_equalTo(@18);
    }];
    NSMutableAttributedString *string = [[NSMutableAttributedString alloc] initWithString:@"   学生会 ."];
    [string addAttribute:NSForegroundColorAttributeName value:[UIColor clearColor] range:NSMakeRange(string.length-1,1)];
    _needLabel.attributedText = string;
}
@end

网上的资源比较尴尬的是丢给你一堆代码,却不放Demo,所以博主这里给一个Demo帮助大家学习:

点击前往下载

目录
相关文章
|
6月前
|
存储 Java 索引
Java学习—IO流
Java学习—IO流
|
6月前
|
存储 Java 数据安全/隐私保护
从零开始学习 Java:简单易懂的入门指南之IO字符流(三十一)
从零开始学习 Java:简单易懂的入门指南之IO字符流(三十一)
|
6月前
|
存储 移动开发 Java
从零开始学习 Java:简单易懂的入门指南之IO字节流(三十)
从零开始学习 Java:简单易懂的入门指南之IO字节流(三十)
|
6月前
|
存储 算法 Java
从零开始学习 Java:简单易懂的入门指南之IO序列化、打印流、压缩流(三十三)
从零开始学习 Java:简单易懂的入门指南之IO序列化、打印流、压缩流(三十三)
|
6月前
文件操作与IO(一些小项目)
文件操作与IO(一些小项目)
|
6月前
|
数据采集 异构计算
LabVIEW编程LabVIEW开发高级数据采集技术 操作数字IO 例程与相关资料
LabVIEW编程LabVIEW开发高级数据采集技术 操作数字IO 例程与相关资料
92 22
|
2月前
|
数据采集 Java 数据挖掘
Java IO异常处理:在Web爬虫开发中的实践
Java IO异常处理:在Web爬虫开发中的实践
|
6月前
|
分布式计算 Java 大数据
IO流【Java对象的序列化和反序列化、File类在IO中的作用、装饰器模式构建IO流体系、Apache commons-io工具包的使用】(四)-全面详解(学习总结---从入门到深化)
IO流【Java对象的序列化和反序列化、File类在IO中的作用、装饰器模式构建IO流体系、Apache commons-io工具包的使用】(四)-全面详解(学习总结---从入门到深化)
98 0
|
6月前
|
存储 Java API
【JAVA学习之路 | 进阶篇】IO流及流的分类
【JAVA学习之路 | 进阶篇】IO流及流的分类
|
6月前
|
数据采集 人工智能 异构计算
LabVIEW编程LabVIEW开发 PXI-6259多功能IO模块 例程与相关资料
LabVIEW编程LabVIEW开发 PXI-6259多功能IO模块 例程与相关资料
60 0