首页
学习
活动
专区
工具
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

    iOSMyLayout布局体系--浮动布局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工作原理是通过设置视图之间宽度、高度和相对位置约束条件来实现。

    38920

    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

    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

    MyLayout&TangramKit 重大升级!

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

    2.1K20

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

    使用弹性布局 使用百分比 避免写死宽度和高度 添加滚动条 使用 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 设置为百分比,无论是垂直还是水平,它们都是相对于直接元素宽度而言,与元素高度无关。

    22320

    带你领略 ConstraintLayout 1.1 新功能

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

    1.5K20

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

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

    1.7K20

    iOSMyLayout布局系列-流式布局MyFlowLayout

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

    2.5K30

    浅汇-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(用于约束高度),用逗号分隔: <Button android...16:9比例设置按钮高度,而按钮宽度匹配约束。...这也是一个虚拟视图. 可以把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两个相关单位。

    2K40

    深入详解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...可以满足大部分简单自动布局需求,可是它有一个致命缺陷,它只能设置子视图相对于视图变化,却不能精确这个变化度是多少,因此对于复杂精准布局需求,它就力不从心了

    26310

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

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

    2K20
    领券