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

为什么在子视图中添加图层蒙版时需要调用layoutIfNeeded()?

在子视图中添加图层蒙版时,调用layoutIfNeeded()的目的是确保子视图的布局已经完成,然后再添加图层蒙版。这样可以避免在布局未完成时添加蒙版导致的问题。

layoutIfNeeded()是一个UIView的方法,它会立即更新视图的布局。当你在子视图中添加图层蒙版时,需要确保子视图的布局已经完成,这样才能正确地添加蒙版。

如果你不调用layoutIfNeeded(),可能会导致以下问题:

  1. 图层蒙版的位置不正确,可能与子视图的的实际布局不一致。
  2. 图层蒙版的尺寸不正确,可能与子视图的的实际尺寸不一致。

因此,在子视图中添加图层蒙版时,建议调用layoutIfNeeded()以确保布局正确。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Substance Painter 2021中文免费下载Substance Painter 2022安装教程

>>>>>substance painter 2021>>>>>5、通过几何体也可以2D和3D视图中更改“几何体”选择。只需将鼠标移到应该可见/隐藏的部分上,然后单击它以切换其状态。...“几何图形”中选择要遮罩的几何图形之后,可以启用口顶部的“隐藏/忽略排除的几何图形”按钮(或通过按ALT + H快捷键)。...为方便起见,从图层上的复制或移动一种效果但没有一个效果会自动添加一个效果。这是因为来自图层内容和的效果彼此不兼容。这意味着将效果从复制到图层的内容中将自动切换到(或创建一个)。...这使项目更易于导航,尤其是导出和烘焙,因为在这些上下文中也可以看到描述。要添加或编辑描述,只需“纹理集列表”窗口中单击“ UV拼贴”,然后进入“纹理集设置”窗口进行编辑。...现在可以单击文件夹缩略图以退出几何。在编辑“几何图形,还可以将材料或智能材料从架子上拖放到口中。

5K00

iOS开发之扫描二维码

自iOS7以后,iOS扫描二维码不需要借助于第三方框架了,苹果在AVFoundation中原生支持了扫描二维码的API,主要涉及到5个类,这5个类自定义相机或者视频也用得上,网上有很多介绍,这5个类分别为...AVCaptureVideoPreviewLayer:相机拍摄预览图层,是CALayer的子类,使用该对象可以实时查看拍照或视频录制效果,设置好尺寸后需要添加到父view的layer中。...将周围的颜色加深 [maskLayer setNeedsDisplay]; //6、关键设置扫描的区域 方法一:自己计算 // CGFloat x...stopRunning]; [self.scanline removeFromSuperview]; } } /** * 中间一块要空出来...UIGraphicsBeginImageContextWithOptions(self.maskLayer.frame.size, NO, 1.0); //新颜色

