自动布局-MyLayout

自动布局-MyLayout,第1张

1、 MyLayout 是一套iOS界面视图布局框架。 MyLayout 的内核是基于 frame 的设置,对 UIView 的 layoutSubviews 方法的重载以及对子视图的 bounds 和 center 属性的设置而实现的。 MyLayout 功能强大而且简单易用,它集成了:iOS Autolayout 和 SizeClass 、android的5大布局体系、HTML/CSS的浮动定位技术以及flex-box和bootstrap框架等市面上主流的平台的界面布局功能,同时提供了一套非常简单和完备的多屏幕尺寸适配的解决方案

1、支持垂直布局(从上到下)和水平布局(从左到右)

2、可以通过调整间距和边距来调整子视图位置

3、可以通过 equalizeSubviews 方法均分视图(不)居中

4、可以通过 equalizeSubviewsSpace 方法均分间距(不)居中

5、可以通过 setSubviewsSize 方法实现固定宽度浮动间距效果

6、可以通过 gravity 控制布局视图里面的子视图停靠方向和子视图填充方式

1、框架布局中的子视图可以层叠显示

2、框架布局里面的所有子视图的布局位置都只跟框架布局相关

1、子视图整体水平居中,通过为centerXPos等于一个数组值,子视图的间距通过offset来定义,如下

2、子视图整体垂直居中,通过为centerYPos等于一个数组值,子视图的间距通过offset来定义,如下

3、子视图宽度均分,通过widthSize等于一个数组值,如果子视图间有间距,需要add(-sapce),如下

a、v1、v2、v3均分父视图

b、按比例均分的话, v7,v8,v9按照2:3:5的比例均分父视图。

c、v4固定宽度,v5、v6均分

4、子视图滚动和停靠,可以通过 noLayout 属性配合 frame 来实现

a、当 noLayout=YES ,布局约束失效,设置frame实现停靠

b、当 noLayout=NO ,布局约束生效,frame属性失效,实现滚动

5、边界约束,可通过 uBound 最大值约束和 lBound 最小值约束,来约束子视图不能大于或者小于父容器、不能大于或者小于兄弟视图的上、左、下、右中的某一边

6、最值约束

a、 myMaxSize ,获取指定数组中最大尺寸值,如下

b、 myMinSize ,获取指定数组中最小尺寸值

c、 myMaxPos ,获取指定数组中最大边距

d、 myMinPos ,获取指定数组中最小边距

1、需要先添加行,才能添加列

2、 MyLayoutSizeaverage 设置均分效果

a、高度固定,宽度均分

b、高度均分,宽度均分

3、 MyLayoutSizewrap 设置高宽自适应

a、高度有子视图决定,宽度均分

b、高度固定,子视图自己决定宽度

4、指定列宽度固定,其他列均分宽度,通过 MyLayoutSizefill 和 weight 配合使用

1、流式布局中的子视图总是按一定的规则一次排列,当数量到达一定程度或者内容到达一定程度时就会自动换行从新排列

2、 MyLayoutDragger 实现标签拖拽功能

3、 arrangedCount 为0时,就是根据内容布局

4、分页滚动

5、通过 lineGravity 属性可以设置某行的对齐方式

1、浮动布局是一种里面的子视图按照约定的方向浮动停靠,当浮动布局的剩余空间不足容纳要加入的子视图的尺寸时会自动寻找最佳的位置进行浮动停靠的布局视图。因此浮动布局可以专门用来实现那些不规则布局或者图文环绕的布局。

2、 reverseFloat 反向浮动

3、 clearFloat 清除浮动,另起一行重新排列

4、 setSubviewsSize 设置固定宽度浮动间距

5、 alignment 设置其在浮动布局行(列)内的对齐方式

1、布局三要素:坐标、函数、距离

1、栅格布局是一种将一个矩形的视图区域按行或者按列的方式划分为多个子区域,子区域根据布局的要求可以继续递归划分。栅格布局里面的子视图将按照添加的顺序依次填充到对应的叶子区域中去的布局方式。

栅格布局通过一套自定义的布局体系来划分位置和尺寸,添加到栅格布局里面的子视图将不再需要指定位置和尺寸而是由栅格布局中的子栅格来完成,因此可以很很方便的调整布局结构,从而实现动态布局的能力

2、栅格布局主要用于布局和数据分离的场景,可以通过json数据来完成布局

因为Vue的中使用的getter和setter并不会在深层的值上设置,也就是数组的具体每个数值并没有绑定getter和setter,所以在数组内部值改变的时候没有触发视图的更新。

在vue文件中可以使用$set设置数组的值,来绑定setter,就会触发视图的更新了。

list: 需要更新的数组

index: 需要更新的数组内部值的索引

listValue: 更新后的值

通过wxrequest获取到服务器数据之后将数据(一个json对象)绑定至post数组,然后页面中获取数据的时候可以直接通过(数组名属性)直接取值。数组中有多个json对象的话,则需要wx:for遍历取值。

单个json对象数据绑定

页面取值:

回顾:

NumPy 是一个用于科学计算的基础 Python 库( 安装说明 )。它可以让你在 Python 中使用向量和数学矩阵,以及许多用 C 语言实现的底层函数。

在 Notebook 中导入 NumPy:

数组是将数据组织成若干个维度的数据块。

NumPy 的核心是数组(arrays)。

用 array 创建数组

在 NumPy 数组中,数据类型需要一致,否则,会尝试「向上兼容」,比如生成一个包含浮点数的数组,输出时每个元素都变成了浮点型:

NumPy 还可以用循环生成数组:

用 full 生成一个 3 行 5 列的数组:

用 arange 等距填充数组:

(arange 是 Python 内置函数 range 的数组版,返回的是一个 ndarray 而不是 list)

用 linspace 线性填充数组:

用 random 生成随机数组:

btw 数组索引从 0 开始

NumPy 中的切片语法: x[start:stop:step] ,如果没有赋值,默认值 start=0, stop=size of dimension, step=1。

(上图最后一个图形,arr[1, :2] 应该是 (1,2) 一行二列矩阵??)

复制数组切片

reshape:

转置(transpose)是重塑(reshape)的一种特殊形式,返回源数据的视图而不进行复制。

用 concatenate 连接数组:

用 vstack 合并到数据行, hstack 合并到数据列

拆分数组的函数包括: npsplit , nphsplit, npvsplit

传递给数组一个与它有关的条件式,然后它就会返回给定条件下为真的值。

在生成图形时也非常好用:

在程序中用条件式选择了图中不同的点。蓝色的点(也包含图中的绿点,只是绿点覆盖了蓝点),显示的是值大于零的点。绿点显示的是值大于 0 小于 Pi / 2 的点。

当不同 shape 的数组进行运算(按位加/按位减的运算,而不是矩阵乘法的运算)时,(某个维度上)小的数组就会沿着(同一维度上)大的数组自动填充。广播虽然是一个不错的偷懒办法,但是效率不高、降低运算速度通常也为人诟病。

广播的原理(via Broadcast Visualization ):

以上就是关于自动布局-MyLayout全部的内容,包括:自动布局-MyLayout、在JS中数组内部值的变化不触发视图更新的浅谈、微信小程序 更新了数组数据,怎么更新视图等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9725312.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存