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

深入详解iOS适配技术

当我们点击周围四条虚线,虚线变成实线,代表子控件父控件在这个方向上间距被固定了。当我们点击子视图内部虚线,同样也变为实线,代表子视图宽度或者高度固定了。...比如,给storyBoard某个子控件A设置了宽度高度、距离父控件上下左右之间间距,就相当于给这个控件添加了6个约束,也就产生了6个约束对象。...3.2约束冲突 >约束可以重复添加,但容易引发约束冲突 >例如先约束某个子控件A高度等于100,然后又给这个子控件A添加了一个高度约束, 约束高度等200, 那么这两个约束就产生了冲突,控件A不知道他自己高度是...父控件随子控件变化而变化 如果希望父控件随子控件(UILabel/UIView)高度变化而变化,就不要给父控件添加高度约束,只需要子控向父控件垂直方向上添加约束,这样子控件高度改变,父控件高度随之改变...比如,当我们选择sizeClass为 W Regular H Any(宽度正常 高度任意),其实这代表了两个不同sizeClass:W Regular H Regular (宽度正常 高度正常)

8.4K70

iOSMyLayout布局系列-流式布局MyFlowLayout

这种流式布局布局机制是,里面的子视图添加顺序每行依次从左排列到右,而当布局视图剩余宽度容纳不下一个要插入视图宽度则会新起一行,重新从左到右继续排列,如果遇到某个子视图宽度甚至比布局视图还要宽则总时会压缩子视图宽度布局视图宽度保持一致...这种流式布局布局机制是,里面的子视图添加顺序每列依次从上排列到下,而当布局视图剩余高度容纳不下一个要插入视图高度则会新起一列,重新从上到下继续排列,如果遇到某个子视图高度甚至比布局视图还要高则总时会压缩子视图高度布局视图高度保持一致...另外在一些布局场景我们还可以做如下设置: 1.垂直内容填充约束布局,我们可以设置某个子视图宽度布局视图宽度建立约束关系,以及让某个子视图高度同子视图宽度建立约束关系,也就是说可以设置子视图...(子视图.heightSize) 3.垂直数量约束布局,我们可以设置某个子视图高度同子视图宽度建立约束关系,也就是说可以设置子视图.heightSize.equalTo(子视图.widthSize...) 4.水平数量约束布局,我们可以设置某个子视图宽度同子视图高度建立约束关系,也就是说可以设置子视图.widthSize.equalTo(子视图.heightSize) 四、流式布局内子视图停靠设置

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

【IOS开发基础系列】Autolayout自动布局专题

