NSLayoutAttribute

STM32F103移相全桥PWM主从定时器联动配置详解 本文详细解析了STM32F103移相全桥PWM主从定时器联动配置方法,重点介绍了TIM1和TIM8的寄存器设置技巧及硬件设计要点。通过实战经验分享相位调节原理和动态调整技巧,帮助开发者快速实现稳定的移相全桥控制,适用于DCDC电源等应用场景。 阅读详情


使用AutoLayout之前需要知道以下两点:

1.必须设置 translatesAutoresizingMaskIntoConstraints为NO。

2.如果是viewControl则AutoLayout适配写在[- updateViewConstraints]中;

 如果是view则AutoLayout适配写在[- updateConstraints]中。

 

 一、要讲解的方法:

复制代码
 1 /* Create constraints explicitly.  Constraints are of the form "view1.attr1 = view2.attr2 * multiplier + constant" 
 2  If your equation does not have a second view and attribute, use nil and NSLayoutAttributeNotAnAttribute.
 3  */
 4 +(instancetype)constraintWithItem:(id)view1 
 5                         attribute:(NSLayoutAttribute)attr1 
 6                         relatedBy:(NSLayoutRelation)relation 
 7                            toItem:(id)view2
 8                         attribute:(NSLayoutAttribute)attr2 
 9                        multiplier:(CGFloat)multiplier 
10                          constant:(CGFloat)c;        
复制代码

 

参数说明:

第一个参数 view1: 要设置的视图;

第二个参数 attr1: view1要设置的属性,稍后详解;

第三个参数 relation: 视图view1和view2的指定属性之间的关系,稍后详解;

第四个参数 view2: 参照的视图;

第五个参数 attr2: 参照视图view2的属性,稍后详解;

第六个参数 multiplier: 视图view1的指定属性是参照视图view2制定属性的多少倍;

第七个参数 c: 视图view1的指定属性需要加的浮点数。

 

根据参数的讲解,得出计算公式如下:

view1.attr1 [= , >= , <=] view2.attr2 * multiplier + c;

 

参数详解:

1、NSLayoutAttribute

复制代码
 1 typedef NS_ENUM(NSInteger, NSLayoutAttribute) {
 2     NSLayoutAttributeLeft = 1, 
 3     NSLayoutAttributeRight,
 4     NSLayoutAttributeTop,
 5     NSLayoutAttributeBottom,
 6     NSLayoutAttributeLeading,
 7     NSLayoutAttributeTrailing,
 8     NSLayoutAttributeWidth,
 9     NSLayoutAttributeHeight,
10     NSLayoutAttributeCenterX,
11     NSLayoutAttributeCenterY,
12     NSLayoutAttributeBaseline,
13     NSLayoutAttributeLastBaseline = NSLayoutAttributeBaseline,
14     NSLayoutAttributeFirstBaseline NS_ENUM_AVAILABLE_IOS(8_0),
15     
16     
17     NSLayoutAttributeLeftMargin NS_ENUM_AVAILABLE_IOS(8_0),
18     NSLayoutAttributeRightMargin NS_ENUM_AVAILABLE_IOS(8_0),
19     NSLayoutAttributeTopMargin NS_ENUM_AVAILABLE_IOS(8_0),
20     NSLayoutAttributeBottomMargin NS_ENUM_AVAILABLE_IOS(8_0),
21     NSLayoutAttributeLeadingMargin NS_ENUM_AVAILABLE_IOS(8_0),
22     NSLayoutAttributeTrailingMargin NS_ENUM_AVAILABLE_IOS(8_0),
23     NSLayoutAttributeCenterXWithinMargins NS_ENUM_AVAILABLE_IOS(8_0),
24     NSLayoutAttributeCenterYWithinMargins NS_ENUM_AVAILABLE_IOS(8_0),
25     
26     NSLayoutAttributeNotAnAttribute = 0
27 };
复制代码

分三部分解释 NSLayoutAttribute

第一部分:常用的

NSLayoutAttributeLeft: CGRectGetMinX(view.frame);

NSLayoutAttributeRight: CGRectGetMaxX(view.frame);

NSLayoutAttributeTop: CGRectGetMinY(view.frame);

NSLayoutAttributeBottom: CGRectGetMinY(view.frame);

