calayer相关内容

touchesMoved 在 CAShapeLayer 缓慢/滞后的绘图

正如在之前的 StackOverflow 问题中向我建议的那样,我正在尝试改进我的绘图方法,让我的用户在 UIView 中绘制线条/点.我现在尝试使用 CAShapeLayer 而不是 dispatch_async 进行绘制.然而,这一切都正常工作,但是,在触摸移动时连续绘制到 CAShapeLayer 变得缓慢并且路径落后,而我的旧(我被告知效率低下)代码运行得非常流畅和快速.你可以看到我在下面 ..
发布时间:2021-12-31 21:12:10 移动开发

在 UIView 动画期间,如何为 UIView 层的子层设置动画?

在视图的 UIView 动画中,您可以通过将 UIViewAnimationOptionLayoutSubviews 包含在 [UIView animateWithDuration:delay:选项:动画:完成:].但是,当它们不是某些视图的支持层时,我无法找到一种方法来设置它的 子层 动画;他们只会跳到合适的位置以匹配视图的新边界.由于我使用的是图层而不是视图,似乎我必须使用核心动画而不是 UI ..
发布时间:2021-12-31 21:03:17 移动开发

使用内部图像的实际大小在 iOS 4 中保存 UIView 内容(即放大内容以进行保存)

我有一个 UIView,其中包含许多 UIImageView 作为子视图.该应用程序在 iOS4 上运行,我使用具有视网膜显示分辨率的图像(即图像加载比例 = 2) 我想保存 UIView 的内容......但是......里面有图像的真实大小.IE.该视图的大小为 200x200,内部图像的比例为 2,我想保存 400x400 的结果图像以及所有图像的实际尺寸. 现在首先想到的是创建 ..
发布时间:2021-12-31 20:48:11 移动开发

如何更快地将视图渲染为图像?

我正在制作放大镜应用程序,它允许用户触摸屏幕并移动他的手指,会有一个带有手指路径的放大镜.我通过截取屏幕截图并将图像分配给放大镜图像视图来实现它,如下所示: CGSize imageSize = frame.size;UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0.0);CGContextRef c = UIGraphicsGet ..
发布时间:2021-12-31 20:45:59 移动开发

UIView 和 CALayer 之间有什么区别?

两者具有大部分相同的属性,都支持不同类型的动画,都代表不同的数据.UIView 和 CALayer 之间有什么区别? 解决方案 在 iOS 上,每个 UIView 都由 Core Animation CALayer 支持,因此在使用 UIView 时您正在处理 CALayer,即使您可能没有意识到.与 Mac 上的 NSViews 在 Core Animation 存在之前进化不同,UIV ..
发布时间:2021-12-31 20:45:39 移动开发

子视图出现在父视图 layer.border 下?

我有一个 UIView,我用以下方式定义它的边框: self.layer.borderColor = [UIColor blackColor].CGColor;self.layer.borderWidth = 3; 我将一个子视图附加到这个 UIView,当我将子视图移到边框上时,它会移到它的下方.这是预期的行为吗?有没有办法让子视图在它上面? 解决方案 根据Apple 规范:它被合成 ..
发布时间:2021-12-31 20:41:37 移动开发

UIView 的 clipsToBounds 和 CALayer 的 maskToBounds 之间的关系如何?

一个 UIView 有一个 CALayer.那很确定.但两者似乎都提供了相同的含义. 如果我设置clipsToBounds=YES,这是否也会设置图层的masksToBounds=YES?为什么叫不同的名字?有人知道吗? 解决方案 它们是不同的名称,因为 UIView 和 CALayer 是不同的,并且有不同的相关术语,但是它们在功能上是等效的.如果你反汇编 clipsToBound ..
发布时间:2021-12-31 20:40:10 移动开发

CALayers 没有在其 UIView 的边界变化时调整大小.为什么?

