问题标签 [calayer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
cocoa - 如何使用 CALayers 保存状态?
我有一个简单的 iphone 应用程序,它使用 CALayer 的子类绘制块,并试图找到保存状态或保留当前创建的图层的最佳方法。
我尝试使用Brad Larson 在上一个问题中关于在 NSUserDefaults 中存储自定义对象的答案,这有助于保持我的 CALayer 子类,但它不是几何和背景颜色等基本状态,所以它们在那里但没有在重新启动时呈现。
我使声明的实例变量符合 NSCoding 协议,但不知道如何在不重新声明所有属性的情况下使 CALayer 的属性执行相同的操作。或者这不是完全正确/最好的方法吗?
这是我用来存档图层数组的代码:
这是我用来在 -viewDidLoad 中重新加载图层的代码:
在 -restoreStateWithData 中:
ios - UIView的clipsToBounds和CALayer的masksToBounds是什么关系?
AUIView
有一个CALayer
。这很确定。但两者似乎都提供了相同的含义。
如果我设置clipsToBounds=YES
了,这也会设置图层masksToBounds=YES
吗?为什么不同的名字?有谁知道?
iphone - 可以使用自定义变换(理论上)在 CALayer 上创建水波纹效果吗?
可以创建自定义变换矩阵。但我想知道它们是否适合在 CALAyer 上制作水波纹效果。在动画中想象其中的 20 个。有人可以告诉吗?
objective-c - 使用 Core Animation/CALayer 进行简单的分层绘画
我想创建一个采用分层绘画方法的自定义 NSView。我想大多数图层的宽度和高度与背景视图相同。
即使我不希望需要太多动画,使用像 CALayer 这样的核心动画类来完成这个任务是否合适?有没有更合适的方法?
需要澄清的是,视图并不意味着像 Photoshop 类应用程序中的画布。它更像是一种数据显示,应该允许用户交互(选择、移动、滚动等)
iphone - CALayer drawInContext vs addSublayer
如何在同一个 UIView 中正确使用这两者?
我有一个自定义子类 CALayer,在其中我在 drawInContext 中绘制了一个模式
我有另一个,其中我将覆盖 PNG 图像设置为内容。
我有第三个只是背景。
我如何覆盖所有这 3 个项目?
如果我按照这个顺序做的话,另外两个自己会正确绘制。无论我尝试将bottomLayer放在哪里,它总是会阻止squaresLayer绘制。我需要 3 层的原因是我打算为背景和自定义层中的颜色设置动画。顶层只是一个图形覆盖。
iphone - 如何使用 CAGradientLayer?
我正在跟上 OS 3.0 中引入的新 API,尤其是对 Core Animation 的酷炫新改进(主要是在 CALayer 等上)。现在我想弄清楚如何使用 CAGradientLayer。一开始看起来很简单,但是它需要的颜色属性的 NSArray 必须包含 CGColorRef (根据头文件)。我尝试过强制转换为 (id),但是 NSArray 似乎包含 NSCFType 对象,这听起来不太好。
有人知道如何使用它或可以指出一些好的代码示例吗?
谢谢
iphone - CATiledlayer 委托未被调用
我正在尝试使用单独的委托类(就像许多示例一样)在 CATiledlayer 中执行大图像的绘制。平铺层已添加为单独视图中的子层。我首先从视图控制器开始。
我的观点目前只是一个基本观点。我想要这个在视图中,因为我稍后会将它添加到滚动视图中,它会响应触摸事件。
这就是一切都出错的地方......
尽管我为平铺层调用了 setNeedsLayout,但从不调用 drawLayer 方法,因此从不绘制图像。
ios - iPhone旋转时CALayer的自动旋转
我有一个 UIViewController,我在其中将 CALayer 子类添加到视图层:
当我旋转设备时,视图会旋转,但 CALayer 不会。它有点被分流到左边,仍然是纵向视图。
有没有办法让子层自动旋转或者我需要应用变换?
iphone - CAShaperLayer -renderInContext 不起作用?
我可以使用以下代码从 Core Animation 层创建 UIImage:
此代码在我的 CALayer 派生类中。我遇到的问题是我有两个 CAShapeLayers,它们是我的图层的子图层,它们不会渲染到结果图像。如果我将标准 CALayers 添加为子项,它们会得到很好的渲染。苹果文档说:
将接收器及其子层渲染到指定的上下文中。
它还说它从 iPhone OS 2.0 开始就可用。想知道我是否遗漏了什么,或者我是否应该提交雷达。
有什么想法可以阻止孩子 CAShapeLayers 被图像吸引吗?
谢谢。
uiview - 对 UIView 的 ivars 进行键值编码
我有兴趣在我的 UIView 更改时运行一些方法,无论是通过帧更改还是仿射变换。我最好的想法是通过观察以下值的变化来做到这一点:
myView.frame
和 myView.transform
。
但是,UIViews 的视图部分不是 Key-Value 投诉。幸运的是视图的模型部分,CALayer 是。所以我设置如下:
在 viewDidLoad: 视图的一部分。我对“框架”键做了同样的事情。但是当视图改变时,无论是通过在它的超级视图中移动视图,还是通过仿射变换,方法:
永远不会被调用。是什么赋予了?有没有更好的方法来观察 UIViews 框架的变化和变换?