Objective-C学习之NSLayoutConstraint(自动布局)

54 篇文章 51 订阅 ¥9.90 ¥99.00
本文详细介绍了Objective-C中NSLayoutConstraint(自动布局)的使用方法,包括添加视图、设置数学关系、以及各参数的含义。通过示例解释了如何设置一个视图的宽度为另一个视图宽度的两倍,提供了所有可控制的属性列表。
摘要由CSDN通过智能技术生成

NSLayoutConstraint(自动布局)

       添加autoLayout视图使用该方法

+(instancetype)constraintWithItem:(id)view1 
                        attribute:(NSLayoutAttribute)attr1 
                        relatedBy:(NSLayoutRelation)relation 
                           toItem:(nullable id)view2 
                        attribute:(NSLayoutAttribute)attr2 
                       multiplier:(CGFloat)multiplier 
                         constant:(CGFloat)c;

       该方法实际上就是满足一个数学关系

item1 =(>=,<=) multiplier * item2 + constant

       第一个参数 view1: 要设置的视图;
       第二个参数 attr1: view1要设置的属性,稍后详解;
       第三个参数 relation: 视图view1和view2的指定属性之间的关系,稍后详解;
       第四个参数 view2: 参照的视图;
       第五个参数 attr2: 参照视图view2的属性,稍后详解;
       第六个参数 multiplier: 视图view1的指定属性是参照视图view2制定属性的多少倍;
       第七个参数 c: 视图view1的指定属性需要加的浮点数。

       举个简单的例子来说我们想设置第一个视图的宽度是第二个视图宽度的2倍,我们可以这样写:

[self.view addConstraint:[NSLayoutConstraint constraintWithItem:view2 attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:view1 attribute:NSLayoutAttributeWidth multiplier:2 constant:0]];

       可以看到这里我们
       item1是view1;
       item2是view2;
       attr1是attribute:NSLayoutAttributeWidth;
       attr2是attribute:NSLayoutAttributeWidth;
       relation是NSLayoutRelationEqual;
       mutiplier 是2;
       constant是0.

       带入上面的公式得:

       第一个视图(宽度) = 2 * 第二个视图(宽度) + 0

       如下是我们所有可以控制的属性:

属性名含义
NSLayoutAttributeLeft视图的左边
NSLayoutAttributeRight视图的右边
NSLayoutAttributeTop视图的上边
NSLayoutAttributeBottom视图的下边
NSLayoutAttributeLeading视图的前边
NSLayoutAttributeTrailing视图的后边
NSLayoutAttributeWidth视图的宽度
NSLayoutAttributeHeight视图的高度
NSLayoutAttributeCenterX视图的中点的X值
NSLayoutAttributeCenterY视图中点的Y值
NSLayoutAttributeBaseline视图的基准线
NSLayoutAttributeNotAnAttribute无属性
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值