我有一个 UIView,它有大约 8 个不同的 CALayer 子层添加到它的层.如果我修改了视图的边界(动画),那么视图本身会缩小(我用backgroundColor检查了它),但子层的大小保持不变强>. 如何解决这个问题? 解决方案 我使用了与 Solin 相同的方法,但该代码中有一个错字.方法应该是: - (void)layoutSubviews {[超级布局子视图];//根 ..
发布时间:2021-12-31 20:37:03 移动开发

带有虚线的 UIView

我所拥有的: 为了创建这一行,我基本上有一个 UIView 并且我执行以下操作: void setLayerToLineFromAToB(CALayer *layer, CGPoint a, CGPoint b, CGFloat lineWidth){CGPoint 中心 = { 0.5 * (a.x + b.x), 0.5 * (a.y + b.y) };CGFloat 长度 = sqr ..
发布时间:2021-12-31 20:35:31 移动开发

触摸 CALayer 时触发操作?

所以我一直在寻找,但还没有完全找到我要找的东西. 我有一个视图,然后是该视图的子视图.在第二个视图中,我根据给定的坐标创建 CALayer.我希望能够触摸这些 CALayer 中的任何一个并触发某些东西. 我发现了不同的代码片段,它们看起来可以提供帮助,但我一直无法实现它们. 例如: -(void)touchesEnded:(NSSet *)touches withEvent: ..
发布时间:2021-12-29 08:43:43 移动开发

在 -[CALayer setNeedsDisplayInRect:] 中禁用隐式动画

我的 -drawInContext: 方法中有一个带有一些复杂绘图代码的图层.我试图尽量减少我需要做的绘图量,所以我使用 -setNeedsDisplayInRect: 来更新更改的部分.这工作非常出色.但是,当图形系统更新我的图层时,它会使用交叉淡入淡出从旧图像过渡到新图像.我希望它立即切换. 我尝试使用 CATransaction 关闭操作并将持续时间设置为零,但都不起作用.这是我正在使 ..
发布时间:2021-12-03 10:57:36 移动开发

使用 CALayer 的圆形 UIView - 只有一些角落 - 如何?

在我的应用程序中 - 有四个按钮命名如下: 上 - 左 底部 - 左侧 上 - 右 底部 - 右侧 按钮上方有一个图像视图(或 UIView). 现在,假设用户点击了左上角的按钮.上面的图像/视图应该在那个特定的角落被圆角. 我在将圆角应用于 UIView 时遇到了一些困难. 现在我正在使用以下代码将圆角应用于每个视图: //imgVUserImg 是 IB ..
发布时间:2021-12-02 17:44:54 移动开发

带有圆角和阴影的 UIView?

我已经在一个应用程序上工作了几年,并收到了一个简单的设计请求:在 UIView 上转角并添加一个投影.按照下面给出的操作. 我想要一个自定义的 UIView... :我只想要一个带圆角的空白视图和一个浅色阴影(没有灯光效果).我可以一一执行,但通常会发生 clipToBounds/maskToBounds 冲突. 解决方案 以下代码片段为 v 添加了边框、边框半径和阴影,一个 UIV ..
发布时间:2021-12-01 17:24:09 移动开发

适用于 iPhone/iPad/iOS 的快速精益 PDF 查看器 - 提示和提示?

最近有很多关于绘制 PDF 的问题. 是的,您可以使用 UIWebView 非常轻松地呈现 PDF,但这无法提供您对优秀 PDF 查看器所期望的性能和功能. 你可以绘制一个PDF页面到一个CALayer 或 到 UIImage.Apple 甚至有示例代码来展示如何绘制大型 PDF 在可缩放的 UIScrollview 中 但同样的问题不断出现. UIImage 方法: ..
发布时间:2021-12-01 17:21:16 移动开发

如何将透视变换应用于 UIView?

我希望对 UIView 执行透视变换(例如在 coverflow 中看到的) 有谁知道这是否可能? 我已经使用 CALayer 进行了调查,并浏览了所有实用的程序员 Core Animation 播客,但我仍然不清楚如何在 iPhone 上创建这种转换. 任何帮助、指针或示例代码片段将不胜感激! 解决方案 正如 Ben 所说,你需要使用 UIView's 层,使用 CAT ..
发布时间:2021-12-01 17:17:01 移动开发

使用自动布局时,如何调整 CALayer 的锚点?

注意:自从提出这个问题以来,事情已经发生了变化;请参阅此处了解近期的概览. 在自动布局之前,您可以通过存储框架、设置锚点和恢复框架来更改视图层的锚点,而无需移动视图. 在自动布局的世界中,我们不再设置框架,但约束似乎无法将视图的位置调整回我们想要的位置.你可以破解约束来重新定位你的视图,但是在旋转或其他调整大小的事件中,这些再次变得无效. 以下聪明的想法不起作用,因为它创建了“无 ..
发布时间:2021-11-30 21:02:19 移动开发

CALayer 的动态无障碍标签

如何使 CALayer 可访问?具体来说,我希望图层能够即时更改其标签,因为它可以随时更改.官方文档的示例代码 确实不允许这样做. 解决方案 以下假设你有一个超级视图,它的层都是 AccessableLayer 类,但如果你有更复杂的布局这个方案可以修改来处理. 为了使 CALayer 可访问,您需要一个实现 UIAccessibilityContainer 方法的父视图.这是一种建 ..
发布时间:2021-11-26 19:23:06 移动开发