Masonry的介绍及使用

Masonry




1> 主要类的作用


MASConstraintMaker : NSObject  ->约束控制器。控制更新,删除,或者新增约束


MASViewAttribute : NSObject    ->封装了一些MASConstraint持有的属性,每一个Attribute都有一个View与之对应


MASConstraint : NSObject       ->约束的基类,定义了Constraint的基本属性和方法


MASViewConstraint : MASConstraint   ->约束的主要实现类。所有对约束使用的功能均在此类中完成


MASCompositeConstraint : MASConstraint  ->约束的集合类。内部有一个数组,可以保存多个MASViewConstraint


MASLayoutConstraint : NSLayoutConstraint  ->自定义的约束





2> 点语法的链式调用


点语法:在 Objective-C 中,对于点语法的使用,最常见于属性的访问,比如对在方法内部用 self.xxx,在类的实例中用 classInstance.xxx(OC点语法的本质是方法调用,不是直接访问成员变量);


小括号调用:Objective-C 中一般用中括号 [] 来实现方法的调用,而对于 Block 的调用则还是保留使用小括号 () 的方式,因此我们可以考虑用 Block 来实现在链式语法中的 () ;


如何实现连续访问?:Block 可理解为带有自动变量的匿名函数或函数指针,它也是有返回值的。我们可以把上述类实例每次方法的调用(实质为 Block 的调用)的返回值都设为当前类实例本身,即 
classInstance.method1() 返回了当前 classInstance,此时可在其后面继续进行 .method2() 的调用,以此类推。


例: - (void)setAge:(int)newAge {
        
         self.age = newAge;                    
     }




     - (void)setAge:(int)newAge {
        
        [self setAge:newAge];
     }






3> 如何使用代理实现的链式语法


例:make.left.right.top.bottom.mas_equalTo(superview)


过程:make.left->MASViewConstraint  


make.left.right-> MASCompositeConstraint


make.left.right.top-> MASCompositeConstraint


make.left.right.top.bottom-> MASCompositeConstraint


addConstraint这个动作都会在 make 中发生。






4>怎么找到父view、如何找到最近的父view的
   
    MAS_VIEW *closestCommonSuperview = nil;


    MAS_VIEW *secondViewSuperview = view;
    
    while (!closestCommonSuperview && secondViewSuperview) {
    
        MAS_VIEW *firstViewSuperview = self;
    
        while (!closestCommonSuperview && firstViewSuperview) {
    
            if (secondViewSuperview == firstViewSuperview) {
                closestCommonSuperview = secondViewSuperview;
            }
    
            firstViewSuperview = firstViewSuperview.superview;
        }
        
        secondViewSuperview = secondViewSuperview.superview;
    }
    return closestCommonSuperview;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值