虚线方块是根据自动布局显示视图frame。实线方块是根据你屏幕上放置视图frame。这两个应该吻合,但是这里并没有。 Note:你可能奇怪,为什么Xcode不为X轴方向自动增加一个约束。...Xcode规则是:Xcode只为那些你没有设置任何约束对象创建自动约束。一旦你增加一个约束,你便是告诉Xcode你接管了这个视图。...2 代码实现自动布局 2.1 使用方法 2.1.1 添加约束方法         代码中一般用到两个添加约束方式:     1. - (void) addConstraint: (NSLayoutConstraint...接着后面-[]括号里面对当前View/控件 高度/宽度进行设定; options:字典类型值;这里值一般系统定义一个enum里面选取; metrics:nil;一般为nil,参数类型为NSDictionary...H:  :表示水平         >= :表示视图间距、宽度高度必须大于或等于某个值         <= :表示视图间距、宽度高度必须小宇或等于某个值         == :表示视图间距、宽度或者高度必须等于某个值

27640

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

只有flex_wrap设置为wrap才有效。默认值是0表示根据条目的尺寸自动进行换行。...则表明不设置高度值,其他值就是一个固定高度值。...设想一个场景:某个视图宽度竖屏下是屏幕宽度一半,而在横屏下则是屏幕高度一半。换句话说就是视图宽度是屏幕宽度高度最小值一半。 ?...MyLayoutPosclone方法就是专门为最值约束使用,主要为了解决那些获取最值希望某个位置偏移场景。 目前只有相对布局下视图才支持位置最值约束设置,其他布局下视图不支持。...但是使用最值约束,要求数组内元素尺寸约束计算必须要在当前视图尺寸约束计算之前完成,否则得到结果将未可知。

1.7K10

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

当执行TableViewreloadData方法进行界面刷新,系统先会把所有行行高数据拉取一遍,之后UITableViewCell配置部分场景一直,拉取即将出现在屏幕上cell行高数据。...至于为何UITableView进行配置也需要拉取所有的行高数据,我猜想其为了进行视图一些初始化操作,例如表视图右侧滚动条宽度所占比例等。...例如下图所示,左侧图标进行了与父视图左侧距离约束,标题Label进行了与父视图上侧距离约束右侧距离约束,内容Label进行了与标题Label上侧约束与父视图下册约束,并且对宽度进行了约束。...下册会受到内容Label施加压力,这时cell也根据约束自动扩充自己高度。..."; } } 小提示:UITableViewCell创建出来时,其宽度并不一定UITableView宽度一致,如果开发者需要通过获取cell宽度来处理逻辑,要在celllayoutSubViews

1.9K20

MyLayout&TangramKit 重大升级!

当一个视图有自己固有内容尺寸,就不需要再为视图设置宽度或者高度约束。这也就是为什么一般情况下不对UILabel视图设置宽度高度约束系统也能正常完成布局。...系统内部实现如果布局引擎布局发现某个视图没有设置高度或者宽度约束那么就会去调用这个视图intrinsicContentSize方法,如果这个方法返回了正常尺寸则视图就按这个尺寸来进行渲染展示...那就是当添加或者删除子视图以及调整了某个子视图位置尺寸就需要重新调整父视图自适应约束设置。...上面的约束设置实现视图滚动机制也有一定局限性!那就是一旦容器视图添加视图就需要重新调整容器视图右边界下边界约束依赖。...因此如果想使用布局视图尺寸自适应功能,那么将布局视图尺寸设置为wrap后,就可以像使用UILabel那样不用去设置布局视图宽度约束高度约束了。比如有两个兄弟视图A,B。

2K20

iOS实现点击图片放大&长按保存图片

一:简介 项目中免不了遇到,实名认证上传身份证、绑定银行卡等功能。...实际操作呢,涉及到上传图片,页面布局,可能图片不是一张,考虑到布局美观等因素,显示图片位置变得很小,如果想查看上传图片是否清晰,内容是否完整,可能就需要放大才能实现,下面就和大家分享一下我封装一类...另外,这些博文都是来源于我日常开发技术总结,时间允许情况下,我会针对技术点分别分享iOS、Android两个版本,尽量附上demo以供大家参考,如果有其他技术点需要,可在文章后留言,我会尽全力帮助大家... 添加放大后背景视图颜色透明度 使用动画放大展示ImageView 添加恢复ImageView原始尺寸tap点击事件 完成之后将背景视图删掉 三:实现源码分析 根据实现思路分析,一步步进行编码实现...添加放大后背景视图颜色透明度 //当前视图 UIWindow *window = [UIApplication sharedApplication].keyWindow; //背景

5.9K20

iOS-屏幕适配实现(Autoresizing)

6条线,上下左右以及空间内两条红色交叉线如下图 上下左右四条红色线分别表示此视图距离父视图上下左右边约束各式多少 中间两条上下交叉线表示,此视图高度宽度是否随着父视图变化而按比例变化...Autoresizing 举个例子: 当我们将左边上面虚线变成实线,代表子控件父控件在这个方向上间距被固定 当我们点击子视图内部虚线,同样也变为实线,代表子视图宽度或者高度固定了...Autoresizing各种组合预览 ** UIViewAutoresizingNone** viewframe不会随superview改变而改变(这样约束条件有冲突,默认左间距上间距固定...,下边距固定高度固定(这样约束条件有冲突,默认上边距不变)垂直方向是同样效果,故不列举 UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleWidth...同理, 如果垂直方向同时固定了上边距下边距,那么我们不能固定子控件高度(反应在storyBoard设置,也就是必须使控制子控件高度虚线变为实线) Autoresizing缺点 Autoresizing

20110

提高效率 |ArcGIS Pro 中所有快捷键一网打尽

2D ,向前平移一个屏幕宽度 3D ,照相机保持照相机角度高度不变同时会向前移动一个屏幕宽度。 向下翻页键 向下移动一个屏幕大小。 2D ,向下平移一个屏幕宽度。... 3D ,照相机保持照相机角度高度不变同时会向左移动一个屏幕宽度。 End 向右移动一个屏幕大小。 2D ,向右平移一个屏幕宽度。... 3D ,照相机保持照相机角度高度不变同时会向前移动一个屏幕宽度。向下翻页键向下移动一个屏幕大小。 2D ,向下平移一个屏幕宽度。... 3D ,照相机保持照相机角度高度不变同时会向下移动一个屏幕宽度。Home向左移动一个屏幕大小。 2D ,向左平移一个屏幕宽度。... 3D ,照相机保持照相机角度高度不变同时会向左移动一个屏幕宽度。End向右移动一个屏幕大小。 2D ,向右平移一个屏幕宽度

66120

android

项目中设置AutoLayout约束,起到对视图布局标记作用。设置好约束之后,程序运行过程创建视图根据设置好约束计算frame,并渲染到视图上。...所以纯代码情况下,视图设置约束是否正确,要以运行之后显示结果打印log为准。 Masonry使用Masonry进行约束,有一些是需要注意。...使用Masonry添加约束之前,需要在addSubview之后才能使用,否则会导致崩溃。 添加约束初学者经常会出现一些错误,约束出现问题原因一般就是两种:约束冲突缺少约束。...iOS UI开发过程,UITableView动态Cell高度一直都是个问题。...UIScrollView原来视图添加到containerView上,并且这个视图设置约束

70620

CSSfloat定位技术iOS上实现

我们开发程序时是碰到一个概念叫高内聚低耦合,如果对象之间都存在着相互依赖约束关系的话则意味着程序越复杂难以理解,所以我们要进行对象之间解耦处理。...浮动 我们UI界面总是有一种场景是:某个容器视图后续添加视图左边总是紧跟着前面添加视图右边,而上边则跟前面视图上边保持一致进行停靠显示,而当容器视图剩余宽度空间不够容纳新加入视图则新加入视图自动往下移动且不覆盖已经排列好视图前提下寻找出一个可以容纳其宽度最合适位置进行停靠...这里比重设置,是整体布局视图浮动方向设定上,就是说当整体布局视图里面的视图是支持左边右边浮动则这个比重指定视图宽度相对比例值,而当布局视图支持是上边下边浮动则这个比重指的是视图高度相对比例值...最后一个视图扩展属性weight表示视图宽度或者高度比重,这个值默认值是0,表示不是按比重来指定宽度,这时候你添加视图必须明确指定宽度或者高度,而当设置为非0则不需要为子视图指定宽度高度...但是实际我们可能有一些场景是子视图并不想受到布局视图高度边界约束,一直往上浮动,而直到某个子视图设置了clearFloat才换列显示,同时布局视图高度也是包裹(wrapContentHeight

2.1K20

ImageView.ScaleType

内容 课程描述 缩放图像边界到这个视图边界选项。 重点: ImageView.ScaleType 中央 将图像置于视图中央,但不执行缩放。...ImageView.ScaleType CENTER_CROP 均匀缩放图像(保持图像高宽比),使图像两个尺寸(宽度高度)等于或大于视图相应尺寸(减去填充)。...ImageView.ScaleType CENTER_INSIDE 均匀缩放图像(保持图像宽高比),使图像两个尺寸(宽度高度)等于或小于视图相应尺寸(减去填充)。...ImageView.ScaleType 矩阵 绘图使用图像矩阵进行缩放。 要点 将图像置于视图中央,但不执行缩放。从XML,使用以下语法:android:scaleType=”center”。...从XML,使用以下语法:android:scaleType=”fitXY”。 绘图使用图像矩阵进行缩放。图像矩阵可以使用设置 setImageMatrix(Matrix)。

47210

用AutoLayout实现分页滚动

容器视图添加N个页视图,对于水平分页滚动来说容器视图高度滚动视图一样,而宽度则是滚动视图宽度乘以页视图数量,页视图尺寸则滚动视图保持一致,对于垂直分页滚动来说容器视图宽度滚动视图一样,而高度则是滚动视图高度乘以页视图数量...,这里也确定线性布局高度。...containerView.gravity = MyGravity_Vert_Fill | MyGravity_Horz_Fill; //设置线性布局所有子视图均分填充线性布局高度宽度。...分页图标效果图 横竖屏切换 对于带有分页功能滚动视图来说,当需要支持横竖屏就有可能会出现横竖屏切换界面停留在两个页面中间而不是按页进行滚动效果。...解决办法就是屏幕滚动相应回调处理方法修正这个contentOffset值来解决这个问题。

1.9K40

RunLoop总结:RunLoop应用场景(三)滚动视图流畅性优化

1002.png 一个Cell里有两个Label,三个imageView,这里图片是非常高清(2034 × 1525),一个界面最多有18张图片。...简单描述一下这种做法: 首先创建一个单例,单例定义了几个数组,用来存要在runloop循环中执行任务,然后为主线程runloop添加一个CFRunLoopObserver,当主线程NSDefaultRunLoopMode...关于这一点,我以前做法是Cell定义一个public方法,用来计算Cell高度,然后计算完高度后,将高度存储Cell对应Model(Model里定义一个属性来存高度),然后渲染Cell,...这样在为Cell各个子控件赋值,仅仅是取值、赋值,计算Cell高度,也仅仅是加法运算。 3.界面背景色透明视图过多 为什么界面背景色透明视图过多会影响UITableView流畅?...如果两个兄弟视图重合,计算是重合区域像素点: 结果颜色 是 上面的视图这个像素点颜色 + 下面这个视图该像素点颜色 * (1 - 上面视图透明度) 只有当透明度为1,上面的公式变为R =

2.1K41

Android 约束布局ConstraintLayout1.1.0 版详解

两个属性作用就是指定当前控件宽度高度是父控件百分之多少。可设置 0 - 1 之间,1 就是 100%。...而在 1.1 稳定版,无论设置右边距还是左边距都是有效果累计计算。并且计算剩余空间,会将边距一起考虑。...设置值,可以设置多个,如: app:layout_optimizationLevel="direct|barrier|dimensions" Barrier 当我们布局,有时候就会遇到布局随着数据多少而改变大小情况...如果以 A 作为约束对象,那么当 B 宽度过宽就会被遮挡,同理以 B 作为约束也是如此。 那么此时,Barrier(屏障)就派上用场了。...除此之外,还可以通过 setEmptyVisibility() 方法设置当视图不存在占位符可见性。 下面的例子演示了占位符使用,当点击顶部头像,顶部头像消失并在占位符处显示: <?

1.1K40

Android ConstraintLayout详解「建议收藏」

概述 本篇文章,你学习到有关ConstraintLayout — 一种构建于弹性Constraints(约束)系统新型Android Layout。...在编辑器内,找到ImageView拖到layout内。 ImageView一旦拖到layout,UI提示需要resource。...注意:该部分讲有关手动创建约束,需要将左上角自动创建约束按钮关闭 开始之前,确保ImageViewTextViewlayout内。...相对于约束来放置widget – 当在一个widget有至少两个相对连接,比如说顶部底部,或者左侧右侧,然后就可以使用滑动条来调节widget链接位置。...Fixed – 可以调整widget宽度高度 AnySize – 使得widget占据所有可用控键来满足约束 AnySize应用之前 AnySize应用之后 Wrap Content –

1.5K30
领券