博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NSLayoutConstraint 使用详解 VFL使用介绍
阅读量:5025 次
发布时间:2019-06-12

本文共 1771 字,大约阅读时间需要 5 分钟。

 

注意  

使用前必须先取消所有的你想设置View 的 Autoresizing 属性 因为 Autoresizing  Layout不能共存  系统默认是 Autoresizing

for v in subviews {            v.translatesAutoresizingMaskIntoConstraints=false        }
  • 自动布局核心公式
view1.attr1 = view2.attr2 * multiplier + constant
  • 自动布局构造函数
NSLayoutConstraint(item: 视图,     attribute: 约束属性,     relatedBy: 约束关系,     toItem: 参照视图,     attribute: 参照属性,     multiplier: 乘积,     constant: 约束数值)
  • 如果指定  约束

    • 参照视图设置为 nil
    • 参照属性选择 .NotAnAttribute
  • 自动布局类函数

NSLayoutConstraint.constraintsWithVisualFormat(VLF公式,     options: [],     metrics: 约束数值字典 [String: 数值],     views: 视图字典 [String: 子视图])
  • VFL 可视化格式语言

    • H 水平方向
    • V 垂直方向
    • | 边界
    • [] 包含控件的名称字符串,对应关系在 views 字典中定义
    • () 定义控件的宽/高,可以在 metrics 中指定
// icon布局  上下左右居中        addConstraint(NSLayoutConstraint(item: iconView, attribute: .centerX,            relatedBy: .equal,            toItem: self,            attribute: .centerX,            multiplier: 1.0,            constant: 0))        addConstraint(NSLayoutConstraint(item: iconView,    attribute: .centerY,             relatedBy: .equal,             toItem: self,             attribute: .centerY,             multiplier: 1.0,             constant: -50))    maskiconView 和屏幕等宽  和屏幕顶部对齐 距离  loginBtn顶部 -35 距离  let viewDic : [String : Any] = ["maskiconView":maskiconView,"loginBtn":loginBtn]        let metricDic = ["spacing":-35]                addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|-0-[maskiconView]-0-|",              options: [],              metrics: nil,              views: viewDic))                addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|-0-[maskiconView]-(spacing)-[loginBtn]",              options: [],              metrics: metricDic,              views: viewDic))

 

转载于:https://www.cnblogs.com/ZhangShengjie/p/6808609.html

你可能感兴趣的文章
新手学习java应该注意的事情
查看>>
前端学HTTP之URL
查看>>
.vimrc
查看>>
uva6152Bits Equalizer
查看>>
linux install Openvino
查看>>
struts2中action如何获取jsp页面参数
查看>>
华为机试题
查看>>
Leetcode Delete Node in a Linked List
查看>>
mybatis中二级缓存整合ehcache实现分布式缓存
查看>>
Lucene中的Ram存储
查看>>
document.compatMode
查看>>
do_try_to_free_pages
查看>>
attribute和property的区别
查看>>
python爬取百度搜索图片
查看>>
排序之希尔排序(shell sort)
查看>>
Linux学习之CentOS(二十一)--Linux系统启动详解
查看>>
Hadoop的体系结构之MapReduce的体系结构
查看>>
python学习(四)字符串学习
查看>>
互联网协议入门(一)
查看>>
Python自动化开发从浅入深-语言基础(常用模块)
查看>>