NSLayoutConstraint使用 Day21

使用AutoLayout分为两种方式

  • writing Code
  • Use Interface Builder
    • Xib
    • Storyboard

使用Writing Code的方式就会使用到NSLayoutConstraint

使用NSLayoutConstraint

AutoResize关闭

view.translatesAutoresizingMaskIntoConstraints = false

使用方式

A.width = B.width * 0.8 + 20

属性 = 属性 * 倍数 + 常数

NSLayoutConstraint建构Constraint

@MainActor class NSLayoutConstraint : NSObject

启动NSLayoutConstraints

  • 设定Constraints
  • 启动Constraints
NSLayoutConstraints(items: 被限制的物件  ,
										attribute: 对齐的位置(.top),
										toItem:   参考物,
										attribute: 对齐的位置(.top),
										multiplier: 使用方法中的倍数,
										constant:  使用方法中的常数,
										).isActive = true

attribute: 
// 对齐某边
.leading/.trailing/.top/.bottom
// x,y置中的位置
.centerX/.centerY
// 设定width,height
attribute:.width/.height
attribute:.notAnAttribute

// 单个Constraint成立
.isActive = true
// 多笔Constraint生效
let leadingConstraint = NSLayoutConstraint(....)
or
let constraints = [ NSLayoutConstraint们]

NSLayoutConstraint.activate([leadingConstraint])
or
NSLayoutConstraint.activate(constraints)

使用NSAnchor建构Constraint

Anchor

拉Layout对齐某边

VC1.leadingAnchor.constraint(equalto:VC2.leadingAnchor,multiplier:1 ,constant:0).isActive = true

x,y置中位置

VC1.centerXAnchor.constraint(equalTo:VC2.centerXAnchor,mutipler: 1, constant:0).isActive = true

设定width、height值

VC1.widthAnchor.constraint(equalToConstant:20).isActive = true

调整NSLayoutConstraint

let heightConstraint = VC1.heightAnchor.constraint(equalToConstant:20)

// 修改
heightConstraint.constant = 100

参考网址:

AutoLayout Programmatically表示

Auto Layout

Auto Layout in Swift: Writing constraints programmatically

Understanding Auto Layout

Apple Developer Documentation


<<:  Day 10. 来学习如何切换场景!

>>:  Day10 分页与分段的记忆体管理

WebRTC一对一视频通话(Flutter+React+Go+WebRTC方案)

WebRTC技术经过多年的发展,已经非常成熟,它提供了HTML5流媒体技术的一整套解决方案及API,...

Android Studio初学笔记-Day11-Checkbox

Checkbox(可复选按钮) Checkbox是可复选按钮,不同於前一章的RadioButton,...

Day 17 - Error Handling 错误处理

前言 错误处理往往是最容易被忽略的一块,因为 程序运行顺利,那当然不用考虑 error case 程...

Day 27 - Spring Security (四) JWT

JWT,全名为JSON Web Token (RFC 7519),它定义了一种简洁且自包含的方式,将...

Day 28 维护 PostgreSQL 资料库的参数?

昨天笔者有提到, 资料库的运作效率着实让笔者伤透脑筋, 然而资料库的参数是可以调整的 笔者搜寻一大堆...