【发布时间】:2023-03-15 00:30:01
【问题描述】:
我正在寻找一种方法,让 CALayer 在其子层发生变化时调整自身大小(这意味着当任何子层的边界发生变化或子层数组本身发生变化时)。
当我之前使用视图时,我通过在我的自定义 UIView 子类中实现 sizeThatFits 来管理它,只要视图的子视图发生更改,sizeToFit 就会自动调用该子类。
由于 CALayer 有 sizeThatFits-equivalent-method preferredSize,我很惊讶没有找到 sizeToFit-equivalent。
【问题讨论】:
-
我认为这是关于 sizeThatFits,而不是 sizeToFit,因为他想知道层的大小应该是多少。我能够计算该大小(通过preferredSize),但我需要一个在子视图更改时调用的方法(然后调用preferredSize 并相应地设置图层的框架)。
-
为什么不直接使用 UIView 呢?
-
CALayer 似乎更适合,我不需要触摸处理,我得到隐式动画,我不必费心转发发送给它的触摸。此外,layer-version 应该会快一些。
标签: uiview resize calayer sizetofit