首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

默认值:MyFlexWrap_NoWrap */ -(id (^)(MyFlexWrap))flex_wrap; /** 同时设置检索伸缩盒对象的子元素在父容器中的位置和伸缩盒对象的子元素超出父容器时是否换行...> (^)(CGFloat))min_width; /** 最大宽度限制设置 */ -(id (^)(CGFloat))max_width; /** 视图的高度设置,如果高度设置为大于...*/ -(id (^)(CGFloat))height; /** 视图的高度设置,percent表明占用父视图高度的百分比值,inc表明在百分比值的基础上的增量值。...同时在设置位置最值约束的时候,要求数组内的元素的位置约束计算必须要在当前视图的位置约束计算之前完成,否则得到的结果将未可知。...但是在使用最值约束时,要求数组内的元素的尺寸约束计算必须要在当前视图的尺寸约束计算之前完成,否则得到的结果将未可知。

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

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

    如果是通过frame方式在一些不规则界面的场景中就需要进行大量计算来实现布局,而AutoLayout则可以通过设置视图之间的依赖约束来实现布局,这两者的布局方式都和子视图加入到父视图的顺序无关,越是不规则的界面...那么根据浮动的规则视图将无法浮动到E的右边,同时也无法浮动到D的右边了,这时候只能继续往下移动,而最终的左边是浮动到容器视图的最左边,而上边的位置则是视图D的下方。最终的布局结果如下: ?...当某个子视图在加入到布局视图时,可以设定为向左还是向右浮动(float属性的值设置为left或者right),这里的向左和向右是不能同时支持的,视图要么向左要么向右。...同时上下浮动布局也是支持子视图的比重设置的,只不过这里的比重是指子视图的高度。...但是在实际中我们可能有一些场景是子视图并不想受到布局视图高度边界的约束,一直往上浮动,而直到某个子视图设置了clearFloat才换列显示,同时布局视图的高度也是包裹的(wrapContentHeight

    2.2K20

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

    且每种布局的子视图的约束机制不一样:线性布局MyLinearLayout、表格布局MyTableLayout、流式布局MyFlowLayout、浮动布局MyFloatLayout这四种布局的子视图之间的约束是通过添加到父布局的先后顺序来决定的...那么根据浮动的规则视图将无法浮动到E的右边,同时也无法浮动到D的右边了,这时候只能继续往下移动,而最终的左边是浮动到容器视图的最左边,而上边的位置则是视图D的下方。最终的布局结果如下: ?...当某个子视图在加入到布局视图时,可以设定为向左还是向右浮动,这里的向左和向右是不能同时支持的,视图要么向左要么向右。对于视图向右浮动来说,他的机制是和向左浮动是一样的。我们可以看如下的视图: ?...通过上面的例子我们可以看出当一个布局视图中同时存在着向左浮动和向右浮动的子视图时,我们就有浮动布局的将新增规范8的定义如下: 8.当浮动布局中同时存在着向左和向右浮动的子视图时,向左浮动的视图剩余宽度的右边界是在不覆盖掉右边视图的情况下的最小向右浮动的视图的左边界...同时上下浮动布局也是支持子视图的比重设置的,只不过这里的比重是指子视图的高度。

    1.1K30

    【Android从零单排系列三十四】《Android布局介绍——ConstraintLayout》

    你可以通过拖拽和调整视图的边界、连接线和约束条件来轻松创建和修改布局。 ConstraintLayout的工作原理是通过设置视图之间的宽度、高度和相对位置的约束条件来实现。.../> 设置约束条件:使用约束条件来定义视图之间的位置关系。可以将视图与其他视图或父容器的边界进行连接,并指定视图之间的水平和垂直关系等。...可以使用match_parent(填充父容器)或具体数值。 layout_height:设置视图的高度。可以使用match_parent(填充父容器)或具体数值。...同时,它的底部边缘与父容器的底部边缘对齐。 通过这样的约束条件,我们可以实现一种垂直排列的布局,其中TextView 1位于顶部,TextView 2位于其下方,Button位于最底部。...你可以根据需要修改和扩展这个简单的案例,以满足实际的界面需求。 五 总结 ConstraintLayout的工作原理是通过设置视图之间的宽度、高度和相对位置的约束条件来实现。

    44520

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

    视图的尺寸和位置 视图的尺寸 视图的尺寸就是指视图矩形块的大小,为了表征视图的大小我们称在屏幕水平方向的尺寸大小为宽度,而称在屏幕垂直方向的尺寸大小为高度,因此一个视图的尺寸我们就可以用宽度和高度两个维度的值来描述了...在视图层次体系结构中的顶层视图的尺寸和屏幕的尺寸是一致的,为了描述这个特殊的顶层视图我们将这个顶层根视图称之为窗口,窗口的尺寸和屏幕的尺寸一样大,同时窗口是一切视图的容器视图。...根据排列的方向和限制的规则,流式布局分为垂直数量约束布局、垂直内容约束布局、水平数量约束布局、水平内容约束布局四种布局。流式布局实现了HTML/CSS3中的flex-box的子集的功能。...因此我们可以通过对min和max方法的使用来解决上述的问题: //A的宽度等于B的宽度,最小为20,最大为父视图宽度的一半。...方法中我们可以设置一个具体的数值以及偏移量,因此我们可以通过对min和max 方法的使用来解决上述的问题: //A的左边距等于父视图的宽度的20%,最小为20,最大为30 A.tg_left.equal

    2.2K30

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

    AutoLayout的思想是通过视图之间的约束依赖来完成布局,但是约束依赖的结果是造成视图之间的耦合性高而增大了界面更新的成本。...视图A的左边距占用父视图宽度的20%,而右边距则占用父视图宽度的30%,高度则等于自身的宽度。 视图B的左边距是40,宽度则占用父视图的剩余宽度,高度是40。...视图C的宽度占用父视图的所有宽度,高度是40。 视图D的右边距是20,宽度是父视图宽度的50%,高度是40。 最终的效果图如下: !...框架布局是一种里面的子视图停靠在父视图特定方位并且可以重叠的布局视图。框架布局里面的子视图的布局位置和添加的顺序无关,只跟父视图建立布局约束依赖关系。...您可以将Size Classes和上述的6种布局搭配使用,以便实现各种设备界面的完美适配。

    1.9K30

    MyLayout&TangramKit 的重大升级!

    可以看出来要实现父容器视图S的尺寸自适应时不是通过设置宽度和高度的尺寸依赖来实现的而是通过设置让父视图的边界依赖于某个子视图的边界来实现的。具体代码展示如下: //这里忽略了视图的创建代码。...,而不需要做任何调整,这是使用MyLayout&TangramKit的最大的一个优势!...因此如果想使用布局视图的尺寸自适应功能,那么在将布局视图的尺寸设置为wrap后,就可以像使用UILabel那样不用去设置布局视图的宽度约束和高度约束了。比如有两个兄弟视图A,B。...,这里不需要设置高度约束,因为使用了布局视图的高度自适应属性。...,然后将布局视图添加到其他视图中去,不需要再为布局视图设置宽度和高度约束了,也不再限制只能将布局视图添加到contentView中了,也不再需要重载特定的方法了,就相当于将一个布局视图当做UILabel

    2.1K20

    带你领略 ConstraintLayout 1.1 的新功能前言带你领略 ConstraintLayout 1.1 的新功能

    1.1 版本中的新特性 百分比 在约束布局 1.0 版本中,需要使用两条引导线才能让视图根据百分比来占据屏幕。...而在约束布局 1.1 版本中,通过允许您轻松地将任何视图限制为百分比宽度或高度,一切将变得很简单。 ? 使用百分比指定按钮的宽度,以便在保持设计效果的同时适应可用空间。...在布置国际化字符串或显示用户生成的无法预测大小的内容时,屏障非常有用。 ? image 屏障允许您通过几个视图来创建一个约束。 屏障将始终将自己置于虚拟群组之外,并且您可以使用它来限制其他视图。...在上面这个例子中,右视图被限制为始终处于最大文本视图的末尾。 群组 有时您需要一次显示或隐藏多个元素。为了支持这个,约束布局增加了群组功能。...您可以将 ConstraintLayout 随同 ConstraintSet (约束集)一起使用来一次实现多个元素的动画效果。

    1.7K20

    带你领略 ConstraintLayout 1.1 的新功能

    1.1 版本中的新特性 百分比 在约束布局 1.0 版本中,需要使用两条引导线才能让视图根据百分比来占据屏幕。...而在约束布局 1.1 版本中,通过允许您轻松地将任何视图限制为百分比宽度或高度,一切将变得很简单。 ? 使用百分比指定按钮的宽度,以便在保持设计效果的同时适应可用空间。...在布置国际化字符串或显示用户生成的无法预测大小的内容时,屏障非常有用。 ? 屏障允许您通过几个视图来创建一个约束。 屏障将始终将自己置于虚拟群组之外,并且您可以使用它来限制其他视图。...在上面这个例子中,右视图被限制为始终处于最大文本视图的末尾。 群组 有时您需要一次显示或隐藏多个元素。为了支持这个,约束布局增加了群组功能。...您可以将 ConstraintLayout 随同 ConstraintSet (约束集)一起使用来一次实现多个元素的动画效果。

    1.5K20

    Masonry -- 使用纯代码进行iOS应用的autolayout自适应布局

    #import "Masonry.h" 使用 初始Masonry 这是使用MASConstraintMaker创建的约束: /* 注意:view1应首先添加为某个视图的子视图,superview是一个局部变量...,指view1的父视图. */ UIEdgeInsets padding = UIEdgeInsetsMake(10, 10, 10, 10); [view1 mas_makeConstraints...NSNumber 自适应布局允许将宽度或高度设置为固定值.....attribute2 + constant,此为约束的计算公式, .multipliedBy本质上是用来限定 multiplier的 注意,因为编程中的坐标系从父视图左上顶点开始,所以指定基于父视图的...如果你需要一个视图随着父视图的宽度和高度,位置自动变化,你应该同时指定 right,bottom,width,height与父视图对应属性的比例(基于某个尺寸下的相对位置计算出的比例),并且constant

    2.1K50

    iOS的MyLayout布局系列-流式布局MyFlowLayout

    ,这样最终形成的结果是子视图将按从左到右,从上到下的顺序依次排列,且每行的数量不固定。...这种流式布局的布局机制是,里面的子视图按添加的顺序每行依次从左排列到右,当一行内的子视图的数量到达布局视图约定的数量值时则会新起一行,重新从左到右继续排列,这样最终形成的结果是子视图将按从左到右,从上到下的顺序依次排列...,这样最终形成的结果是子视图将按从上到下,从左到右的顺序依次排列,且每列的数量不固定。...这种流式布局的布局机制是,里面的子视图按添加的顺序每列依次从上排列到下,当一列内的子视图的数量到达布局视图约定的数量值时则会新起一列,重新从上到下继续排列,这样最终形成的结果是子视图将按从上到下,从左到右的顺序依次排列...另外在一些布局场景中我们还可以做如下的设置: 1.在垂直内容填充约束布局中,我们可以设置某个子视图的宽度和布局视图的宽度建立约束关系,以及让某个子视图的高度同子视图的宽度建立约束关系,也就是说可以设置子视图

    2.6K30

    每个高级前端工程师都应该知道的前端布局

    使用弹性布局 使用百分比 避免写死宽度和高度 添加滚动条 使用 rem 3.移动终端的常用宽度和高度 垂直屏幕的常见宽高比:1:2, 2:3, 3:4, 3:5, 5:8, 9:16 横向屏幕的常见宽高比...等属性,它们都依赖于父组件的宽度和高度(margin 和 padding 都可以使用百分比值的形式,但这与通常的想法有点不同,不同之处在于 margin-top, margin-bottom, padding-top..., and padding-bottom 的百分比值不是指容器的高度,而是指父容器的宽度)。...如果为子元素的顶部和底部设置了百分比,它将相对于父元素的高度,并直接进行非静态定位(默认定位)。同样,如果为子元素的左侧和右侧设置了百分比,它将与父元素宽度的直接非静态定位(默认定位)相对应。...如果子元素的 padding 和 margin 设置为百分比,无论是垂直还是水平,它们都是相对于直接父元素的宽度而言的,与父元素的高度无关。

    23220

    浅汇-iOS UI布局

    使用了这么久,       对于父试图是  Button / UITextFeild等非UIView的直接子类,布局其子视图时,这里面的约束是不生效的。...我们可以在XIB、StoryBoard中通过拉线的形式给控件视图添加布局约束,通过苹果强大的可视化界 IB(Interface Builder)我们能够轻松的使用AutoLayout完成界面视图的布局。...autoHeightRatio;   当父试图的高度没有定义的时候,需要使用一下方法来自动布局,并且这个时候不可以再以父试图的底为标准来设置其内部子视图,这是一种【从里到外】的布局思路,cell...[self setupAutoHeightWithBottomView:_timeLabel bottomMargin:margin + 5];//第一个参数是指 底部试图,第二个参数是指底部的留出来的空白区域的高度...而且要先加载到父试图上才能使用 layout 语句,否则约束不回起作用(针对 SDAutoLayout)。

    2.1K20

    再学一次ConstraintLayout 一些新特性

    :maxWidth 设置布局的最大宽度 android:maxHeight 设置布局的最大高度 八、Widgets dimension constraints 宽高约束 平时我们使用android:layout_width...在这种情况下,系统设置满足所有约束的最大尺寸并保持指定的纵横比。要根据另一个特定边的尺寸限制一个特定边,可以预先附加W,“或” H,分别约束宽度或高度。...例如,如果一个尺寸受两个目标约束(例如,宽度为0dp且以父节点为中心),则可以指示应该约束哪一边,通过 在比率前添加字母W(用于约束宽度)或H(用于约束高度),用逗号分隔: 的比例设置按钮的高度,而按钮的宽度将匹配父项的约束。...这也是一个虚拟视图. 可以把View放到里面,然后Group可以同时控制这些view的隐藏.

    1.7K40

    布局常用解决方案对比(媒体查询、百分比、rem和vwvh)

    答案是否定的,下面图1.1和图1.2分别表示pc端下和移动端下的显示结果,在网页中我们设置的font-size统一为16px。...百分比的具体分析 (1)子元素height和width的百分比 子元素的height或width中使用百分比,是相对于子元素的直接父元素,width相对于父元素的width,height相对于父元素的height...: image.png 子元素的初始宽高为0,通过padding可以将父元素撑大,上图的蓝色部分是一个正方形,且边长为100px,说明padding不论宽高,如果设置成百分比都相对于父元素的width...(2)从小节1可以看出,各个属性中如果使用百分比,相对父元素的属性并不是唯一的。...css3中引入了一个新的单位vw/vh,与视图窗口有关,vw表示相对于视图窗口的宽度,vh表示相对于视图窗口高度,除了vw和vh外,还有vmin和vmax两个相关的单位。

    2.1K40

    深入详解iOS适配技术

    1.2.2.代码中使用Autoresizing 我们不仅可以在storyboard中使用Autoresizing来约束父子视图,也可以使用代码来设置父子视图之间的位置关系。...所以,storyboard和代码是相同的,无论什么视图,凡是可以通过storyboard进行设置的属性,都有与之对应的属性代码,我们也可以使用代码的方式实现。...用苹果官方的话,Auto Layout是一个基于约束的,描述性的布局系统。所谓基于约束就是代表我们可以为需要布局的子控件添加一些约束对象来限制他在屏幕上显示的位置。...父控件随子控件变化而变化 如果希望父控件随子控件(UILabel/UIView)高度的变化而变化,就不要给父控件添加高度约束,只需要子控和向父控件在垂直方向上添加约束,这样子控件高度改变,父控件高度也会随之改变...很多人认为sizeclass对屏幕宽度和高度的区分分为三种,compact(紧凑)、regular(正常)、any(任意)。这三种类型进行组合可以有9种结果。

    8.5K70

    iOS-屏幕适配实现(Autoresizing)

    ,Autoresizing就是一个相对于父控件的布局解决方法 在Xcode5之后,新建的项目默认使用AutoLayout。...的核心用法就是6条线,上下左右以及空间内的两条红色交叉线如下图 上下左右四条红色的线分别表示此视图距离父视图的上下左右边的约束各式多少 中间两条上下交叉的线表示,此视图的高度与宽度是否随着父视图的变化而按比例变化...Autoresizing 举个例子: 当我们将左边和上面虚线变成实线时,代表子控件和父控件在这个方向上的间距被固定 当我们点击子视图内部的虚线时,同样也变为实线,代表子视图的宽度或者高度被固定了...同理, 如果垂直方向同时固定了上边距和下边距,那么我们不能固定子控件的高度(反应在storyBoard中的设置,也就是必须使控制子控件高度的虚线变为实线) Autoresizing缺点 Autoresizing...可以满足大部分简单的自动布局需求,可是它有一个致命的缺陷,它只能设置子视图相对于父视图的变化,却不能精确这个变化的度是多少,因此对于复杂的精准的布局需求,它就力不从心了

    27510

    iOS开发中行高灵活可变的UITableView的性能优化

    我个人更倾向将行高数据封装进cell的数据模型Model中。         通过优化,可以有效的减少重复的高度计算,这也是我原先处理此类问题的主要方式。...那么现在问题来了,如何才能让cell正确计算自己的高度,这就要使用到Autolayout了,无论是通过xib文件创建的cell还是代码创建的cell,若想让cell自动正确的计算出自身的高度,必须添加足够压力的约束...所谓足够压力,是指UITableViewCell的contentView的上、下、左、右必须被内部控件的约束所撑满,需要注意,cell上的视图必须添加在contentView上,否则计算会出现问题。        ...例如下图所示,左侧的图标进行了与父视图的左侧距离约束,标题Label进行了与父视图的上侧距离约束和右侧距离约束,内容Label进行了与标题Label的上侧约束和与父视图的下册约束,并且对宽度进行了约束。...是一个CGFloat类型的常量,其需要和用来处理返回头尾视图标题的方法结合使用,用它来作为TableView分区头尾视图的高度返回,系统会自动根据标题是否存在来进行自适应,举个例子,如果返回的标题为nil

    2K20
    领券