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

@antv/layout 组件下ml-matrix/src/symmetricMatrix.js报错问题 更换ml-matrix的版本号"version": “6.11.0"为"version”: “6.10.2”, 阅读详情

转自:http://blog.youkuaiyun.com/dongbaojun_ios/article/details/12624393

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

Apple就是非常贴心,它为我们提供了另外一个方法创建类似于view1.attr1 = view2.attr2 * multiplier + constant这样的约束,方法如下:

[cpp]  view plain copy
  1. +(id)constraintWithItem:(id)view1 attribute:(NSLayoutAttribute)attr1 relatedBy:(NSLayoutRelation)relation toItem:(id)view2 attribute:(NSLayoutAttribute)attr2 multiplier:(CGFloat)multiplier constant:(CGFloat)c;  

下面我们用这种方法创建一个布局约束,实现一个按钮button的布局,button距离父视图的左侧60点,距离顶部30点,其中宽度W = 2 * H + 10。效果图如下


不多说,上代码

[cpp]  view plain copy
  1. - (void)viewDidLoad  
  2. {  
  3.     [super viewDidLoad];  
  4.     // Do any additional setup after loading the view.  
  5.     self.edgesForExtendedLayout = UIRectEdgeNone;  
  6.       
  7.     UIButton * button = [UIButton buttonWithType:UIButtonTypeSystem];  
  8.     button.layer.borderColor = [UIColor blackColor].CGColor;  
  9.     button.layer.borderWidth = 2.0;  
  10.     [button setTitle:@"W=2*H" forState:UIControlStateNormal];  
  11.     [self.view addSubview:button];  
  12.       
  13.     [button setTranslatesAutoresizingMaskIntoConstraints:NO];  
  14.       
  15.     NSMutableArray * tempConstraints = [NSMutableArray array];  
  16.       
  17.     [tempConstraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-60-[button]" options:0 metrics:nil views:NSDictionaryOfVariableBindings(button)]];  
  18.     [tempConstraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-30-[button(==30)]" options:0 metrics:nil views:NSDictionaryOfVariableBindings(button)]];  
  19.       
  20.     [self.view addConstraints:tempConstraints];  
  21.       
  22.     [self.view addConstraint:[NSLayoutConstraint constraintWithItem:button attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:button attribute:NSLayoutAttributeHeight multiplier:2.0 constant:10.0]];  
  23. }  
如果还不是很清楚可以查看这个链接http://commandshift.co.uk/blog/2013/02/20/creating-individual-layout-constraints/

里面介绍很清楚!

解决@antv/layout项目中ml-matrix的symmetricMatrix.js报错:从6.11.0降级到6.10.2的完整指南 本文详细分析了在@antv/layout项目中因ml-matrix升级至6.11.0版本导致symmetricMatrix.js报错的根本原因,即ES2022私有字段语法与现有构建环境不兼容。提供了将ml-matrix从6.11.0降级至6.10.2的完整、安全的操作指南,包括版本决策依据、具体降级步骤、依赖锁定方法以及问题排查技巧,帮助开发者快速解决编译错误,恢复项目正常构建。 阅读详情

相关推荐

Antv X6布局进阶:除了GridLayout,@antv/layout里还有哪些宝藏布局算法?

本文深入探讨Antv X6的高级布局算法,包括力导向布局、环形布局和树状布局等,帮助开发者解决复杂数据可视化中的布局难题。通过详细参数解析和实战代码示例,展示如何根据不同数据结构和需求选择合适的布局方案,提升图表表现力和信息传达效率。

weixin_33725515的博客 424

“Error: Ensure the container of the graph is specified and valid“:antv-x6报错

antv-X6快速上手报错: 发现原因是因为: 正确的代码如下: <template> <div id="container"> </div> </template> <script> import { Graph } from '@antv/x6'; const data = { // 节点 nodes: [ { id: 'node1', // String,可选,节点的唯一标识

weixin_44213308的博客 6443

Figma Auto Layout 核心更新:嵌套布局、文件夹与像素优化实战

在现代UI/UX设计和前端开发中,响应式布局是构建可复用组件和确保设计一致性的基础技术。其核心原理是通过规则化的排列与间距控制,实现元素在不同尺寸下的自适应排列,这直接对应了前端CSS中的Flexbox与Grid布局模型。这项技术的核心价值在于提升设计稿的工程化程度,减少设计与开发之间的还原成本,并支撑复杂设计系统的构建。典型的应用场景包括按钮组、导航栏、卡片列表等需要动态适配内容的界面模块。本文聚焦于Figma近期对Auto Layout功能的重大更新,特别是针对嵌套布局场景下间距控制的优化,以及新增的可

weixin_33800463的博客 414

Antv-X6动态渲染流程图布局问题

antv-x6流程图渲染位置布局

weixin_68729379的博客 5618

掌握Auto Layout与Stack View打造适应性布局

本文详细介绍了如何在Interface Builder中使用Auto Layout和Stack View来构建适应性强的用户界面。通过具体的操作步骤和实例,展示了如何通过设置约束和属性来实现复杂的布局。文章还探讨了.xib文件与故事板各自的优缺点,并通过挑战任务来加深理解。最终,总结了在使用这些工具时需要考虑的要点和最佳实践。

weixin_42601608的博客 312

AntVg6.min.js

阿里AntV | G6

iOS学习笔记03——以编码的方式实现Auto Layout自动布局(二)

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

董宝君的博客 5359

UE4-(IK)实现人物脚贴合地面解决斜坡上脚无旋转无法贴合地面问题

在斜面上脚陷入模型中,需要设置旋转值对脚的骨骼进行一个旋转。 解决思路:在射线检测中可以获取到检测点的法线方向,根据法线方向来计算出脚应该向哪个方向进行适当的旋转,在斜坡上,人物脚需要旋转的轴为x轴和y轴以便来贴合地面,z轴方向的旋转是不需要进行修改的。 如图所示,我们需要求得水平面与斜坡的夹角用来得出人物在x轴上的脚旋转量,在蓝图中提供反正切函数,反正切 = 锐角的邻边/对边 所以 反正切值(脚x轴值(roll)) = 法线Y轴值/法线Z轴 值。 现在将上图的人物想象成面向屏幕,脚需...

Stone的博客 3317

Auto Layout简单应用——以编码的方式实现Auto Layout自动布局(二)

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

weixin_33991727的博客 126

HyperLPR3车牌识别-Android-SDK光速部署与使用

基于深度学习高性能中文车牌识别 High Performance Chinese License Plate Recognition Framework.快速部署AndroidSDK

tunm 6120

(ZOS-API)Matlab控制ZEMAX软件调整光学系统某镜面位姿

所用软件的版本:MatlabR2022a, Zemax OpticStudio2024R1交互扩展功能,Zemax和可以同时打开,操作会比较方便在ZEMAX软件中,调整次镜位置通常有两种方法:1.在次镜前后各添加一个坐标间断面,并修改其“偏心X”“偏心Y”等参数来调整次镜的位姿;2.或者直接在次镜属性选项中设置相关数值。这两种方法对Zernike系数的采集结果无显著影响。

ecilifurt的博客 911

12. Auto Layout 自动布局

本文主要介绍了 UI 设计中的 AutoLayout,包括自动布局的目的、计算公式、Xcode 布局工具、布局属性、示例以及编码实现等内容。AutoLayout 是一种用于 UI 设计的技术,主要用于窗口尺寸变化或屏幕翻转后的元素自适应。其目的是为了适配不同大小屏幕,通过约束关系来确定父子视图之间、相邻视图之间的相对位置关系。与传统布局以坐标原点为基点不同,自动布局以元素与元素视图的位置为基础自动计算当前元素的尺寸。

编程是一门实践技术 1919

Python读取三菱PLC数据

3、支持自定义的数据读写操作。直接调用Read方法,可以读取到原生的byte数组,然后进行组合数据。1、每次的数据交互您都可以判断是否成功,如果您不判断,如果网络断开或是异常,会影响程序的执行。Qna3E协议的ascii类 MelsecMcAsciiNet。A兼容1E协议的二进制类 MelsecA1ENet。Qna3E协议的二进制类 MelsecMcNet。2、读写操作支持单个数和数组。

weixin_46744807的博客 1998

iOS学习笔记02——以编码的方式实现Auto Layout自动布局(一)

Auto Layout是在WWDC2012上被引入到iOS中的,从iOS6.0以后就开始支持,但是大多数的开发者还是习惯使用传统的UI布局方式,虽然有一大部分开发者早已使用了Auto Layout,这其中大多数的开发者是在拖拽IB文件或者是使用StoryBoard时才会选择用Auto Layout的布局方式。 Auto Layout是一种基于约束的、描述性的布局系统。也就是使用约束条件来描述布局

董宝君的博客 1万+

Python画常见分布的概率密度图

因为做概随大作业,了解了一些python画概率分布图的方法。

qq_44807946的博客 5204

Docker启动安装nacos(详情讲解,全网最细)

docker安装nacos保姆级教程

ilvjiale的博客 8万+

iOS 自动布局:Auto Layout 与 Masonry

Auto Layout是苹果官方推出的布局系统,基于约束(Constraints)来描述视图之间的关系。使用Auto Layout时,应避免过多的冗余约束,并善用UIView的translatesAutoresizingMaskIntoProperties属性。通过调整约束的constant值或重新安装约束,结合UIView的动画方法,可以轻松实现界面元素的平滑过渡。随着屏幕尺寸的多样化,传统的绝对布局方式已无法满足需求,而Auto Layout和Masonry的出现为开发者提供了更灵活的解决方案。

oafryr_972的博客 261

2024年09月CCF-GESP编程能力等级认证Scratch图形化编程二级真题解析

小杨购物 【题目描述】 小杨有n元钱用于购物。商品A的单价是a元,商品B的单价是b元。 小杨想购买相同数量的商品A和商品B。 默认小猫角色和白色背景,编写程序请你帮小杨计算出他最多能够购买多少个商品A和商品B。 【输入描述】 新建变量“n”用于存储小杨购物的金额。 新建变量“a”用于存储商品A的价格。 新建变量“b”用于存储商品B的价格。 1≤n,a,b≤100000 如下图所示: 图片 【输出描述】 新建变量“result”用于存储小杨最多购买商品A和商品B的个数。 如下图所示:

人生就是一个不断学习的过程 497

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

Auto Layout是在WWDC2012上被引入到iOS中的,从iOS6.0以后就开始支持,但是大多数的开发者还是习惯使用传统的UI布局方式,虽然有一大部分开发者早已使用了Auto Layout,这其中大多数的开发者是在拖拽IB文件或者是使用StoryBoard时才会选择用Auto Layout的布局方式。 Auto Layout是一种基于约束的、描述性的布局系统。也就是使用约束条件来描述

若梦的专栏 917

智能车图像处理12-进阶篇4--环岛辅助判断条件

主函数: 第6行: 含义是当前需要不在坡道和车库状态 第11-12行 : 寻找一下环岛的双断点(在辅助函数中) 第16-66行: 当左右线的方差满足一边很大,一边很小时,truepianfangflag /truepianfangflagforleft 置1,在环岛的判断中使用。 辅助函数: 双断点函数(左与右相似,以做为例): 第13-28行: 第一处断点 第29-40行: 第一处断点后 连续边线 第41-52行: 第一处连续后,第二处断点 第53-64行: 第二处断点后,第二处

taiyuezyh的博客 1万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

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

转自:http://blog.youkuaiyun.com/dongbaojun_ios/article/details/12566529 Auto Layout是在WWDC2012上被引入到iOS中的,从iOS6.0以后就开始支持,但是大多数的开发者还是习惯使用传统的UI布局方式,虽然有一大部分开发者早已使用了Auto Layout,这其中大多数的开发者是在拖拽IB文件或者是使用StoryBoar

lifreshman的专栏 792

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

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

iOSLearningDiary以编码的方式实现Auto Layout自动布局

Auto Layout是在WWDC2012上被引入到iOS中的,从iOS6.0以后就开始支持,但是大多数的开发者还是习惯使用传统的UI布局方式,虽然有一大部分开发者早已使用了Auto Layout,这其中大多数的开发者是在拖拽IB文件或者是使用StoryBoard时才会选择用Auto Layout的布局方式。 Auto Layout是一种基于约束的、描述性的布局系统。也就是使用约束条件来描述

tyforfreedom的专栏 456

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

上一篇: 以编码的方式实现Auto Layout自动布局(一)
下一篇: Visual Format Language语法的简单学习
lifreshman
博客等级 码龄17年 6粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值