首页
学习
活动
专区
圈层
工具
发布

MyLayout&TangramKit 的重大升级!

比如一些界面中有父视图的尺寸由子视图的尺寸来确定的;还比如UIScrollView中为了能实现滚动需要根据添加到里面的子视图来调整contentSize的尺寸;又比如某些UITableViewCell中的高度是动态的...容器视图实现尺寸自适应 对于一个容器父视图来说,当要实现父视图的尺寸依赖所有子视图的尺寸来实现自适应时,要设置的约束依赖不是通过尺寸约束来实现而是通过位置约束来实现。...在上面的第1节中有介绍如何将一个容器视图的尺寸设置为自适应,而一般情况下在编写UITableViewCell的布局代码时,都将所有的子视图添加到contentView这个视图中,因此要实现UITableViewCell...就以上面的图片例子用MyLayout&TangramKit来实现来说,可以将S视图定义为一个垂直线性布局视图,而将A,B,C三个子视图添加到布局视图中即可。...然后在UITableViewCell的派生类中建立一个根布局视图,这个根布局视图作为子视图添加到contentView中代码如下: //假设根布局视图是一个垂直线性布局视图。

2.7K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【移动端网页布局】流式布局案例 ③ ( 实现搜索栏功能 | 伪元素选择器 | 子绝父相 | 外边距塌陷处理 | 二倍精灵图处理方案 )

    , 如果 拉长浏览器的宽度 , 搜索栏也会跟着拉长 ; 实现自动伸缩的效果 : HTML 标签结构如下 : 最外层的父容器 父容器内部两个半圆形的子容器 ; 中间部分可自动伸缩的子容器盒子 半圆子容器...: 两侧的 半圆形 圆角矩形框 是通过 定位 设置的 ; 中间矩形子容器 : 中间的 白色矩形框 是通过 标准流 盒子实现的 , 该盒子不设置宽度 , 自动充满父容器 ; 为了不让该白色矩形影响到两侧的半圆...设置 overflow:hidden 属性 ; css 样式实例 : .search { /* 中间部位搜索栏盒子内容 */ /* 子绝父相 该容器的子容器需要绝对定位 因此父容器设置为相对定位..., 子元素绝对定位 , 父元素必须使用相对定位 ; css 样式实例 : .jd-icon::after { /* 插入竖线 */ content: ""; /* 竖线盒子模型...该容器的子容器需要绝对定位 因此父容器设置为相对定位 */ position: relative; /* 搜索框高度 30 像素 */ height: 30px; /*

    2.6K30

    iOS下的界面布局利器-MyLayout布局框架

    线性布局是一种里面的子视图按添加的顺序从上到下或者从左到右依次排列的单列(单行)布局视图,因此里面的子视图是通过添加的顺序建立约束和依赖关系的。...子视图从上到下依次排列的线性布局视图称为垂直线性布局视图,而子视图从左到右依次排列的线性布局视图则称为水平线性布局。...框架布局是一种里面的子视图停靠在父视图特定方位并且可以重叠的布局视图。框架布局里面的子视图的布局位置和添加的顺序无关,只跟父视图建立布局约束依赖关系。...表格布局是一种里面的子视图可以像表格一样多行多列排列的布局视图。子视图添加到表格布局视图前必须先要建立并添加行视图,然后再将子视图添加到行视图里面。...流式布局主要应用于那些子视图有规律排列的场景,在某种程度上可以作为UICollectionView的替代品。

    2.2K30

    iOS开源界面布局库终于破3000star

    于是就开始着手写了我的布局库的第一个版本,现在我都还保留着这个类的实现和声明: //用于线性布局的子视图的属性,描述离兄弟视图的间隔距离,以及在父视图中的比重。...因此线性布局比较适合通过代码的方式来 构造视图。同时适合于将线性布局作为scrollview的子视图来布局。因为线性布局在位置调整后会 如果是使用自动布局则这个类将无效。...UIScrollView或者子类则在线性布局的位置调整后是否调整滚动视图的contentsize,默认是NO //这个属性适合与整个线性布局作为滚动视图的唯一子视图来使用。...需要设置的约束少,不需要像AutoLayout那样无论是位置和尺寸都需要明确的通过设置约束来指定。有些时候可能只需要一两个属性就可以把所有子视图的位置和尺寸都设置完成。...可选的布局种类多,有些布局是参照android和iOS的,而有些布局是参照HTML5中的flex-box, css-float等机制,甚至还可以支持从服务器动态下发的能力。

    2.1K40

    开源UI界面布局框架MyLayout1.9发布

    MyLayout还支持从服务器进行动态布局下发的能力。 系统结合紧密。...有些布局类则提供了通过子视图之间的约束限制来实现布局排列,比如浮动布局、相对布局、框架布局。有些布局类则需要通过多个层次嵌套来实现界面需求,比如线性布局、流式布局、表格布局、弹性布局。...MyLayoutPos中的clone方法就是专门为最值约束使用的,主要为了解决那些获取最值时希望在某个位置的偏移的场景。 目前只有相对布局下的子视图才支持位置最值约束设置,其他布局下的子视图不支持。...拉伸间距时第一个以及最后一个子视图离父布局视图的间距将是0,而子视图之间的间距将会平分剩余的空间。...对添加到布局视图中的子视图分别添加如下事件: [可以被拖放的子视图 addTarget:self action:@selector(handleTouchDrag:withEvent:) forControlEvents

    2.1K10

    【Flutter】Flutter 照片墙 ( Center 组件 | Wrap 组件 | ClipRRect 组件 | Stack 组件 | Positioned 组件 | 按钮组合组件 )

    : Column : 相当于线性布局 , 垂直方向布局 , 组件从上到下摆放 ; Row : 相当于线性布局 , 水平方向布局 , 组件从左到右 ; Wrap : 该组件与 Row 组件类似..., Wrap 组件可以换行 ; Flow : 不常用 ; ParentDataWidget : Positioned : 用于固定组件位置的组件 ; Flexible : 用于约束组件在父容器中展开大小的组件..., 默认为空 , 则该 Center 组件自动填充父容器 , 内部有一个 Widget 子组件 , 注意是单个子组件 ; Center( child: Wrap() ) 三、Wrap 组件 ---...- Column 组件是垂直方向的线性布局 , Row 组件是水平方向的线性布局 , Wrap 组件是在 Row 组件的基础上的水平线性布局 , 多了一个换行功能 , Wrap 组件可以有多行水平线性布局...; 这是照片墙实现的主要组件 , Wrap 组件中由一组 Image 组件 List 集合作为子组件 ; 代码示例 : // 可自动换行的水平线性布局 Wrap( // 设置水平边距 spacing

    8.8K20

    iOS界面布局的核心以及TangramKit介绍

    比如某个滚动视图内的所有子视图在滚动时都需要重新去计算自己的位置。 第二种以父视图坐标系作为参照来确定的位置称为相对位置,每个子视图的位置都是距离父视图左上角原点的一个偏移值。...我们称这种以父视图坐标系为原点进行定位的位置称为边距,也就是离父视图边缘的距离。 第三种以兄弟视图坐标系作为参照来确定的位置称为偏移位置,子视图的位置是在关联的兄弟视图的位置的基础之上的一个偏移值。...相对布局TGRelativeLayout: 相对布局里面的子视图和添加的顺序无关,而是按照子视图之间设定的尺寸约束依赖和位置约束依赖进行布局排列。...最终这个布局中的子视图将形成多行多列的排列展示。流式布局和线性布局的区别是,线性布局只是单行或者单列的,而流式布局则是多行多列。...定位的值如果是以兄弟视图作为参考系坐标那么视图的位置就叫做间距,间距描述的是视图距离兄弟视图的距离(垂直线性布局中虽然第一个子视图的顶部是距离父视图但是我们仍然称为间距)。

    2.5K30

    Flutter | 布局流程

    浅谈布局过程 Layout(布局)过程中是确定每一个组件的信息(大小和位置),Flutter 中的布局过程如下: 1,父节点向子节点传递约束信息,限制子节点的最大和最小宽高。...2,子节点根据自己的约束信息来确定自己的大小(Szie)。 3,父节点根据特定的规则(不同的组件会有不同的布局算法)确定每一个子节点在父节点空间中的位置,用偏移 offset表示。...子节点在父节点(CustomCenter) 的约束下,确定自己的宽高。此时 CustomCenter 会根据子节点的宽高来确定自己的宽高。...,SizeBox 中的子组件会先满足父组件的约束。...子节点如果需要确定自身的大小,则必须遵守父节点传递的限制。子节点的响应方式是在父节点建立的约束内将大小以自上而下的方式传递给父节点。 是不是理解的更透彻了一些 参考资料 Flutter 中文网

    1.3K20

    【Android】组件及布局介绍

    添加到根布局中去 //可以理解成把当前控件和当前页面做关联 } } "ViewGroup.LayoutParams"这是静态内部类 MainActivity对应一个页面()这里我们创建一个...(3)属性定布局 ConstraintLayout(约束布局)就是当前布局的一种情况 它借助为视图(View)设置约束条件(像与其他视图的**相对位置**、距离等)来实现布局。...类比——设置LinearLayout(线性布局)属性,定义布局 它会按照水平或者垂直的单一方向来排列子视图。 通常我们不会直接使用group,而是通过它的子类来使用。...==但我们一般不会直接使用ViewGroup管理布局,而是使用它的子类,比如常见的LinearLayout(线性布局)、ConstraintLayout(约束布局)、RelativeLayout(相对布局...); 在一个Activity页面中的布局,一般都是如下图的结构,一个页面的根布局ViewGroup下面(如 ConstraintLayout 作为根 ),还有其他的View,或者其他的下级ViewGroup

    11300

    Flutter原理:三棵重要的树(渲染过程、布局约束、应用视图的构建等)

    这里,Flutter 中的布局过程可用下图表示,在上述构建完成渲染树后,父渲染对象会将布局约束信息向下传递,子渲染对象根据自己的渲染情况返回 Size,Size 数据会向上传递,最终父渲染对象完成布局过程...其具体可分为两个线性过程:从顶部向下传递约束,从底部向上传递布局信息,其过程可用下图表示。 ? 第一个线性过程用于传递布局约束。...常见的约束包括规定子节点最大最小宽度或者子节点最大最小的高度。这种约束会向下延伸,子组件也会产生约束传递给自己的孩子,一直到叶子结点。 第二的线性过程用来传递具体的布局信息。...子节点接受到来自父节点的约束后,会依据它产生自己具体的布局信息,如父节点规定我的最小宽度是 500 的单位像素,子节点按照这个规则可能定义自己的宽度为 500 个像素,或者大于 500 像素的任何一个值...当子节点接受到该约束,便可以取得上图中绿色范围内的值,即宽度在 150 到 300 之间,高度大于 100,当取得具体的值之后再将取得具体的大小的值上传给父节点,从而达到父子的布局通信。

    2.2K40

    iOS的MyLayout布局体系--浮动布局MyFloatLayout

    且每种布局的子视图的约束机制不一样:线性布局MyLinearLayout、表格布局MyTableLayout、流式布局MyFlowLayout、浮动布局MyFloatLayout这四种布局的子视图之间的约束是通过添加到父布局的先后顺序来决定的...;框架布局MyFrameLayout中的子视图则只跟父布局视图有关,而跟添加的先后顺序无关;相对布局中MyRelativeLayout的子视图则是通过设置视图之间的依赖关系来建立约束的,而跟添加的先后顺序无关...浮动布局9       上面的例子中我们把子视图添加到布局视图的顺序分别是A,B,C,D,E,F这个顺序,且设定C,D,E这三个子视图是向左浮动的,而A,B,F这三个子视图是向右浮动的。...而且后续还可以通过orientation属性来进行动态的修改浮动的方向。...在默认情况下当我们建立的是一个左右浮动布局时,我们添加到布局里面的所有子视图默认都是向左浮动的,而当建立的是一个上下浮动布局时,我们添加到布局里面的所有子视图默认都是向上浮动的,因此当需要改动子视图浮动的方向则可以设置属性

    1.3K30

    浅汇-iOS UI布局

    使用了这么久,       对于父试图是  Button / UITextFeild等非UIView的直接子类,布局其子视图时,这里面的约束是不生效的。...而且同层级的试图  无法达到重合布局,两个试图重合的话只有是  父/子视图的关系。...2、实现了UIView内子视图的自动布局; 3、实现了UIScrollView内容高度根据内部子视图的内容高度动态设置; 4、实现了一个UITableView有多个不同Cell的时候,所有cell高度自适应...,需要使用一下方法来自动布局,并且这个时候不可以再以父试图的底为标准来设置其内部子视图,这是一种【从里到外】的布局思路,cell的自适应高度也是这种思路;平时我们的思路都是一种【从外到里】的思路,先确定外面的再使其自动布局里面的...实现了UIScrollView可滚动高度根据内部子视图的内容高度动态设置 /** 设置scrollview内容自适应,第一个参数为作为底部的子视图,第二个参数为到sc底部的间距。

    2.4K20

    鸿蒙next版开发:ArkTS组件通用属性(布局约束)

    属性用于在Row、Column或Flex布局中设置子元素的布局权重,从而影响其在主轴上的尺寸分配。...Text('Stack item 1') // 栈布局中的子组件 Text('Stack item 2') // 栈布局中的子组件 }.matchParent() // 设置栈布局组件匹配父容器的尺寸...}.matchParent() // 设置列布局组件匹配父容器的尺寸 }}在这个示例中,我们创建了一个包含文本、行布局和栈布局的列布局。...布局约束的用途布局约束在ArkTS中有多种用途,包括:响应式布局:通过使用matchParent和wrapContent属性,可以实现不同设备和窗口尺寸下的响应式布局。...动态界面调整:通过编程方式调整组件布局约束,可以实现动态界面效果,如弹出窗口、下拉菜单等。提升用户体验:通过合理设置组件布局约束,可以提升用户的交互体验。

    40600

    CSS中的float定位技术在iOS上的实现

    如果是通过frame方式在一些不规则界面的场景中就需要进行大量计算来实现布局,而AutoLayout则可以通过设置视图之间的依赖约束来实现布局,这两者的布局方式都和子视图加入到父视图的顺序无关,越是不规则的界面...就以某些不规则的界面来说,表面上看起来杂乱无章实际仍然是有一些规律可循的:视图之间展示的关系是按添加到父视图的先后顺序并且只和自己的尺寸以及父视图的尺寸有关。...浮动布局视图9 上面的例子中我们把子视图添加到布局视图的顺序分别是A,B,C,D,E,F这个顺序,且设定C,D,E这三个子视图是向左浮动的,而A,B,F这三个子视图是向右浮动的。...在默认情况下当我们建立的是一个左右浮动布局时,我们添加到布局里面的所有子视图默认都是向左浮动的,而当建立的是一个上下浮动布局时,我们添加到布局里面的所有子视图默认都是向上浮动的,因此当需要改动子视图浮动的方向则可以设置属性...在当前的布局库版本中,我们只有线性布局、浮动布局、表格布局、流式布局支持智能边界线的设定,而框架布局、相对布局则是不支持的。

    2.7K20

    鸿蒙开发学习(二)之ArkUI

    选用适合的布局容器组件或属性控制页面中各个元素的位置和大小约束。...通过displayPriority属性来控制页面的显示和隐藏 布局选择 布局 应用场景 线性布局(Row、Column) 如果布局内子元素超过1个,且能够以某种方式线性排列时优先考虑此布局。...例如Panel作为子组件弹出时将其他组件覆盖更为合理,则优先考虑在外层使用堆叠布局。 弹性布局(Flex) 弹性布局是与线性布局类似的布局方式。区别在于弹性布局默认能够使子组件压缩或拉伸。...使用position实现绝对定位,设置元素左上角相对于父容器左上角偏移位置。在布局容器中,设置该属性不影响父容器布局,仅在绘制时进行位置调整。...设置该属性,不影响父容器布局,仅在绘制时进行位置调整。 组件 容器组件 对于支持子组件配置的组件,例如容器组件,在"{ ... }"里为组件添加子组件的UI描述。

    4K31

    相对布局(RelativeLayout)嵌套导致Layout卡顿瓶颈分析与方案

    编舞者Choreographer#doFrame 做一次从ViewRootImpl到子View的traversal遍历,需要经历animation,input,measure,layout,draw卡顿优化就针对这...再重新看前面Trace会发现,约束布局同一对象被执行了32次onMeasure,所以首先要做的就是优化相对布局,那么用什么布局代替呢?帧布局或线性布局。...约束布局本身其实也耗时(具体可看源码,这里不在列出)从上述现象可以看到,越容易布局的Layout(相对布局或约束布局),性能越差,越难以布局的Layout(帧布局,线性布局),性能越好。...结论:相对布局和约束布局禁止嵌套使用,需要嵌套布局使用帧布局或线性布局,仅作为容器(壳)的布局尽量使用帧布局在复杂层级深的布局中,顶层根布局容器尽量选择帧布局,叶子节点的布局容器可以不受限制,但尽量不选择约束布局...,例如只有一层父容器这种,不受限制,因为本身耗时不多

    82241
    领券