1.9K40
  • setNeedsLayout和layoutIfNeeded看我就懂!

    强制刷新布局,调用 setNeedsLayout,如果想马上刷新界面,调用layoutIfNeeded 二、setNeedsLayout跟layoutIfNeded setNeedsLayout调整视图的视图的布局...您可能会想知道为什么我们进行约束更改之前呢。苹果认为这是一个最佳做法,以确保任何以前的更新等待更新周期的完成,所以我已经添加了它。...但在我们的例子中,添加了2秒的动画块UIView.animate,该块内,我们通过layoutIfNeeded方法强制立即布局。...** 刷新对象布局: -layoutSubviews方法:这个方法,默认没有做任何事情,需要子类进行重写 -setNeedsLayout方法: 标记为需要重新布局,异步调用layoutIfNeeded...) 如果要立即刷新,要先调用[view setNeedsLayout],把标记设为需要布局,然后马上调用[view layoutIfNeeded],实现布局 视图第一次显示之前,标记总是“需要刷新”的

    2.7K90

    深入剖析Auto Layout,分析iOS各版本新增特性

    这里要注意重写layoutSubviews()或者执行类似layoutIfNeeded这样可能会立刻唤起layoutSubviews()的方法,如果要这样做需要注意手动处理的这个地方自己的视图布局的树状关系是否合理...生命周期中需要注意的事项 不要期望frame会立刻变化。 重写layoutSubviews()需要非常小心。...不含视图项的约束不合法,每个约束至少需要引用一个视图,不然会崩。删除视图一定要注意。...原因在于layoutIfNeeded需要有标记才会立刻调用layoutSubview得到宽高,不然是不会马上调用的。...页面第一次显示是会自动标记上需要刷新这个标记的,所以第一次看显示都是看不出问题的,但页面再次调用layoutIfNeeded是不会立刻执行layoutSubview的(但之前加上setNeedsLayout

    1.2K10

    谈谈 Autolayout

    Breakpoint Symbol添加UIViewAlertForUnsatisfiableConstraints ?...layoutSubViews: 当 View 及其所有视图的 frame 发生改变的时候,会调用 layoutSubviews,所以需要更新 frame 来重新定位或更改大小时重载它。...layoutIfNeeded 调用 layoutIfNeeded 会触发 layoutSubviews,告知页面布局立刻更新,所以一般都会和 setNeedsLayout 一起使用。...如果希望立刻生成新的 frame 需要调用此方法,利用这点一般布局动画可以更新布局后直接使用这个方法让动画生效。...通常在 updateConstraints 方法中实现必须要更新的约束,设置或者解除约束、更改约束的优先级或者常量值,或者从视图层级中移除一个视图都会设置一个内部的标记 update constarints

    70520

    Android 8.0 自适应图标

    您必须提供图标图层作为可绘图,图标轮廓周围不能有或背景阴影。 ? 图2. 自适应图标使用 2 个图层和 1 个进行定义。... Android 7.1(API级别25)及更早版本中,启动器图标大小为 48 x 48 dp。必须使用以下准则来调整图标图层的大小: 两层的尺寸必须为 108 x 108 dp。...图标的内部 72 x 72 dp 出现在口内。 系统会在四面各留出 18 dp,以产生有趣的视觉效果,如视差或脉冲。 我验证了,不是这些尺寸也是可以的,但我们还是严格按照这个准则来吧。 ? ?...ic_launcher" android:roundIcon="@mipmap/ic_launcher_round" …> 如果要将常规自适应启动器图标应用于快捷方式的相同和视觉效果...对于动态快捷方式,请在createWithAdaptiveBitmap() 创建方法时调用该 方法。 大功告成,Android 8.0 上能自适应,以下是默认的图标。

    2.7K100

    游戏开发中的物理介绍

    游戏开发中的物理介绍 碰撞对象 物理过程回调 碰撞层和 GUI示例 代码示例 Area2D StaticBody2D RigidBody2D KinematicBody2D 游戏开发中,您通常需要知道游戏中的两个对象何时相交或接触...注意 建议始终delta物理计算中使用相关参数,以便在您更改物理更新率或玩家的设备无法跟上,游戏能够正确运行。 碰撞层和 碰撞层系统是最强大但经常被误解的碰撞特征之一。...该系统使您可以各种对象之间建立复杂的交互。关键概念是图层。每个CollisionObject2D都有可与之交互的20个不同的物理层。...然后通过选择每个节点应与之交互的层来设置每个节点的“”属性。例如,播放器的设置如下所示: 代码示例 函数调用中,将图层指定为位掩码。...如果功能默认启用所有图层,则图层将指定为0x7fffffff。您的代码可以对图层使用二进制,十六进制或十进制表示法,具体取决于您的偏好。

    1.2K30

    AI绘画第七课:局部重绘的应用

    1.:它泛指一些用以限定处理区域的范围对象,字面意义上理解就是一个“"住了某些关键区域的“" 2.重绘内容:把涂黑部分进行重画 3.重绘非内容:把涂黑部分以外的进行重画 4....与通常的图生图一样,还需要添加关于黑色口罩的提示词,权重、重绘幅度可以拉高点, 结果: 2.画一个蓝色带白色爱心的口罩: 画完后提示词也要修改 因为重画的内容变复杂了,需要降低权重和重绘幅度...:按住Shift+鼠标拖拽 从原选区减去选区:按住Alt+鼠标拖拽 选择好重绘的地方后,最上方的菜单栏里依次选中【图层】-【新建填充图层】-【纯色】 点击确定 跳出来的拾色器里,选择白色...图层窗口里选中这个填充图层 复制选中图层:按住Ctrl+J 双击最上面的图层前面的白色小方块,把填充图层颜色改为黑色 单击一下后面的长方形,这个东西,其实就是PS当中的选中后...用这个上传的动作,代替了WebUl里的那些涂涂画画 下面的参数设置与前十分钟讲的是完全一样的 14:21 (三)结果: 现在AI就可以十分精确地为你重绘这一块被白色标记出来的区域了 14

    1.2K30

    「Adobe国际认证」Adobe Photoshop变换对象教程

    您可以向选区、整个图层、多个图层图层应用变换。您还可以向路径、矢量形状、矢量、选区边界或 Alpha 通道应用变换。若在处理像素进行变换,将影响图像品质。...必要,可在处理变换之前调整参考点。应用渐增变换之前,可以连续执行若干个操作。例如,您可以选取“缩放”并拖动手柄进行缩放,然后选取“扭曲”并拖动手柄进行扭曲。...变换菜单命令 缩放相对于项目的参考点(围绕其执行变换的固定点)增大或缩小项目。您可以水平、垂直或同时沿这两个方向缩放。 旋转围绕参考点转动项目。...也可以图层”面板中,通过按住 Shift 键并单击,来选择多个连续的图层。 要变换图层或矢量,请取消链接并在“图层”面板中选择缩览图。...应用与智能对象图层链接或未链接的图层。 使用分辨率较低的占位符图像(您以后会将其替换为最终版本)尝试各种设计。

    3K40

    图片堆叠、多重聚焦的几种办法

    整个合成过程可以拍摄结束后,使用后期软件完成,也可以借助工具,拍摄完成。...2.图层页面会出现需要处理的图片图层,且都带有,将所有图层删除,重新建立新的白色图层。3.现在,回到最上面的图层图层上使用画笔工具,进行擦拭,将下面图层的清洗部分擦拭出来。...我们再看看图层面板中的2个图层后面都带上了,如果觉得堆叠出来的图片局部地方不够理想,就可以利用恢复工具上进行更加细致的修改。...使用自动化技术,拍摄过程中完成堆叠:ORBITVU(欧保图)多重聚焦为了解决产品拍摄,景深太深的聚焦问题,欧保图软件上设有“SUPERFOCUS”多重聚焦,拍摄前,添加几步聚焦的过程:第一步,选择产品离镜头最近的地方...第四步,添加步数,直到该部位聚焦清晰。点击完成,软件进行计算,完成多重聚焦。

    1K30

    iOS学习——UIPickerView的实现年月选择器

    ,那么我们为什么不直接在层上添加弹出式图呢?...如果直接在层上添加弹出式图作为视图的话,我们的布局相对会简单很多,这里涉及到一点就是视图的透明度是和父视图保持一致的,如果直接将弹出视图加载到层遮罩视图上,会导致弹出视图的透明度也为0.3,所以弹出视图不能直接加在层遮罩视图上...还有取消、确定按钮的点击事件也都在这里进行控制和实现,我们根据自己的需要进行这是就可以了,一般是点击确定按钮的时候调用我们的BRDateResultBlock,实现日期选择完成的操作。...层背景点击事件看需求,有的需要和取消一样的效果,有的可能就无效果,自己添加即可。...,我们的子类向外就暴露了一个类方法,所以我们再需要弹出选择器的地方调用该方法就可以了。

    4.3K130

    portraiture第三方插件美白磨皮软件

    portraiture通过智能化的肤色技术,能精确创建皮肤、头发区域的,并以为范围添加磨皮、美白等效果。对于大部分人来说,portraiture的美白磨皮处理入门门槛低。...图片 2.高斯模糊+图层+应用图像 如果不安装第三方插件的话,可利用ps的图层功能手动创建实现局部磨皮,但需要比较娴熟的修图技巧,对绘制的精确度要求高。...通过绘制,我们可在皮肤区域添加高斯模糊效果,实现局部磨皮。 而皮肤的美白,则可通过应用图像中的功能,对绿通道进行滤色处理,可让皮肤呈现美白,适当调整不透明度可避免过度苍白。...首先,portraiture插件拥有智能的肤色功能,可自动识别皮肤、头发等需要磨皮的区域。这就意味着我们不需要使用ps的通道、进行手动的磨皮区域识别,可大大地提高修图的效率。...比如人像修图中常用的美白手法,就可以通过肤色的局部处理,实现皮肤的提亮美白,同时背景、衣服细节等不会曝光过度。

    49030

    用PS拼一张海报

    主要还是需要素材够多,就能够拼出来了,而素材呢, 可以到站长素材站免费下载,各种PSD文件, http://sc.chinaz.com/ 觉得好看就下载下来,只取你需要图层就可以啦! ?...小编就随便找了一张蓝色底图给大家演示, 打开PS,将图片添加进去,然后复制图层,再删除原图层。 ? ? 好啦,接下来就是找素材了,尽量找贴合这个底图的素材, 然后找的时候顺便看看别人怎么布局的。...现在要做的,就是把字放到底图里,PS界面点文件,点打开。 打开以后,把字的图层拖到底图图层上就好了。 选择“移动工具” ? 然后把图层拖入。 ?...先找一张版图,可以是金色或者其他颜色,小编就找了一张枫叶图。 添加到PS中。 跟刚才一样,打开图片,拖住图片放到底图中, 然后把这张图放在文字的图层上,完全遮住文字哦, 像这样。 ?...然后右下角选择这张图层,点击右键,选择“创建剪贴” ? 接着就是使用“移动工具”,调整到你觉得最好看的位置, 如果这张图配上颜色不搭,就继续找颜色搭的图。 点击之后,字体就变成这样啦! ?

    98820

    那些你不知道的Ps冷知识③——完结

    如上图,这回应该比较好理解了吧~第一次框选可以选中任意路径图层(包括上了锁的),重新调整过左上角的选择现有图层/所有图层后,则只能选择当前图层,有点类似移动工具的自动选择。...通过这一设置,我们可以控制路径选择的范围,需要选择某一路径而不想被其他图层打扰使用“现用图层”,当需要批量操作选用“所有图层”,随心控制,就是这么炫酷~ 关于这个技巧的应用,后文还有说明~ 2.创建副本...①将A、B、C编组(Ctrl+G) ②按住Ctrl点击图层D激活该图层的选区 ③点选组1,执行对齐 ④解组(Ctrl+Shift+G)恢复原状,就酱~ PS:很多人问过我,为什么使用了对齐之后并没有按照视觉上的边界完成对齐...7.显示 很多新手对于的概念不是很清楚,这个技巧可以让你很清晰地感受的原理: ?...按住Alt点击(限图层,矢量无效),这时画板将切换至的灰度状态,使调整更加方便~按住Alt再次点击即可退出状态。

    91110

    Lottie使用技巧

    我设计了一个简单的logo动画,这是一个拥有螺旋桨的无人机,我从Ai导入AE,并用3D图层做了一个旋转动画。 image.png 当我准备导出它,AE给我弹了一堆错误信息。...下面是Lottie的作者给出的一些建议 保持简单:JSON文件应该尽可能的简洁和保持小的体积 利用好AE的能力尽可能的减少额外的关键帧,例如多使用父级方式而不是每一个层上都添加一遍关键帧 避免使用路径关键帧...AE中需要将任何Ai,EPS,SVG或PDF图层转换为形状图层,否则会产生错误。 导出文件,以1倍图导出,图形上的每个像素都将转换成iOS和Android的点单位。...或者alpha应该尽可能的小,它们的大小将影响Lottie的性能,所以最好避免出现它们或保持它们最小。 混合模式,如叠加,屏幕,相加还不支持。...图层样式,如投影,描边都还不被支持 空图层可以使用,但为了让它正常工作,我们需要将可见打开,并将透明度设置为0。

    2.5K62

    专业的图像处理工具:Pixelmator Pro Mac下载

    -根据图层类型(图像,文本,形状和组),颜色标记或两者过滤图层。-图层边栏中快速调整图层不透明度和混合模式。-使用剪切将一个图层的内容剪切到另一个“偶数图层组”或“嵌套图形”的轮廓!...-通过“图层”侧边栏中的快捷菜单添加剪贴,通过两个图层之间按住Option键单击,或从“格式”菜单中添加剪贴。-双击图层侧边栏中的箭头,释放剪贴。...-使用“颜色调整”,“效果”或“样式”的图层上使用绘画,修饰或整形工具,所有非破坏性过滤器都将动态更新到图层的新内容并且不会被展平。这一个很大!颜色标签通过为图层提供方便的颜色标记来组织图层。...过滤和搜索通过过滤和搜索,找到您正在寻找的图层比以往更容易。剪裁面具剪切可让您毫不费力地将一个图层的内容剪切为另一个图层的形状,即偶数图层组和嵌套图形!...快速不透明和混合您现在可以图层边栏中更改图层的不透明度设置和混合模式。

    79130

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

    如果pointInside:withEvent: 返回YES,那么视图的层次全部贯穿;否则视图层次的分支是被否定的。你不太需要调用这个方法,但是你需要重写它用来隐藏视图的触摸事件。         ...,或者视图就是接收者;否则就是NO layoutIfNeeded     排列子视图如果需要的话 - (void)layoutIfNeeded 讨论     使用这个方法来关注子视图的排列绘制前 layoutSubviews...setNeedsLayout     设置当视图显示的时候需要重新排列 - (void)setNeedsLayout 讨论     如果你调用这个方法在下一个显示方法之间,那么layoutIfNeeded...消息或者视图从接收者视图层次中移除因为它要被添加到其他视图了 3 UIView动画 3.1 概述         UIView视图的动画功能,可以使更新或切换视图时有放缓节奏、产生流畅的动画效果,进而改善用户体验...2.容器视图中设置转换。 3.容器视图中移除视图。 4.容器视图中添加视图。 5.结束动画块。

    62730

    iOS 页面渲染 - 流程

    我们知道了 CALayer 成像的过程, 那么它是如何调用 GPU 并显示可视化内容的呢?下面我们就需要看下 Core Animation 流水线的工作流程。...、修改 frame 都会打上打上标记,我们也可以调用我们平时常见的setNeedsLayout手动添加标记。...Layout 这个阶段主要处理视图的构建和布局,具体步骤包括: 调用重载的 layoutSubviews 方法 创建视图,并通过 addSubview 方法添加视图 计算视图布局,即所有的 Layout...如 对 layer tree 调用 layoutIfNeeded; 处理 Animation ......setNeedsLayout只是将指定 UIView(背后的 CALayer) 打上待刷新标记而已,而layoutIfNeeded也只是重新计算子视图的 frame 信息,并且会在 RunLoop 回调自动调用

    1.9K20

    视觉效果 -- iOS Core Animation 系列三

    通过上面的示例可以发现: 只设置cornerRadius,默认情况下,只影响背景颜色,而不影响背景图片或者图层。 如果想要截取这个视图的图片和视图,需要设置masksToBounds为YES。...边框绘制图层边界里面,在所有图层之前。...但是同一个图层缺又存在这个问题,所以这看起来很简单的效果,我们需要用到两个图层,一个图层做maskToBounds裁剪,一个图层画阴影。...图层 mask 这节的原文章前有一堆铺垫的,我就不说了,想看的点击查看原文 本节主要是介绍CALayer的maskt属性,它可以实现一些比较好玩的裁剪效果。而不是常规的圆形、矩形裁剪。...但是如果图层包含一个同样显示50%透明的图层,你所看到的视图,50%来自视图,25%来了图层本身的颜色,另外的25%则来自背景色。 如果想保持透明度一直。

    1.1K30
    领券