swift 适配的方法autolayout  和 masory===snapKit库

本文介绍了如何使用Swift的SnapKit库进行界面布局,包括添加视图约束、设置宽高及解决常见问题。同时对比了与Objective-C中Masory库的区别,并提供了Auto Layout的使用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Masory

Masory库 现在成为snapKit  

首先找到SnapKit-develop库 

将其中的source库导入工程当中 不需要任何配置文件M跟 oc 的使用方法没有什么太大的区别,以下为代码

let view=UIView()

   view.backgroundColor=UIColor.blueColor()

   view.frame = CGRectMake(0, 0, 40, self.frame.height)

        backView.addSubview(view)
        view.
snp_makeConstraints { (make) -> Void in
           
//top
            make.bottom.equalTo(backView.snp_bottom).offset(11)
            make.
top.equalTo(backView.snp_top).offset(-10)
            make.
left.equalTo(backView.snp_left).offset(8)
            make.
right.equalTo(backView.snp_right).offset(-8)

        }

可以清楚的看见 与oc的代码 基本一致 唯一的不同 在于swift前置为snp 而oc得前置为mas 而且数字可以直接写在上 不需要添加@符号

添加高度或者宽度的代码值

make.width.equalTo(120)

make.height.equalTo(30)

注意的坑:

1、添加约束前 必须有父视图,否则会进行报错

2、添加约束必须考虑全面 依靠某一个对象添加约束,那么这个对象必须是存在的已经建立的,否则则会报错

3、添加约束的距离值,是左边的位置减去右边的位置,所以添加右边和下边的约束为负值

二、autolayout


跟oc的基本相同除了格式的变化 还有参数的变化,

具体代码如下

 let viewq=UIView()
        viewq.
backgroundColor = UIColor(red: 0.4, green: 0.3, blue: 0.1, alpha: 1)
        viewq.
layer.cornerRadius=4
        viewq.
layer.borderWidth = 0.5
        viewq.
layer.borderColor = UIColor.blackColor().CGColor

        self.addSubview(viewq)

 //居中====单一的约束
      self.addConstraint(NSLayoutConstraint(item: viewq,
        attribute:.
CenterX,
        relatedBy:.
Equal,
        toItem:
self,
        attribute: .
CenterX,
        multiplier:
1,

        constant: 0))

//距离底部是高度的20单位=====多条约束

//距离顶部20

        self.addConstraints([NSLayoutConstraint(item: viewq,
            attribute: .
Top,
            relatedBy: .
Equal,
            toItem:
self,
            attribute: .
Top,

            multiplier: 1,

            constant: 20),


            NSLayoutConstraint(item: viewq,
            attribute:.
Bottom,
            relatedBy: .
Equal,
            toItem:
self,
            attribute: .
Bottom,

            multiplier: 1,

            constant:-20)])


转载于:https://my.oschina.net/u/2561968/blog/598364

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值