Masonry框架基本使用方法

用Linkboy玩转Arduino:3小时搞定智能倒车雷达(附仿真文件下载) 本文详细介绍了如何利用Linkboy图形化编程工具,在3小时内快速搭建一个基于Arduino的智能倒车雷达项目。通过仿真环境,初学者无需硬件即可学习超声波测距原理、报警逻辑设计,并完成从虚拟仿真到实体硬件的完整流程。文章提供了清晰的步骤、调试技巧及功能扩展思路,并附有仿真文件,是入门Arduino和智能硬件制作的绝佳实践指南。 阅读详情
  • iPhone-iPhone3GS:window的size固定为(320,480),我们只需要简单计算一下相对位置就好。

  • iPhone4-iPhone4S:苹果推出了retina屏,但是对于开发人员并没有改变太多,window的size同样没有变化。

  • iPhone5-iPhone5S:window的size变为(320,568),苹果推出了autoresizingMask适配屏幕。

  • iPhone6至今:window的width也发生了变化,autoresizingMask不能更好的适配各种各样的屏幕尺寸,随之苹果推出了autolayout来支持复杂的适配。

我们平时总是在xib或storyboard里轻松的添加控件的约束,但是使用代码添加约束是一件非常痛苦的事情。虽然苹果推出了VFL语言简化了代码添加约束的复杂性,但是随之而来的缺点也暴露出来:约束内容使用字符串在编写过程中容易出错,约束功能局限,而且也并不是简化了太多。

Masonry是目前最流行的AutoLayout框架,属于轻量级布局框架,拥有自己的描述语法,采用更优雅的链式语法封装自动布局,简洁明了,具有更高的可读性。可以方便快捷的使用代码添加控件的约束,下面简单介绍一下这个三方框架的使用方法:

配置

  • 点击该链接 https://github.com/SnapKit/Masonry.git 下载

  • 将Masonry文件包拖入项目中,删除包内自带的info.plist文件

  • demo中对Masonry的引用在.pch文件中

  • 使用Masonry不需要设置约束控件的translatesAutoresizingMaskIntoConstraints属性

简单实现

1.约束控件大小为100x100、位置为父控件的中心点

[blueView mas_makeConstraints:^(MASConstraintMaker *make) {
    make.size.mas_equalTo(CGSizeMake(100, 100));
    make.center.mas_equalTo(self.view);
}];

也可以分别约束控件的宽和高、中心点的位置

[blueView mas_makeConstraints:^(MASConstraintMaker *make) {
    make.width.mas_equalTo(100);
    make.height.mas_equalTo(100);
    make.centerX.mas_equalTo(self.view);
    make.centerY.mas_equalTo(self.view);
}];

2.约束控件的大小为父控件的一半、约束控件在父控件的右上角,距离父控件右边和顶部均为20

[blueView mas_makeConstraints:^(MASConstraintMaker *make) {        
    make.size.mas_equalTo(self.view).multipliedBy(0.5);
    make.right.mas_equalTo(self.view.mas_right).with.offset(-20);
    make.top.mas_equalTo(self.view.mas_top).with.offset(20);
}];

3.约束控件距离父控件四周距离均为50

[blueView mas_makeConstraints:^(MASConstraintMaker *make) {    
    make.left.mas_equalTo(self.view).offset(50);
    make.right.mas_equalTo(self.view).offset(-50);
    make.top.mas_equalTo(self.view).offset(50);
    make.bottom.mas_equalTo(self.view).offset(-50);
}];

可以简化为

[blueView mas_makeConstraints:^(MASConstraintMaker *make) {    
    make.edges.mas_equalTo(self.view).insets(UIEdgeInsetsMake(50, 50, 50, 50));
}];

4.两个控件互相约束

[blueView mas_makeConstraints:^(MASConstraintMaker *make) {        
    make.left.mas_equalTo(self.view.mas_left).offset(20);
    make.right.mas_equalTo(redView.mas_left).offset(-20);
    make.bottom.mas_equalTo(self.view.mas_bottom).offset(-20);
    make.height.mas_equalTo(50);
}];

[redView mas_makeConstraints:^(MASConstraintMaker *make) {        
    make.right.mas_equalTo(self.view.mas_right).offset(-20);
    make.bottom.mas_equalTo(blueView.mas_bottom);
    make.height.mas_equalTo(blueView.mas_height);
    make.width.mas_equalTo(blueView.mas_width);
}];

