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

MyLayout&TangramKit 重大升级!

当一个视图有自己固有内容尺寸时,就不需要再为视图设置宽度或者高度约束。这也就是为什么一般情况下不对UILabel视图设置宽度高度约束时系统也能正常完成布局。...系统内部实现如果布局引擎布局时发现某个视图没有设置高度或者宽度约束那么就会去调用这个视图intrinsicContentSize方法,如果这个方法返回了正常尺寸则视图就按这个尺寸来进行渲染和展示...MyLayout&TangramKit尺寸自适应 MyLayout&TangramKit一个重要能力是支持布局视图尺寸自适应自动计算,也就是说布局视图宽度或者高度可以根据子视图尺寸来自行确定...因此如果想使用布局视图尺寸自适应功能,那么布局视图尺寸设置为wrap后,就可以像使用UILabel那样不用去设置布局视图宽度约束和高度约束了。比如有两个兄弟视图A,B。...,然后将布局视图添加到其他视图中去,不需要再为布局视图设置宽度高度约束了,也不再限制只能将布局视图添加到contentView中了,也不再需要重载特定方法了,就相当于将一个布局视图当做UILabel

2K20

UILabel、UIImageView和UIButton

UILabel 说两个UILabel小众属性和方法。...第一个是lineBreakMode属性,该属性设置了当文字内容大于label所能承载内容时候该如何展示,也就是说,当文字超长时候如何截断。...第二个是sizeToFit方法,label调用该方法后,label尺寸会根据内容来自适应,如果是多行则宽度不变,高度变化;如果是单行,则高度不变,宽度自适应变化。...*animationImageView = [[UIImageView alloc] init]; animationImageView.animationImages = array;//设置图像视图动画图片属性...UIButton 但需要实现一个有点击事件视图时候,而这个视图内部布局有需要自定义,这个时候就可以自定义一个UIButton,然后通过addSubview方式给自定义Button添加个性化组件和布局

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

iOS-屏幕适配实现(AutoLayout)

比如,给xib某个子控件A设置宽度高度、距离父控件上下左右之间间距,就相当于给这个控件添加了6个约束,也就产生了6个约束对象 约束错误警告 红色箭头,代表约束错误,一般是缺少约束或约束冲突(例如...如果用autolayout给UILabel设置约束,只需要设置x、y、width,无需设置height,UILabel自动包裹内容,并且随内容多小而变化。...如果我们通过约束给定了UILabelwidth = 100,但是内容仍然少可怜,不能包裹,可以把宽度设置为<=100,此时,label宽高都能包裹住内容。高度设置同理可证。...原因在于,UILabel是根据内容自动调整宽度高度,如果没有内容,那么宽度高度就是0,导致UILabel无法显示。...默认为当前设置方向最近一个VIew,且没有覆盖遮挡视图 注意:上下左右间距和控件宽度高度配合使用,尽量不要冲突; 例如:375屏幕宽度,你不能距离左边200,距离右边200,还要控件宽度100

32710

iOS layout相关方法

drawRect以下情况下会被调用: 1、如果在UIView初始化时没有设置rect大小,将直接导致drawRect不被自动调用。...drawRect调用是Controller->loadView, Controller->viewDidLoad 两方法之后掉用.所以不用担心控制器,这些ViewdrawRect就开始画了.这样可以控制器设置一些值给...然后系统自动调用drawRect:方法。 3、通过设置contentMode属性值为UIViewContentModeRedraw。那么将在每次设置或更改frame时候自动调用drawRect:。...2、若使用calayer绘图,只能在drawInContext: 类似于drawRect)绘制,或者delegate相应方法绘制。...宽度:120.0 高度:24.0 实际宽度:50.0 实际高度:50.0 实际宽度:120.0 实际高度:24.0 有上面的例子可以看出 sizeThatFits 返回“最佳”大小以适应给定大小

1K10

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

iOS13黑白模式适配支持 流式布局自定义行内对齐 流式布局和浮动布局对基线对齐支持 重构和添加了对布局视图进行布局动画支持能力 完善和扩充对布局视图尺寸自适应设置支持 重构了流式布局和相对布局实现...只有flex_wrap设置为wrap时才有效。默认值是0表示会根据条目的尺寸自动进行换行。...设想一个场景:某个视图宽度竖屏下是屏幕宽度一半,而在横屏下则是屏幕高度一半。换句话说就是视图宽度是屏幕宽度高度最小值一半。 ?...比如下面的例子: //A视图宽度是B视图宽度,C视图高度,100这三个值最小一个 A.widthSize.equalTo(@[B.widthSize, C.heightSize, @100]...老版本如果我们想让某个视图宽度自适应时可以通过设置wrapContentWidth 属性为YES即可,而让视图高度自适应时则可以通过设置wrapContentHeight属性为YES即可。

1.7K10

swift下autolayout实现笔记

