128
|
Ben Gottlieb · 技术社区 · 15 年前 |
![]() |
1
161
您可以通过设置要返回的层上的操作字典来完成此操作。
在我的某个图层中插入或更改子图层时禁用淡入/淡出动画,以及图层大小和内容的更改。我相信
SWIFT版:
|
![]() |
2
89
也:
|
![]() |
3
28
当更改层的属性时,CA通常创建一个隐式事务对象来动画更改。如果不希望对更改进行动画处理,可以通过创建显式事务并设置其 KCA事务禁用 属性到 真 . Objtovi-C
迅捷
|
![]() |
4
23
除了
Brad Larson's answer
:对于自定义层(由您创建)
you can use delegation
而不是修改层
不幸的是,它不可能使用
用法(在视图内):
有时,将视图的控制器作为视图自定义子层的委托是很方便的;在这种情况下,不需要助手类,您可以实现
重要提示:不要尝试修改的委托
注意:如果要动画(而不是禁用动画)层重绘,则放置
|
![]() |
5
8
这里有一个更有效的解决方案,类似于公认的答案,但是 迅捷 . 在某些情况下,它会比每次修改值时创建事务要好,这是一个性能问题,正如其他人所提到的,例如在60fps左右拖动层位置的常见用例。
查看苹果的文档 how layer actions are resolved . 实现委托将跳过级联中的另一个级别,但在我的示例中,由于 caveat about the delegate needing to be set to the associated UIView .
编辑:更新感谢评论指出
|
![]() |
6
7
根据山姆的回答和西蒙的困难…创建csshapelayer后添加委托引用:
…在“M”文件的其他地方… 基本上与Sam的相同,没有通过自定义“DisableImplicitations”变量排列切换的能力。更多的是“硬线”方法。
|
![]() |
7
7
实际上,我没有找到任何正确的答案。为我解决问题的方法是:
然后你可以在它的任何逻辑,禁用一个特定的动画,但因为我想删除它们全部,我返回了零。 |
![]() |
8
5
找到了一个更简单的方法来禁用
Swift:
|
![]() |
9
3
禁用Swift中的隐式层动画
|
![]() |
10
2
将它添加到正在实现-drawrect()方法的自定义类中。对代码进行更改以满足您的需求,对我来说,“不透明度”是停止交叉淡入淡出动画的诀窍。
|
![]() |
11
0
截至 IOS 7 有一种方便的方法可以做到这一点:
|
![]() |
12
0
要在更改catextlayer的字符串属性时禁用恼人(模糊)动画,可以执行以下操作:
然后像这样使用它(不要忘记正确设置你的catextlayer,例如正确的字体等):
您可以在这里看到我对catextlayer的完整设置:
现在,您可以根据需要更新catextlayer.string=) |
![]() |
13
0
试试这个。
警告 如果设置uiTableView实例的委托,有时会发生崩溃(可能是ScrollView的HitTest递归调用)。 |
![]() |
14
0
如果你需要一个非常快速(但必须承认是黑客)的修复,那么它可能值得你做(迅速):
|
![]() |
willThatBeAll · 如何在视图的直接层上启用动画? 7 年前 |
![]() |
Roi Mulia · 计算UIBezierPath曲线控制点 7 年前 |
![]() |
3366784 · CALayer子层在设备旋转期间不优美 7 年前 |
![]() |
Syngmaster · 带剪切段和阴影的UIView 7 年前 |
![]() |
Sweeper · 如何使自定义视图的背景色属性可设置动画? 7 年前 |