NSLayoutAttributeWidth: CGRectGetWidth(view.frame);

NSLayoutAttributeHeight: CGRectGetHeight(view.frame);

NSLayoutAttributeCenterX: view.center.x;

NSLayoutAttributeCenterY:view.center.y ;

NSLayoutAttributeBaseline: 文本底标线,在大多数视图中等同于NSLayoutAttributeBottom; 在少数视图,如UILabel,是指字母的底部出现的位置;

NSLayoutAttributeLastBaseline: 相当于NSLayoutAttributeBaseline;

NSLayoutAttributeFirstBaseline: 文本上标线;

NSLayoutAttributeNotAnAttribute: None;

 

第二部分: 根据国家使用习惯不同表示的意思不同

NSLayoutAttributeLeading: 在习惯由左向右看的地区,相当于NSLayoutAttributeLeft;在习惯从右至左看的地区,相当于NSLayoutAttributeRight;

NSLayoutAttributeTrailing: 在习惯由左向右看的地区,相当于NSLayoutAttributeRight;在习惯从右至左看的地区,相当于NSLayoutAttributeLeft;

 

第三部分:ios8新增属性,各种间距,具体用法下节介绍

NSLayoutAttributeLeftMargin,

NSLayoutAttributeRightMargin,

NSLayoutAttributeTopMargin,

NSLayoutAttributeBottomMargin,

NSLayoutAttributeLeadingMargin,

NSLayoutAttributeTrailingMargin,

NSLayoutAttributeCenterXWithinMargins,

NSLayoutAttributeCenterYWithinMargins,

 

 从网上找了一张图,标注以上属性


使用NSLayoutConstraint添加约束线 参考链接: http://www.jianshu.com/p/a4812b01a2a3 //view1可以待布局元件也可以为参考元件 //view2可以参考元件也可以为待布局元件 //事件函数计算公式: //view1.attr1 <relation> view2.attr2 * multiplier + constant //view1:约束线左(上)边端的元件(左(上)元件1) //attr1:指定view1约束线相关的轴线属性attr1(左(上)元 阅读详情

相关推荐

Masonry

Masonry框架的优点 Masonry是iOS在控件布局中经常使用的一个轻量级框架,Masonry让NSLayoutConstraint使用起来更为简洁。 基于NSLayoutConstraint的布局实现subView.top = superView.top * 1 + 10 subView.translatesAutoresizingMaskIntoConstraints = NO;//关闭自动布局 NSLayoutConstraint *constraint= [NSLayoutConst

cheng_xing_的博客 1651

iOS开发自动布局代码篇NSLayoutConstraint