总结

  • 约束的类型:

    • 尺寸:width、height、size
    • 边界:left、leading、right、training、top、bottom
    • 中心点:center、centerX、centerY
    • 边界:deges
  • mas_equalTo 和 equalTo 区别

    • mas_equalTo 对参数进行包装
    • equalTo 不会对参数进行包装
  • mas_width 和 width 区别

    • width是make对象的一个属性,对宽度进行约束
    • mas_width是一个属性值,当做mas_equalTo的参数,表示某个控件的宽度属性
  • with和and仅仅是为了提高可读性,可有可无

药物对接仿真软件:HADDOCK_(3).分子对接基本原理 分子对接(Molecular Docking)是计算化学和结构生物学中的一种重要技术,用于预测小分子(如药物分子)与大分子(如蛋白质)之间的相互作用模式和结合亲和力。这一技术在药物设计和开发中具有广泛的应用,尤其是在寻找和优化潜在的药物候选物方面。本节将详细介绍分子对接的基本原理,包括其理论基础、计算方法和应用。 阅读详情

相关推荐

Python气象数据处理实战:用PyCINRAD轻松绘制雷达PPI图像(附避坑指南)

本文详细介绍了如何使用Python库PyCINRAD处理中国CINRAD系列天气雷达的基数据,并绘制专业的PPI图像。内容涵盖从环境配置、数据读取、核心绘图到高级定制与批量处理的完整流程,并针对安装依赖、中文乱码、数据范围等常见问题提供了实用的避坑指南,帮助气象工作者高效完成雷达数据可视化。

dog123的博客 221

【iOS】Masonry的基本使用

暑假安装了cocoapods,简单使用其调用了SVGKit,但是没有学习Masonry,特此总结博客记录Masonry的学习于此基础的Masonry的使用已经基本讲解完了,后续在写计算器的时候会更多的使用到Masonry,一些更深层次的用法会在后面的博客中讲解另外需要记住的一点是使用Masonry会影响我们的性能,frame往往是最简单高效的,在实际的设计中我们可以将这两种布局方式进行混合使用。

weixin_72437555的博客 4883

Docker拉取ubuntu22.04镜像使用ROS2 humble及仿真工具可视化进行导航

Docker中安装Ubun22以及ROS,gazebo可视化等

lovebc的博客 1676

Masonry的简单使用

配置CocoaPods 要使用CocoaPods你必须得在你的MAC上配置CocoaPods,具体配置可以看2021年CocoaPods安装方法。 CocoaPods的使用 1.创建一个工程并且在终端中打开。 //cd后面的是你创建的工程在电脑上的地址,你也可以直接把文件拖进去 在终端中输入:$ cd 文件地址 2.进来之后创建Podfile文件。 终端输入:$ touch Podfile 3.打开并编辑Podfile文件。 终端输入:$ vim Podfile 在进入界面后,再按i,下面的"Pods

m0_55124878的博客 1284

2025年从零开始:构建你的首个ComfyUI工作流-ComfyUI入门教程

然而,由于它拥有众多的插件节点,以及较为复杂的操作流程,学习起来相对困难。以前面搭建的文生图工作流为例,首先点击功能区的【保存】,然后你的浏览器会出来一个弹窗,你可以进行文件命名,点击确定后浏览器会下载该文件,也就是带“json”后缀的文件,这样我们的工作流就打包成一份文件了。思考一下前面说的,节点是不是需要下载安装才能使用,而我们复用别人的工作流,他用的节点你不一定下载了,因为目前有600多个节点,你不可能全部下载了吧,所以我们日后使用别人的工作流,你会经常出现这样的问题。

weixin_59486588的博客 1454

保姆级教程:用NILMTK和REDD数据集,5分钟跑通你的第一个负荷分解模型

本文提供了一份详细的NILMTK和REDD数据集负荷分解模型教程,适合零基础用户快速上手。从环境准备、数据获取到模型构建和评估,全程仅需5分钟即可完成。特别适合希望快速入门非侵入式负荷分解(NILM)的开发者,涵盖数据预处理、模型训练及结果可视化等关键步骤。

weixin_30493401的博客 441

Masonry 框架的使用

Masonry 框架 目标 理解 Masonry 框架的基本使用差不多是使用最为广泛的自动布局框架下载地址:https://github.com/SnapKit/Masonry掌握 Masonry 的三个核心函数知道 Masonry 的两个宏 /// 构建约束 mas_makeConstraints /// 更新约束 - 修改已经建立的约束,如果约束不存在,会在控制台输出错误 mas_

dragongd的博客 4805

保姆级避坑指南:Mid-360雷达到手后,用livox_ros_driver2从接线到出点云的完整流程

