drawLayer 未在 initWithCoder 中调用



我正在尝试复制具有某些属性的UIView。UIView 将覆盖绘制图层:方法来绘制自定义形状。

我正在使用NSKeyedArchiver,一个粘贴板和NSKeyedUnarchiver来取回属性。创建 UIView 的实例并设置属性 - 到目前为止一切都很好。

某些属性是在绘图层方法中创建的,这些属性具有默认值,而不是复制的值。我的问题是,当调用 initWithCoder 并创建一个实例时,不是调用 drawRect 或 drawLayer 吗?为什么?

内容需要渲染或重新渲染时,按需(少量)调用drawLayer/drawRect。初始化期间可能不会调用它,因为没有必要。稍后,当视图出现在屏幕上并需要呈现时,应调用它。

另外,您说您要在绘图层中创建一些属性?请考虑将它们移到某个初始化方法中,并使绘制方法仅专注于绘制。

相关内容

  • 没有找到相关文章

最新更新