美文网首页
使用SnipKit进行布局

使用SnipKit进行布局

作者: yytester | 来源:发表于2019-07-23 17:22 被阅读0次

代码:


import UIKit
import SnapKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
        let view = UIView()
        view.backgroundColor = UIColor.red
        self.view.addSubview(view)
        
        //初始化约束
        view.snp.makeConstraints{ (make) in
            
            make.left.equalTo(20)
            make.right.equalTo(-20)
            make.top.equalTo(20)
            make.bottom.equalTo(-20)
            
        }
        
        //更新约束
        view.snp.updateConstraints{ (make) in
            
            make.left.equalTo(100)
            make.right.equalTo(-100)
            make.top.equalTo(100)
            make.bottom.equalTo(-100)
            
        }
        
        //移除约束
        view.snp.removeConstraints()
        
        
        // Do any additional setup after loading the view.
    }


}


初始化效果:


image.png

更新后效果:


image.png

两个view嵌套:

        
        // 黑色视图作为父视图
        let view1 = UIView()
        view1.frame = CGRect(x: 0, y: 0, width: 300, height: 300)
        view1.center = view.center
        view1.backgroundColor = UIColor.black
        view.addSubview(view1)
        
        // 测试视图
        let view2 = UIView()
        view2.backgroundColor = UIColor.magenta
        view1.addSubview(view2)
        view2.snp.makeConstraints { (make) in
            make.top.equalToSuperview().offset(20)      // 当前视图的顶部距离父视图的顶部:20(父视图顶部+20)
            make.left.equalToSuperview().offset(20)     // 当前视图的左边距离父视图的左边:20(父视图左边+20)
            make.bottom.equalToSuperview().offset(-20)  // 当前视图的底部距离父视图的底部:-20(父视图底部-20)
            make.right.equalToSuperview().offset(-20)   // 当前视图的右边距离父视图的右边:-20(父视图右边-20)
            
//            make.edges.equalToSuperview().inset(UIEdgeInsets(top: 20, left: 20, bottom: 20, right: 20))  //简洁写法

        }
效果: image.png

布局一个视图view2, 让它的水平中心线小于等于另一个视图view2的左边,可以这样布局:

// 黑色视图作为父视图
         let view1 = UIView()
         view1.frame = CGRect(x: 0, y: 0, width: 300, height: 300)
         view1.center = view.center
         view1.backgroundColor = UIColor.black
         view.addSubview(view1)
        
         // 测试视图
         let view2 = UIView()
         view2.backgroundColor = UIColor.magenta
         view1.addSubview(view2)
         view2.snp.makeConstraints { (make) in
            // 让顶部距离view1的底部为10的距离
            make.top.equalTo(view1.snp.bottom).offset(10)
            // 设置宽、高
            make.width.height.equalTo(100)
            // 水平中心线<=view1的左边
            make.centerX.lessThanOrEqualTo(view1.snp.leading)
         }
image.png

参考

相关文章

  • 使用SnipKit进行布局

    代码: 初始化效果: 更新后效果: 两个view嵌套: 布局一个视图view2, 让它的水平中心线小于等于另一个视...

  • 使用flexbox进行布局

    Flex box布局模型的主要目的是提供更有效率的布局方式,尤其是当容器内元素的尺寸不固定的时候更能表现出它的优势...

  • AutoLayout 提前完成布局

    习惯使用AutoLayout进行布局后, 一点都不想再使用frame了.使用AutoLayout的布局时, 默认所...

  • Ionic调研(二)——Ionic Tab的使用

    目的 由于项目中将会使用Tab进行布局,所以学习使用Tab进行布局 创建带Tab的项目 输入命令ionic sta...

  • watchOS系统开发 - Layout布局(3)

    在iOS系统中, 可以使用frame进行布局, 也可以使用Auto Layout 进行布局. 但是不好意思, 在w...

  • CSS-多列布局3-瀑布流

    1、实现效果 2、实现思路 (1) 使用多列布局进行布局。(2) 使用column-break-inside 防止...

  • 使用flex布局实现图床网站企业站

    使用了flex进行网站布局,使用自定义属性。 效果展示

  • 代码布局

    xib 不是全能的,有的时候不能使用 xib 进行 UI 布局的时候,还是得使用代码布局。 代码布局有两个点要注意...

  • 关于布局

    使用Table进行布局  table标签一开始是作为存储数据而存在的,而使用table进行的布局的网页具有一定的兼...

  • 2019-04-10响应式布局和自适应布局

    响应式布局和自适应布局详解 布局等于流动网格布局,而自适应布局等于使用固定分割点来进行布局。 自适应布局给了你更多...

网友评论

      本文标题:使用SnipKit进行布局

      本文链接:https://www.haomeiwen.com/subject/qrsalctx.html