OC - Masonry的基本使用(tableView作为实例)

随着约束布局的越来越流行,很多项目正在逐步由frame布局转移到约束布局。最近就有几个朋友说道,新项目要求用约束来布局,而用约束来进行布局,Masonry作为一个强大的三方库,就不得不提了。此篇文章,就是简单的使用Masonry来进行布局,以tableView为实例,进行讲解,在demo里会有相应的注释。这个demo,感觉能满足基本的需求,若有哪里不足或不正确,欢迎指出。

注意:如果你的项目,父视图是ScrollView,那么我建议你,还是不要用Masonry。scrollView自身就是有约束设置的,再用Masonry进行子视图的约束,子视图的约束将会失效,当然如果你有很长的时间来研究scrollView自身约束和Masonry库约束的冲突的话(这里姑且让我用冲突这个词语吧),那你可以肆无忌惮的使用Masonry库了。


效果图在结尾处

下面直接贴代码:

ViewController.m文件

#import "ViewController.h"
#import "TableViewCell.h"
#import "TableViewModel.h"
#import "TableHeaderView.h"

#import "Masonry.h"

@interface ViewController ()<UITableViewDataSource,UITableViewDelegate>

@property (nonatomic,strong)TableHeaderView    *headerView;
@property (nonatomic,strong)UITableView        *tableView;
@property (nonatomic,strong)NSMutableArray     *dataSource;

@end

static NSString *const cellIdentifier =@"cellIdentifier";

@implementation ViewController

- (void)viewDidLoad
{
    [superviewDidLoad];
    
    [self loadData];
}

- (void)loadData
{
    self.dataSource = [NSMutableArrayarrayWithCapacity:0];
    
    for (int i =0; i <20; i++)
    {
        TableViewModel *model = [[TableViewModelalloc]init];
        if (i %2 ==0)
        {
            model.isLeft = @"1";
            model.title = @"这是左侧的title";
            model.headerTitle =@"这是imageView在左侧的组头上的title";
        }
        else
        {
            model.isLeft = @"0";
            model.title =@"这是右侧的title这是右侧的title";
            model.headerTitle =@"这是imageView在右侧的组头上的title";
        }
        [self.dataSourceaddObject:model];
    }
    
    [self.tableViewreloadData]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值