本文提供Mid-360雷达到手后的完整使用指南,涵盖从硬件接线、网络配置到livox_ros_driver2驱动的安装与调试,帮助用户避开常见陷阱,实现点云数据的稳定输出与可视化。重点解析了配置文件的参数设置和点云格式选择,确保用户能够高效部署和使用Mid-360雷达。

weixin_30733003的博客 483

masonry的约束应该写在哪里_浅谈Masonry的使用技巧

这里需要简述一下Frame布局方式和Masonry布局方式各有什么优缺点。我觉得这种谁强谁弱的问题要去辩证的看待,Frame布局方式在简单UI排版情况下,较为简单,而且性能极高,但是不利于扩展,例如如果是横竖屏情况就基本上需要使用两套布局方案,非常的麻烦和繁琐。反观Masonry布局,使用起来较为方便,可以轻松应对各种布局方式,但是在性能上存在问题,使用不当容易造成性能问题,性能方便要比Frame...

weixin_39878247的博客 778

同步调相机启动与并网控制技术方案

同步调相机起动与并网控制技术方案采用背靠背变流器系统,通过静止变频器(SFC)策略实现无原动机驱动的同步电机从静止到同步转速的平稳起动。方案详细阐述了硬件自检、模块初始化、转子位置检测等关键环节,重点解决启动转矩为零、冲击电流大等挑战。系统基于STM32或C2000系列控制器,包含网侧/机侧变流器、检测保护单元及通信接口,通过励磁脉冲和电压响应分析实现高精度转子初始定位,为后续并网提供必要条件。代码级实现涵盖了ADC自检、数字IO验证及通信端口测试等核心功能。

huanghm88的专栏 305

OBYC自动科目确定整理

WGI是用来重估发货的,通过比较发货时的价格和最新计算的价格,以此将所有差异过账到分配给此事务码的总账科目。是工厂还是公司,一般项目中都是使用工厂,使用工厂的意思就是物料在每个工厂下有一个价格,如果使用公司,则一个公司下的所有工厂都使用一个价格。如果该物料用的是移动平均价,那么该库存依然还存在的情况下,这个价格差异会过账到存货科目上而不会过账到存货的价格差异科目上。用于确定存货评估过账的存货冲抵科目。事务码WGR是用来重估工厂收货的,根据 计算出来的价格差异,把库存的调整过账分配给这个事务码中的总账科目。

nopicture的博客 348

Masonry的基本使用方法

项目中需要使用到masonry进行适配,简单记录一下学习中的问题。 使用masonry首先需要导入masonry,masonry github地址如下:masonry下载地址:Swift 版:https://github.com/SnapKit/SnapKit OC 版 : https://github.com/SnapKit/Masonry首先需要了解一些参数和方法: // ma

zww学习笔记 3169

Isaac Lab 强化学习全身控制策略 Sim2Real 宇树人形机器人训练部署 HOVER

《IsaacLab策略训练与部署指南》提供了在仿真和真实机器人上实现HOVER全身控制策略的完整流程。主要内容包括:1) Linux环境下的IsaacLab安装与HOVER资源库配置;2) 使用1024个并行环境训练教师/学生策略的详细步骤;3) 策略测试与评估方法;4) Sim2Sim仿真验证和Sim2Real真实机器人部署方案。本教程特别针对Unitree H1仿人机器人,包含运动数据准备、策略训练、性能评估到硬件部署的全链条实现方案,为机器人控制策略开发提供标准化参考框架。

机器人控制与仿真应用 3069

iOS开发之Masonry框架-使用方法须知