首先是正常创建元素,为了熟悉实现方式,我在学习过程是完全放弃storyboard。...(false) //设置约束布局系统是否把自动布局转换为约束布局 self.view.addSubview(v1) 然后添加约束 self.view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat...enum里面选取 metrics:nil;一般为nil ,参数类型为NSDictionary,从外部传入 views:就是上面所加入到NSDictionary绑定元素 表达式规则 |: 表示父视图...-: 表示距离 >= :表示视图间距、宽度高度必须大于或等于某个值 <= :表示视图间距、宽度高度必须小宇或等于某个值 == :表示视图间距、宽度或者高度必须等于某个值 比如我们要把上面创建...label设置为距离父视图左右都是10,那么表达式就是 "H:|-10-[v1]-10-|" 我们要让他高40,距离父视图顶部为10 "V:|-10-[v1(==40)]" 如果我们再创建V2,V3两个元素

84580

深入详解iOS适配技术

控制器viewautoresizing 注意:如果我们storyBoard中选中控制器view,然后尺寸检查器查看会发现,autoresizing控制子控件宽度高度虚线自动变成了实线...如果用autolayout给UILabel设置约束,只需要设置x、y、width,无需设置height,UILabel自动包裹内容,并且随内容多小而变化。...如果我们通过约束给定了UILabelwidth = 100,但是内容仍然少可怜,不能包裹,可以把宽度设置为<=100,此时,label宽高都能包裹住内容。高度设置同理可证。...原因在于,UILabel是根据内容自动调整宽度高度,如果没有内容,那么宽度高度就是0,导致UILabel无法显示。...换句话说,sizeClass为W Regular H Any(宽度正常 高度任意)下布局控件,不管高度如何,只要宽度正常就会显示出来。 未完待续...

8.4K70

iOS自动布局框架之Masonry

项目中设置AutoLayout约束,起到对视图布局标记作用。设置好约束之后,程序运行过程创建视图时,会根据设置约束计算frame,并渲染到视图上。...调用此方法,如果有标记为需要重新布局约束,则立即进行重新布局,内部会调用updateConstraints方法 - (void)updateConstraints 重写此方法,内部实现自定义布局过程...iOS UI开发过程,UITableView动态Cell高度一直都是个问题。...实现这样需求,实现方式有很多种,只是实现起来复杂程度和性能区别。不考虑性能情况下,tableView动态Cell高度,可以采取估算高度方式。...需要设置tableViewrowHeight属性,这里设置自动高度,告诉系统Cell高度是不固定,需要系统帮我们进行计算。

1.1K60

iOS自动布局框架之Masonry

项目中设置AutoLayout约束,起到对视图布局标记作用。设置好约束之后,程序运行过程创建视图时,会根据设置约束计算frame,并渲染到视图上。...调用此方法,如果有标记为需要重新布局约束,则立即进行重新布局,内部会调用updateConstraints方法 - (void)updateConstraints 重写此方法,内部实现自定义布局过程...iOS UI开发过程,UITableView动态Cell高度一直都是个问题。...实现这样需求,实现方式有很多种,只是实现起来复杂程度和性能区别。不考虑性能情况下,tableView动态Cell高度,可以采取估算高度方式。...需要设置tableViewrowHeight属性,这里设置自动高度,告诉系统Cell高度是不固定,需要系统帮我们进行计算。

2K50

Autolayout

