首页 技术 正文
技术 2022年11月18日
0 收藏 503 点赞 2,659 浏览 13841 个字

1,约束优先级
我们使用SnapKit的时候,还可以定义约束的优先级。这样当约束出现冲突的时候,优先级高的约束覆盖优先级低的约束。具体优先级可以放在约束链的结束处。

(1)可以设置如下几种优先级

priorityLow():设置低优先级,优先级为250
priorityMedium():设置中优先级,优先级为500(这个也就是默认的优先级)
priorityHigh():设置高优先级,优先级为750
priority():可以设置任意的优先级,接受的参数是0-1000的数字。比如:priority(600)

(2)使用优先级的样例

下面我们在屏幕中央放置一个100*100的橙色方块,给其定义了长宽尺寸小于等于屏幕的大小的默认优先级约束。同时,每次点击屏幕的时候,会更新放大它的尺寸。但由于这个约束的优先级是低,所有方块顶到屏幕边缘后就会不再放大。
<img src="data:image/png;base64,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IECAAAEC4t5vgAABAgQIECBAgECIgLgPOaQ1CBAgQIAAAQIECIh7vwECBAgQIECAAAECIQLiPuSQ1iBAgAABAgQIECAg7v0GCBAgQIAAAQIECIQIiPuQQ1qDAAECBAgQIECAgLj3GyBAgAABAgQIECAQIiDuQw5pDQIECBAgQIAAAQJPCAgQIECAAIEcgc8fXucsYxMCwwSe339a3ti/3C8TGkCAAAECBAgQIEDgDgFxf8cdfAUBAgQIECBAgACBZQFxv0xoAAECBAgQIECAAIE7BMT9HXfwFQQIECBAgAABAgSWBcT9MqEBBAgQIECAAAECBO4QEPd33MFXECBAgAABAgQIEFgWEPfLhAYQIECAAAECBAgQuENA3N9xB19BgAABAgQIECBAYFlA3C8TGkCAAAECBAgQIEDgDgFxf8cdfAUBAgQIECBAgACBZQFxv0xoAAECBAgQIECAAIE7BMT9HXfwFQQIECBAgAABAgSWBcT9MqEBBAgQIECAAAECBO4QEPd33MFXECBAgAABAgQIEFgWEPfLhAYQIECAAAECBAgQuENA3N9xB19BgAABAgQIECBAYFlA3C8TGkCAAAECBAgQIEDgDgFxf8cdfAUBAgQIECBAgACBZQFxv0xoAAECBAgQIECAAIE7BMT9HXfwFQQIECBAgAABAgSWBcT9MqEBBAgQIECAAAECBO4QEPd33MFXECBAgAABAgQIEFgWEPfLhAYQIECAAAECBAgQuENA3N9xB19BgAABAgQIECBAYFlA3C8TGkCAAAECBAgQIEDgDgFxf8cdfAUBAgQIECBAgACBZQFxv0xoAAECBAgQIECAAIE7BMT9HXfwFQQIECBAgAABAgSWBcT9MqEBBAgQIECAAAECBO4QEPd33MFXECBAgAABAgQIEFgWEPfLhAYQIECAAAECBAgQuENA3N9xB19BgAABAgQIECBAYFlA3C8TGkCAAAECBAgQIEDgDgFxf8cdfAUBAgQIECBAgACBZQFxv0xoAAECBAgQIECAAIE7BMT9HXfwFQQIECBAgAABAgSWBcT9MqEBBAgQIECAAAECBO4QEPd33MFXECBAgAABAgQIEFgWEPfLhAYQIECAAAECBAgQuENA3N9xB19BgAABAgQIECBAYFlA3C8TGkCAAAECBAgQIEDgDgFxf8cdfAUBAgQIECBAgACBZQFx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" alt="" />

import UIKit
import SnapKit
 
class ViewController: UIViewController {
     
    lazy var box = UIView()
     
    var scacle = 1.0
    
    override func viewDidLoad() {
        super.viewDidLoad()
         
        //单击监听
        let tapSingle=UITapGestureRecognizer(target:self,action:#selector(tapSingleDid))
        tapSingle.numberOfTapsRequired=1
        tapSingle.numberOfTouchesRequired=1
        self.view.addGestureRecognizer(tapSingle)
         
        box.backgroundColor = UIColor.orangeColor()
        self.view.addSubview(box)
         
        box.snp_makeConstraints { (make) -> Void in
            //视图居中
            make.center.equalTo(self.view)
            //初始宽、高为100(优先级低)
            make.width.height.equalTo(100 * self.scacle).priorityLow();
            //最大尺寸不能超过屏幕
            make.width.height.lessThanOrEqualTo(self.view.snp_width)
            make.width.height.lessThanOrEqualTo(self.view.snp_height)
        }
    }
     
    //点击屏幕
    func tapSingleDid(){
        self.scacle += 0.5
        self.box.snp_updateConstraints{ (make) -> Void in
            //放大视图(优先级最低)
            make.width.height.equalTo(100 * self.scacle).priorityLow();
        }
    }
}

2,带有动画效果
配合 UIView.animateWithDuration,我们可以在约束改变的时候有动画效果。
还是以上面的样例演示,不够这次点击屏幕时橙色视图放大的时候会有过渡,而不是一下就变大。
Swift – 自动布局库SnapKit的使用详解3(约束优先级,约束做动画)

import UIKit
import SnapKit
 
class ViewController: UIViewController {
     
    lazy var box = UIView()
     
    var scacle = 1.0
    
    override func viewDidLoad() {
        super.viewDidLoad()
         
        //单击监听
        let tapSingle=UITapGestureRecognizer(target:self,action:#selector(tapSingleDid))
        tapSingle.numberOfTapsRequired=1
        tapSingle.numberOfTouchesRequired=1
        self.view.addGestureRecognizer(tapSingle)
         
        box.backgroundColor = UIColor.orangeColor()
        self.view.addSubview(box)
         
        box.snp_makeConstraints { (make) -> Void in
            //视图居中
            make.center.equalTo(self.view)
            //初始宽、高为100(优先级低)
            make.width.height.equalTo(100 * self.scacle).priorityLow();
            //最大尺寸不能超过屏幕
            make.width.height.lessThanOrEqualTo(self.view.snp_width)
            make.width.height.lessThanOrEqualTo(self.view.snp_height)
        }
    }
     
    //视图约束更新
    override func updateViewConstraints() {
        self.box.snp_updateConstraints{ (make) -> Void in
            //放大尺寸(优先级低)
            make.width.height.equalTo(100 * self.scacle).priorityLow();
        }
         
        super.updateViewConstraints()
    }
     
    //点击屏幕
    func tapSingleDid(){
        self.scacle += 0.5
        //告诉self.view约束需要更新
        self.view.setNeedsUpdateConstraints()
        //动画
        UIView.animateWithDuration(0.3) {
            self.view.layoutIfNeeded()
        }
    }
}

上一篇: fwite写入文件
下一篇: FFT一周目开坑!
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,997
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,511
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,356
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,139
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,770
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,848