一.介绍 NSLayoutConstraint是iOS6之后出来的类 使用AutoLayout之前需要知道以下两点: 1.必须设置translatesAutoresizingMaskIntoConstraints为NO 2.如果是viewController则AutoLayout适配写在: - (void)updateViewConstraints NS_AVAILABLE_IOS(6_

wgl_happy的专栏 2050

constraintWithItem:函数

解析: +(instancetype)constraintWithItem:(id)view1 attribute:(NSLayoutAttribute)attr1 relatedBy:(NSLayoutRelation)relation toItem:(nullable id)view2 attribute:(NSLayoutAttribute)attr2 multiplier:(CGFloat)mult

2497

NSLayoutConstraint 动态布局

大家好,我叫mark qq:1124728522,欢迎大家与我多多交流,批评指正。

iOS_mark的博客 712

基于cat12和SPM12进行VBM&SBM数据分析笔记1——数据预处理

基于cat12数据分析基础教程笔记 今年是小编步入研究生生活的第一年,研究方向待定,但主要以磁共振成像为主,以后会不断地总结这方面的知识,涉及MRI扫描,数据分析基础方法理论,软件操作教程,文献阅读笔记总结等等,用来记录我的研究生三年学习过程。编写尽量简洁明了,通俗易懂,本就是小白,也能体会小白的痛。不过这也要谢谢一个人手动@小白(网名),是他教我要把自己所学的写下来,讲出来才能真正的做到输入和输出,查漏补缺。而cat12软件操作是我面临的第一个数据分析的训练,写的可能也不会非常到位,还望各位专业人士指出改

Sophia2023的博客 4万+

VMware 虚拟机里连不上网的五种解决方案

在VMware虚拟机里的虚拟机系统连接不上网络 首先,注意查看适配器选项里的网络连接这两个网络连接是否存在,如果不存在可以重新装一下VM 如果存在,连不上网 解决办法一: 虚拟机设置里,找到“网络适配器”,右边的网络连接选择“NAT 模式”,如果不行的话再linux系统。还是不行的话接着看第二种解决方案。 解决方法二: 可能原因是VMware NET Service...

墨轩 18万+

UIViewAutoresizing和NSLayoutContraint的使用参数简介

每一个UIView都有一个autoresizingMask属性,它是用来

Fighting的专栏 744

Oracle11g安装教程、配置实例、监听、客户端程序详解_Windows篇

Oracle11g安装教程、配置实例、监听、客户端程序详解_Windows篇 文章目录Oracle11g安装教程、配置实例、监听、客户端程序详解_Windows篇前言一、数据库的安装前准备,前提是没有安装过!!!二、仅安装数据库软件(数据库运行环境)三、添加数据库实例四、设置监听程序,让数据库可以通过网络访问五、为目标数据库设置网名总结 前言 如果需要安装包:联系我看到会给你链接,因为现在官网已经不提供10g,11g的安装包了,在网盘保存望悉知(回复不会很及时,下班看到会回复敬请谅解)。 提示:以下

zhx__的博客 5630

代码自动布局,及masonry

/* Create constraints explicitly. Constraints are of the form "view1.attr1 = view2.attr2 * multiplier + constant" If your equation does not have a second view and attribute, use nil and NSLayoutAttr

码界颓废吴彦祖的博客 902

QT实现HTTP文件(夹)下载的完整流程与实战技巧

本文详细介绍了使用QT框架实现HTTP文件和文件夹下载的完整流程与实战技巧。通过QNetworkAccessManager等核心类,讲解了从单文件下载、大文件处理、进度显示、暂停/取消功能,到复杂的文件夹下载策略。文章重点剖析了断点续传、错误处理与网络健壮性等关键问题,为C++桌面应用集成稳定高效的下载功能提供了专业指导。

weixin_29239279的博客 279

天气预测模型:基于时间序列分析的数学建模与实战案例

目录引言时间序列分析介绍使用Matlab进行天气预测实战案例:天气预测结论天气预测一直是气象学和相关领域的重要研究问题之一。数学建模是进行天气预测的有效方法之一,其中时间序列分析是常用的技术。在本篇博客中,我们将介绍时间序列分析的基本原理,演示如何使用Matlab进行模型建立和预测,并通过一个实战案例来展示模型的应用和分析。时间序列分析是一种用于分析和预测时间序列数据的统计方法。天气数据通常具有时间依赖性和随机性,因此时间序列分析可以帮助我们了解天气的变化趋势和规律,并提供对未来天气的预测。时间序列分析通常

YOLO 1546

Masonry介绍与使用实践(快速上手Autolayout)

Masonry介绍与使用实践(快速上手Autolayout) 前言 1 MagicNumber -> autoresizingMask -> autolayout 以上是纯手写代码所经历的关于页面布局的三个时期 在iphone1-iphone3gs时代 window的size固定为(320,480) 我们只需要简单计算一

FanfanLoveSeason的专栏 305

《MPDIoU:边界框回归的高效革新与YOLOv8集成实战指南》

摘要: MPDIoU(多优先级距离IoU)通过引入中心距离、形状差异和尺度变化的三步优化策略,解决了传统IoU在目标检测中的尺度敏感、收敛低效和场景局限问题。相较于GIoU、DIoU等主流方法,MPDIoU在精度、速度和鲁棒性上实现全面提升,尤其在复杂场景和小目标检测中表现突出。通过代码集成和训练优化,MPDIoU在YOLOv8中显著提升COCO数据集AP指标,并在智能安防(密集行人检测)和工业质检(微小缺陷定位)等垂直领域验证了其应用价值。未来研究方向包括动态权重调整和多模态融合,进一步拓展边界框回归的精

m0_64661770的博客 158

iOS开发NSLayoutConstraint代码自动布局

1、NSLayoutConstraint简介   适配界面大多用Masonry工具,也是基于NSLayoutConstraint写的!通过使用两个类方法实现自动布局: + (NSArray<__kindof NSLayoutConstraint *> *)constraintsWithVisualFormat:(NSString *)format ...

weixin_33860528的博客 297

TIA博途中S7-1200进行MODBUS TCP通信(作为服务器)的具体方法演示

TIA博途中S7-1200进行MODBUS TCP通信(作为服务器)的具体方法演示

Robot_PLC_HMI_Automation 8614

通过分子模板构建随机分布在溶液中的纳米颗粒(一)

通过分子模板构建随机分布在溶液中的纳米颗粒 要实现的目标: 1、可以循环建立多个水分子溶液的模型; 2、针对不同水分子数,自动创建文件夹; 3、运行完毕将所有结果自动存储在对应文件夹里; 分子模板的具体教程请见我的博客: https://blog.csdn.net/qq_43689832/article/details/104443175 1、首先,我们先建立纳米颗粒的分子模板,命名为p_30.txt: 包括两种原子类型。具体格式如下: # LAMMPS molecule file makin.

Rockyoung 2651

masonry 妙用枚举

// - 系统定义的枚举 typedef NS_ENUM(NSInteger, NSLayoutAttribute) { NSLayoutAttributeLeft = 1, NSLayoutAttributeRight, NSLayoutAttributeTop, NSLayoutAttributeBottom, NSLayoutAttributeLea...

Coder 233

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

NSLayoutConstraint-代码实现自动布局的函数用法说明

[NSLayoutConstraint constraintWithItem:view1 attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual t

LIN1986LIN的专栏 1238

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

iOS NSLayoutAttributeLeft与NSLayoutAttributeLeading的区别

iOS NSLayoutAttributeLeft与NSLayoutAttributeLeading的区别 在使用Masonry时,有mas_left与mas_leading,同样有mas_right与mas_trailing,在中国都习惯左、右布局,使用left/right与heading/trailing是一样的。但是,在其它部分国家,开发者们的习惯不都是左、右或者前、后布局,还有右、左或者后、

标哥 4397

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

NSLayoutAttributeLeft与NSLayoutAttributeLeading的区别

前言 在使用Masonry时,有mas_left与mas_leading,同样有mas_right与mas_trailing,在中国都习惯左、右布局,使用left/right与heading/trailing是一样的。但是,在其它部分国家,开发者们的习惯不都是左、右或者前、后布局,还有右、左或者后、前布局的,因此是不一样的。 在中国,就放心的使用左、右或者前、后的方式吧。 Mas

三多 1673

以编码的方式实现Auto Layout自动布局(二)

在上一篇文章iOS学习笔记02——以编码的方式实现Auto Layout自动布局(一)中我们简单的介绍了使用Visual Format Language创建布局约束来实现自动布局,这种方法创建的布局约束能够满足大部分的布局的需求。但是想要实现类似于这样的约束:button.width = 2 * button.height就不能满足要求了,这一篇我们我们简单介绍一下如何创建这样的布局约束。

lusonglin121的专栏 774

iOS8 Day-by-Day 项目解析:深入理解布局边距(Layout Margins)

在iOS8中,苹果为Auto Layout系统引入了一个重要但容易被忽视的特性——布局边距(Layout Margins)。这个特性为界面布局提供了更加灵活的控制方式,类似于CSS中的padding概念。本文将全面解析布局边距的工作原理和使用方法。 ## 什么是布局边距? 布局边距是UIView内部的一种padding机制,它定义了视图内容与视图边界之间的最小间距。默认情况下,UIView的四

gitblog_01110的博客 381

Masonry 框架小结

Masonry 框架小结 自从 iOS 6.0 苹果引入自动布局以来,经过不断的发展,其已经成为我们进行 UI 布局的主要技术之一。在 Autolayout 之前,可以使用 Autoresizing 来约束视图的父子关系,但是局限性很大,很多任务无法实现,如其不能约束兄弟视图之间的关系。 相比之下,Autolayout 的功能则强大的多,其核心概念便是参照和约束。 NSLayoutConstrai...

集腋成裘 881
上一篇: xibyu约束scrollerview
下一篇: Masonry练习详解
SpringJustin
博客等级 码龄11年 2粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值