
NSLayoutConstraint-代码实现自动布局的函数用法说明
第一个参数:指定左边的视图(即第一个约束项)。 第二个参数:指定左边视图的布局属性(例如:NSLayoutAttributeLeft、NSLayoutAttributeRight等)。 第三个参数:指定关系类型(NSLayoutRelation_lessOrEqual、NSLayoutRelation_equal、NSLayoutRelation_greaterOrEqual等)。 第四个参数:指定右边的视图。 第五个参数:指定右边视图的布局属性。 第六个参数:指定一个与右边视图属性相乘的缩放系数(默认为1,表示直接关联)。 第七个参数:指定一个与右边视图属性相加的常数值。
发布日期:2021-05-24 08:24:29
浏览次数:19
分类:精选文章
本文共 1891 字,大约阅读时间需要 6 分钟。
NSLayoutConstraint 是一个强大的工具,用于在iOS和OSX应用程序中创建和管理布局约束。以下是其中一个最常用的方法,看看它的具体参数和用法。
nsLayoutConstraint 的主要功能
NSLayoutConstraint_setItem : 以一个特定的视图作为左侧,设置一个特定的布局属性,然后与另一个视图建立关联关系。例如:
_nsLayoutConstraint(enumerate items, attributes) 是创建约束关系的主要方法。
调用说明
关系与公式
约束关系可以通过公式确定:
_selectedView.left = [anotherView.right] * multiplier + constant或者: _selectedView.leadingAnchorRETURN ANALYZING ANOTHER_VIEW.right_LEADING 到 DIFFERENTLY
以下是NSLayoutRelation的具体实现:
- NSLayoutRelation_lessOrEqual (-1)
- NSLayoutRelation_equal (0)
- NSLayoutRelation_greaterOrEqual (1)
注意:
当不需要第二个视图时,输入nil作为第四个参数,并将第五个参数设为 NSLayoutAttributeNotAnAttribute。示例代码
NSLayoutConstraint constraintWithItem:view1 attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:view2 attribute: NSLayoutAttributeRight multiplier:1 constant:10
这意味着:
view1的左边将等于view2的右边,再加上10点的空间。布局属性定义
typedef NSEnumeration(NSInteger NSLayoutRelation) { NSLayoutRelation_lessOrEqual = -1 NSLayoutRelation_equal = 0 NSLayoutRelation_greaterOrEqual = 1}typedef NSEnumeration(NSInteger NSLayoutAttribute) { NSLayoutAttributeLeft = 1 NSLayoutAttributeRight NSLayoutAttributeTop NSLayoutAttributeBottom NSLayoutAttributeLeading NSLayoutAttributeTrailing NSLayoutAttributeWidth NSLayoutAttributeHeight NSLayoutAttribute_centerX NSLayoutAttribute_centerY NSLayoutAttribute_basline NSLayoutAttribute_notAnAttribute = 0}
需要注意的是:
NSLayoutAttributeLeft 和 NSLayoutAttributeRight 是左右方向的统一定义。 而 NSLayoutAttributeLeading 和 NSLayoutAttributeTrailing 则取决于用户的左右习惯,可能需要根据实际情况调整。这篇文章源自 "rainbownight" 博客,请在引用时保留此出处。
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2025年04月23日 22时40分38秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
PHP系列:PHP 基础编程 2(时间函数、数组---实现登录&注册&修改)
2023-01-23
PHP系列:使用PHP实现登录注册功能的完整指南
2023-01-23
"WARNING: Increasing RAM size to 1GB" and "Cannot set up guest memory 'xxx.ram': Invalid argument".
2023-01-23
04-docker-commit构建自定义镜像
2023-01-23
05-docker系列-使用dockerfile构建镜像
2023-01-23
09-docker系列-docker网络你了解多少(下)
2023-01-23
#C8# UVM中的factory机制 #S8.2.3# 重载sequence哪些情形
2023-01-24
cytoscape安装java_Cytoscape史上最全攻略
2023-01-24
c语言编写单片机中断,C语言AVR单片机中断程序写法
2023-01-24
java教学团队管理系统(ssm)
2023-01-24
java教师管理系统(ssm)
2023-01-24
java教师课堂助手app(ssm)
2023-01-24
java教育辅导班信息网(ssm)
2023-01-24
DDNS动态域名无固定IPSEC配置实战
2023-01-24
DELL笔记本UEFI+GPT安装window10与Ubuntu双系统
2023-01-24
EasyUi的使用与代码编写(一)
2023-01-24
Ehcache Java开源缓存框架
2023-01-24
el-select下拉框修改背景色
2023-01-24
ElasticSearch - 基于 JavaRestClient 操作索引库和文档
2023-01-24