gpt4 book ai didi

iphone - 允许图层控制的绘图类

转载 作者:行者123 更新时间:2023-12-03 18:03:41 24 4
gpt4 key购买 nike

我想在Quartz的帮助下实现一个绘图类。我希望能够保存在不同图层上绘制的部分内容。我希望这些图层是可检索的,这样我就可以根据命令删除/隐藏/显示图层。

我可以将多个 CGLayerRef 保存为类的 NSMutableArray 属性,然后能够检索它们吗?如果是的话,你能给我举个例子吗?

如果上面的“架构”有任何缺陷,请向我指出可以帮助我完成对图表的分层控制的替代解决方案。

谢谢。

最佳答案

您创建的 CALayers 当然可以存储在 NSMutableArray 中,并且您可以稍后使用它们,通常是通过动画它们的属性,或要求它们重新绘制自己。

通常,您创建一个自定义 UIView,在该 View 中创建和管理层。这些层要么是该 View 的成员变量,要么将它们存储在数组中。当应用程序中发生事情时,您的 View 会相应地对图层进行动画处理。通常您希望对触摸事件使用react(您也在该特定 View 中实现 - TouchesBegan/Moved...)并对图层进行动画处理。

CALayer 会自行绘制并缓存内容,只要您调用 [layer setNeedsDisplay],或者它的边界(大小)发生更改(好吧,如果 needsDisplayOnBoundsChange 为 true )。实际上,在我所做的所有应用程序中,这种重绘很少发生 - 仅当数据发生更改并且图层需要重绘时。对图层进行动画处理、改变其大小、旋转、更改位置 - 在执行这些操作期间不会重新绘制图层。隐藏、显示、更改透明度 - 无需重绘。

您正在谈论的“绘图类” - 实际上只有两个选择 - 要么扩展 CALayer 并覆盖 drawInContext:,要么创建基本的 CALayer,设置其委托(delegate),然后在 drawLayer:inContext: 中进行绘制。我个人更喜欢创建委托(delegate)。

关于iphone - 允许图层控制的绘图类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4003202/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com