目录 常用的属性与常量 Masonry使用注意 约束的优先级 Masonry添加约束的方法 修改约束 在哪创建我的约束 创建约束技巧: Masonry是一个轻量级的布局框架,它拥有自己的描述语法(采用...

weixin_30577801的博客 562

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Masonry基本用法

Masonry用法上也比较简单灵活,很大程度上替代了传统的NSLayoutConstraint布局方式,是目前最流行的AutoLayout框架. 一、Masonry基本知识: 1.Masonry会自动调用 view.translatesAutoresizingMaskIntoConstraints=NO;      2.属性  left/right/top/bottom/

XingXingRainLove的博客 827

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Masonry布局框架的使用

Masonry是一个轻量级的布局框架 拥有自己的描述语法 采用更优雅的链式语法封装自动布局 简洁明了 并具有高可读性。比我们使用自动布局,繁琐的约束条件,好用多了。下面我们来学学masonry的使用方法。     首先我们要下载Masonry源码。源码地址如下: https://github.com/Masonry/Masonry 将源码下载下来后,可以直接编译过使用的。

afdl9999的专栏 1万+

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Masonry框架的整合和使用

Masonry框架的整合和使用

井蛙不可语海,夏虫不可语冰 849

iOS自动布局框架Masonry

Masonry是一个轻量级的布局框架 拥有自己的描述语法 采用更优雅的链式语法封装自动布局 简洁明了 并具有高可读性 而且同时支持 iOS 和 Max OS X。 这是Masonry的Github地址本文对Masonry做一个简单的介绍,想深入的话,去官网学习:UIEdgeInsets padding = UIEdgeInsetsMake(10, 10, 10, 10);[view1 mas_ma

闪星的博客 474

Masonry的使用

Masonry简介 Masonry是一个iOS开发布局框架,相比原生的NSLayoutConstraint,提高了使用容易度和代码的可阅读程度。Masonry使用了链式语法,例如:make.left.equalTo(view.mas_bottom).offset(0);不管是使用还是阅读,都是非常易懂的。 安装 基于CocoaPods 安装CocoaPods可参考iOS安装CocoaPods详细过...

吃橘子 1256

设置约束的masonry的使用

Masonry     1.Masonry基本概念     》Masonry,“一个轻量级的布局框架,采用更"优雅"的语法封装自动布局”,不需要使用XIB和Storyboard, 并具有高可读性 而且同时支持 iOS 和 Max OS X     Masonry尤其适合习惯纯代码开发的开发者 ,在iPhone6发布后引发的适配潮中 Masonry一定可以助你一臂之力

yoyo_lzj的博客 4678

iOS自动布局框架-Masonry详解

目前iOS开发中大多数页面都已经开始使用Interface Builder的方式进行UI开发了,但是在一些变化比较复杂的页面,还是需要通过代码来进行UI开发的。而且有很多比较老的项目,本身就还在采用纯代码的方式进行开发。 而现在iPhone和iPad屏幕尺寸越来越多,虽然开发者只需要根据屏幕点进行开发,而不需要基于像素点进行UI开发。但如果在项目中根据不同屏幕尺寸进行各种判断,写死坐标的话,

u011752619的博客 407

iOS Autolayout之Masonry解读

Masonry Masonry是公认非常简洁优美的一款Autolayout框架我推荐大家重点学习这个框架我会把Autolayout的思维融合这个框架一起讲解 Masonry的使用 想要使用第三方Masonry要么要去GitHub上下载原代码下来拖进项目中,要么就直接使用cocoapods,pod search Masonry,下载最新版cocoapods的使用不是本文讨论的范围,大家可以

硅谷热的博客 1517

【iOS】Masonry初步认识

要引入Masonry,首先要保证你的Mac上已经安装了cocoapods且能正常运作,下面推荐两篇博客: 安装cocoapods、针对M1芯片安装cocoapods首先检查源是否存在:pod search masonry然后进行接下来的操作:打开终端,cd到所需要下载的文件目录:cd /文件目录(也可以打开访达,找到想要的文件,拖进来)touch PodFile(在刚才指定的目录下创建了一个Podfile空文件)打开这个文件,将以下内容输入进去,并保存等待一段时间后,就会出现Pod installation

zdsey的博客 951

iOS 自动布局框架 – Masonry 详解

Masonry介绍这篇文章只是简单介绍Masonry,以及Masonry的使用,并且会举一些例子出来。但并不会涉及到Masonry的内部实现,以后会专门写篇文章来介绍其内部实现原理,包括顺便讲一下链式语法。什么是MasonryMasonry是一个对系统NSLayoutConstraint进行封装的第三方自动布局框架,采用链式编程的方式提供给开发者API。系统AutoLayout支持的操作,Mason

Developer 992

iOS 自动布局框架– Masonry

1.Masory是什么: Masonry是一个对系统NSLayoutConstraint进行封装的第三方自动布局框架,采用链式编程的方式提供给开发者API。 2.集成方式 Masonry支持CocoaPods,可以直接通过podfile文件进行集成,需要在CocoaPods中添加下面代码: pod'Masonry' 注意:新手使用 在使用Masonry添加约束之前,需要在addSubview之后才能使用,否则会导致崩溃。 3、mas_equalTo是一个Macro,mas_equalTo比较

C_philadd的博客 406
上一篇: 封装图片轮播器
下一篇: iOS进程类:NSProcessInfo
mayan29
博客等级 码龄11年 13粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值