Autolayout Autolayout是一种“自动布局”技术,专门用来布局UI界面的 Autolayout自iOS6开始引入,由于Xcode4不给力,当时并没有得到很大推广自iOS7(Xcode5...没有Autolayout之前,UILabel文字内容总是居中显示,导致顶部和底部会有一大片空缺区域 ?...有Autolayout之后,UILabelbounds默认会自动包住所有的文字内容,顶部和底部不再会有空缺区域 ?...UILabel实现包裹内容 设置宽度约束为 <= 固定值 设置位置约束 不用去设置高度约束 基于Autolayout动画 修改了约束之后,只要执行下面代码,就能做动画效果 [UIView animateWithDuration...(blueView.mas_width);//和蓝色view宽度相等 }]; 制作九宫格样式视图布局 填充一个View控件到父控件,然后隐藏显示。

91060

iOS 布局进阶:你真的会用 autolayout 么?

布局方式从frame、size、center到如今强大autolayout,将UI布局尽量自动化”和“智能化”,很大程度上减少了程序员工作量。...现如今开发,个人还是提倡使用自动布局(比如UITableview高度自适应用法),以减少大量UI计算,然而很多开发者可能写出自动布局一点也不自动。...一个View约束确定需要两个东西,一个是位置,一个是大小。日常开发,我们发现给UILabel、UIImageView、UIButton实例写约束时候,只需要给他们位置,而不需要给大小。...需求:上图中label宽度高度遵循intrinsicContentSize,但是长度不能超过父视图。...设置B宽度优先级为250 !

1.2K50

一次模块重构总结

:Scale_X(150)];//自动根据内容设定宽度。...3.VC【众多自定义视图是 VC View视图定义所有自定义视图下拉弹框数据源和处理所有自定义视图交互事件,使得代码耦合度更大,不符合开闭原则,很容易造成一处修改,误使其他模块出错现象...5.参数收集和初始化赋值时候都是一个一个对应着设置,不同视图需要不同操作,很是麻烦和易错。 重构后 1.绝对布局全部换成相对布局,这样在后续新需求时添加、删除页面元素更方便修改。...2.每个小控件和大自定义视图自动设置自身高度,省去手动计算定值高度麻烦。 3.隐藏/展示某个控件或者自定义视图时可以直接设置高度需要改变地方调用统一刷新方法刷新整体布局。...【4】纯代码写页面,所有的代码布局都应该是 相对布局,可以使用 SDAutolayout 实现完全自动布局,里面有 SC 和 Cell自动布局,都是设置底部依据试图,设置边距即可。

61420

【IOS开发基础系列】Storyboard专题

2 使用 2.1 结合xib使用     思路:         APP跳转流程故事呈现,但是VC事件处理与详细视图设计放在xib文件。     ...调整它宽度为81,高度无所谓。设置Mode 为 Center(属性面板 View 下面)以便当我们将图片放入时它不会被拉伸。         ...我将俩个 label 宽度设置为210,这样不会遮住ImageView。...3 设计原则 3.1 布局设计原则 3.1.1 一个控件布局尽量只采用一种方式,要么是Storyboard(XIB)要么是代码         因为视图刷新时,会直接从Storyboard中加载控件大小...3.1.3 故事中进行布局设计时,如果有导航栏、Tab栏,必须也要把高度预留出来 iPhone iPad各种控件默认高度 http://blog.csdn.net/chengyakun11/article

77230

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

iOS开发中行高灵活可变UITableView性能优化 一、UITableView构建原理         新闻类,电商类等应用,应用着大量图文混排视图视图UITableView,...开发通常会遇到一些十分复杂界面,而这些界面cell高度都是需要通过请求到数据动态改变,每个cell都要写复杂尺寸计算代码十分令人心烦。...iOS7之后,系统提供了一种自动计算cell高度方法,这无论性能还是工作量上,都完全解放了开发者。        ...iOS7系统之后,UITableView类增加了一个estimatedRowHeight属性,顾名思义,这个属性是设置UITableViewCell大约行高值。...这个值设置之后,开发者无需设置rowHeight属性,也不需要实现heightForRowAtIndexPath方法,系统会自动根据UITableViewCellcontentView约束来计算自己行高

1.9K20

用AutoLayout实现分页滚动

容器视图添加N个页视图,对于水平分页滚动来说容器视图高度和滚动视图一样,而宽度则是滚动视图宽度乘以页视图数量,页视图尺寸则和滚动视图保持一致,对于垂直分页滚动来说容器视图宽度和滚动视图一样,而高度则是滚动视图高度乘以页视图数量...containerView.gravity = MyGravity_Vert_Fill | MyGravity_Horz_Fill; //设置线性布局所有子视图均分和填充线性布局高度宽度。...gravity设置就可以确定子页视图高度宽度,再加上线性布局特性,所以页视图不需要设置任何附加约束。...containerView.wrapContentWidth = YES; //设置布局视图宽度由子视图包裹,当垂直流式布局这个属性设置为YES,并和pagedCount搭配使用会产生分页从左到右滚动效果...解决办法就是屏幕滚动时相应回调处理方法修正这个contentOffset值来解决这个问题。

1.9K40

iOS界面布局之三——纯代码autoLayout及布局动画

iOS界面布局之三——纯代码autoLayout及布局动画 一、引言         关于界面布局,apple策略已经趋于成熟,autolayout优势开发也已经展现淋漓尽致。...通过这个对象,我们可以设置类似视图对象之间间距,约束宽高,比例等属性。...,例如,如过我要设置view1上边距离父视图上边一定间距,这个view2就是view1视图,如果我要设置view1与另一个视图一定距离,这个view2就是另一个视图。...VFL语言我个人而言,他很类似于古代象形文字(不知道是否apple工程师从其中得到灵感),对布局约束设置是直观用符号表达出来,例如: H:|-20-[label(100@1000)] 前面的H...代表是水平布局还是垂直布局,H代表水平,V表示垂直,|表示父视图边沿,-20-表示距离20px,[]内是要布局摆放视图对象名,()是约束尺寸,H下则为宽度,V下则为高度,@后面的数字代表优先级

2.8K30

《Motion Design for iOS》(十五)

你也可以通过绘制任何你想要东西来完全自定义UIView。 这是我app Interesting for iPhone截屏和界面中一些视图分解。...运营商图像视图(苹果控制) wifi信号强度视图(苹果控制) 当前时间视图(苹果控制) 电池等级视图(苹果控制) “汉堡包”菜单按钮 标题栏标题标签 改变子按钮 一个UITableViewCell...视图,用来包含UITableView中一行元素 UILabel帖子标题 评论数量UIButton,由一个评论气泡图和评论数量组成 显示帖子URLUILable UILabel显示帖子点值和子...如果你不熟悉iOS用户界面开发,看看一些你喜欢app,看能不能找出界面中所有的视图,以此作为分解你自己设计练习,这样你就可以学习代码构建它们。...一个UIView本质上是一个包含内部图形矩形。屏幕上布局,靠近或在其他视图顶部,还可能会有高级透明效果来整合到一起或者快速绘制。

84640
领券