博客
关于我
一些Masonry布局问题
阅读量:765 次
发布时间:2019-03-23

本文共 1414 字,大约阅读时间需要 4 分钟。

UI布局与布局约束

一些属性

在UI布局中,几个常见的属性能够帮助开发者更好的掌握视图的排放方式。centerXcenterY 是用来设置视图的水平和垂直居中位置,而 center 属性则是一个综合性的方法,可以同时设置两个坐标。

通过将 center 属性赋值为 CGPoint 实例,可以快速地让视图元素在父视图中居中显示。如:

make.center.equalTo(self.view.center)

这样不仅设置了中心点的 xy 坐标,将进一步简化布局配置。

用margin解决遮挡问题

在某些情况下,如果不想让元素被其他内容遮挡,可以采用 margin 的方式进行布局。这种方法由 masonry 库提供支持,适用于对布局内容进行精细调整。

以下是通过 margin 设置元素外部间隙的示例:

make.margin.equalTo(UIEdgeInsetsMake(5, 5, 5, 5))

这种方法适用于在当前视图的四个方向都设置相同的间隙,能够有效避免内容被遮挡,同时保持一定的外观美观度。

edges属性

在布局中,通过 edges 属性可以设置视图与其父视图之间的间距。默认情况下,这个属性工作于基于间距的布局模式下,提供了灵活的间距控制方法。

如,设置元素与父视图的间距都为零:

make.edges.mas_equalTo(0)

如果需要更个性化的间距,可以使用 UIEdgeInsetsMake 方法,设置各个方向的间隔值:

make.edges.insets(UIEdgeInsetsMake(5, 5, 5, 5)) // 上下左右各设置为5的间距

大于等于和小于等于的约束

在布局中,为了确保视图的宽高比例符合预期,可以使用约束条件来进行宽高限制。Flex布局允许开发者对元素的宽度和高度设置约束,例如:

[self.textLabel mas_makeConstraints:^(MASConstraintMaker *make) {    make.center.equalTo(self.view); // 设置居中位置    make.width.lessThanOrEqualTo(@(200)); // 宽度不超过200    make.height.greaterThanOrEqualTo(@(10)); // 高度不小于10}];

通过设置宽高约束,可以有效地控制视图的大小,同时确保其在不同设备屏幕尺寸下的适应性。

子视图垂直居中

如果需要将子视图垂直居中,可以通过Flex布局的方式实现。以下是具体的实现方法:

[self.subView mas_makeConstraints:^(MASConstraintMaker *make) {    make.parentViewijkeпashaSouthSide    make.width_equalToTORiginWidth * 0.5;    make.height.equalTo(finalHeight);    make.centerY.equalTo(self.view.center);}];

通过设置 make.centerY.equalTo(self.view.center),可以让子视图在父视图垂直中央得到居中显示。通过该方式,不仅可以保证子视图的竖直摆放,还可以灵活调整其宽高比例。

转载地址:http://tovzk.baihongyu.com/

你可能感兴趣的文章
MySql中关于geometry类型的数据_空的时候如何插入处理_需用null_空字符串插入会报错_Cannot get geometry object from dat---MySql工作笔记003
查看>>
mysql中出现Incorrect DECIMAL value: '0' for column '' at row -1错误解决方案
查看>>
mysql中出现Unit mysql.service could not be found 的解决方法
查看>>
mysql中出现update-alternatives: 错误: 候选项路径 /etc/mysql/mysql.cnf 不存在 dpkg: 处理软件包 mysql-server-8.0的解决方法(全)
查看>>
Mysql中各类锁的机制图文详细解析(全)
查看>>
MySQL中地理位置数据扩展geometry的使用心得
查看>>
Mysql中存储引擎简介、修改、查询、选择
查看>>
Mysql中存储过程、存储函数、自定义函数、变量、流程控制语句、光标/游标、定义条件和处理程序的使用示例
查看>>
mysql中实现rownum,对结果进行排序
查看>>
mysql中对于数据库的基本操作
查看>>
Mysql中常用函数的使用示例
查看>>
MySql中怎样使用case-when实现判断查询结果返回
查看>>
Mysql中怎样使用update更新某列的数据减去指定值
查看>>
Mysql中怎样设置指定ip远程访问连接
查看>>
mysql中数据表的基本操作很难嘛,由这个实验来带你从头走一遍
查看>>
Mysql中文乱码问题完美解决方案
查看>>
mysql中的 +号 和 CONCAT(str1,str2,...)
查看>>
Mysql中的 IFNULL 函数的详解
查看>>
mysql中的collate关键字是什么意思?
查看>>
MySql中的concat()相关函数
查看>>