calayer相关内容
我知道怎么做 (1) 但我该怎么做 (2)? UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 50)];CAGradientLayer *gradient = [CAGradientLayer 层];渐变.frame = view.bounds;gradient.colors = @[(id)[UIColor
..
正如在之前的 StackOverflow 问题中向我建议的那样,我正在尝试改进我的绘图方法,让我的用户在 UIView 中绘制线条/点.我现在尝试使用 CAShapeLayer 而不是 dispatch_async 进行绘制.然而,这一切都正常工作,但是,在触摸移动时连续绘制到 CAShapeLayer 变得缓慢并且路径落后,而我的旧(我被告知效率低下)代码运行得非常流畅和快速.你可以看到我在下面
..
在视图的 UIView 动画中,您可以通过将 UIViewAnimationOptionLayoutSubviews 包含在 [UIView animateWithDuration:delay:选项:动画:完成:].但是,当它们不是某些视图的支持层时,我无法找到一种方法来设置它的 子层 动画;他们只会跳到合适的位置以匹配视图的新边界.由于我使用的是图层而不是视图,似乎我必须使用核心动画而不是 UI
..
我有一个 UIView,其中包含许多 UIImageView 作为子视图.该应用程序在 iOS4 上运行,我使用具有视网膜显示分辨率的图像(即图像加载比例 = 2) 我想保存 UIView 的内容......但是......里面有图像的真实大小.IE.该视图的大小为 200x200,内部图像的比例为 2,我想保存 400x400 的结果图像以及所有图像的实际尺寸. 现在首先想到的是创建
..
我正在制作放大镜应用程序,它允许用户触摸屏幕并移动他的手指,会有一个带有手指路径的放大镜.我通过截取屏幕截图并将图像分配给放大镜图像视图来实现它,如下所示: CGSize imageSize = frame.size;UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0.0);CGContextRef c = UIGraphicsGet
..
两者具有大部分相同的属性,都支持不同类型的动画,都代表不同的数据.UIView 和 CALayer 之间有什么区别? 解决方案 在 iOS 上,每个 UIView 都由 Core Animation CALayer 支持,因此在使用 UIView 时您正在处理 CALayer,即使您可能没有意识到.与 Mac 上的 NSViews 在 Core Animation 存在之前进化不同,UIV
..
我有一个 UIView,我用以下方式定义它的边框: self.layer.borderColor = [UIColor blackColor].CGColor;self.layer.borderWidth = 3; 我将一个子视图附加到这个 UIView,当我将子视图移到边框上时,它会移到它的下方.这是预期的行为吗?有没有办法让子视图在它上面? 解决方案 根据Apple 规范:它被合成
..
一个 UIView 有一个 CALayer.那很确定.但两者似乎都提供了相同的含义. 如果我设置clipsToBounds=YES,这是否也会设置图层的masksToBounds=YES?为什么叫不同的名字?有人知道吗? 解决方案 它们是不同的名称,因为 UIView 和 CALayer 是不同的,并且有不同的相关术语,但是它们在功能上是等效的.如果你反汇编 clipsToBound
..
我有一个 UIView,它有大约 8 个不同的 CALayer 子层添加到它的层.如果我修改了视图的边界(动画),那么视图本身会缩小(我用backgroundColor检查了它),但子层的大小保持不变强>. 如何解决这个问题? 解决方案 我使用了与 Solin 相同的方法,但该代码中有一个错字.方法应该是: - (void)layoutSubviews {[超级布局子视图];//根
..
我所拥有的: 为了创建这一行,我基本上有一个 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
..
使用以下代码段,我将向我的 UIView 添加阴影效果.这很好用.但是一旦我将视图的 masksToBounds 属性设置为 YES.不再渲染阴影效果. self.myView.layer.shadowColor = [[UIColor blackColor] CGColor];self.myView.layer.shadowOpacity = 1.0;self.myView.layer.s
..
所以我一直在寻找,但还没有完全找到我要找的东西. 我有一个视图,然后是该视图的子视图.在第二个视图中,我根据给定的坐标创建 CALayer.我希望能够触摸这些 CALayer 中的任何一个并触发某些东西. 我发现了不同的代码片段,它们看起来可以提供帮助,但我一直无法实现它们. 例如: -(void)touchesEnded:(NSSet *)touches withEvent:
..
我有以下 CALayer: CAGradientLayer *gradient = [CAGradientLayer layer];渐变.frame = CGRectMake(8, 57, 296, 30);梯度.cornerRadius = 3.0f;gradient.colors = [NSArray arrayWithObjects:(id)[RGB(130, 0, 140) CGColo
..
我的 -drawInContext: 方法中有一个带有一些复杂绘图代码的图层.我试图尽量减少我需要做的绘图量,所以我使用 -setNeedsDisplayInRect: 来更新更改的部分.这工作非常出色.但是,当图形系统更新我的图层时,它会使用交叉淡入淡出从旧图像过渡到新图像.我希望它立即切换. 我尝试使用 CATransaction 关闭操作并将持续时间设置为零,但都不起作用.这是我正在使
..
在我的应用程序中 - 有四个按钮命名如下: 上 - 左 底部 - 左侧 上 - 右 底部 - 右侧 按钮上方有一个图像视图(或 UIView). 现在,假设用户点击了左上角的按钮.上面的图像/视图应该在那个特定的角落被圆角. 我在将圆角应用于 UIView 时遇到了一些困难. 现在我正在使用以下代码将圆角应用于每个视图: //imgVUserImg 是 IB
..
我已经在一个应用程序上工作了几年,并收到了一个简单的设计请求:在 UIView 上转角并添加一个投影.按照下面给出的操作. 我想要一个自定义的 UIView... :我只想要一个带圆角的空白视图和一个浅色阴影(没有灯光效果).我可以一一执行,但通常会发生 clipToBounds/maskToBounds 冲突. 解决方案 以下代码片段为 v 添加了边框、边框半径和阴影,一个 UIV
..
最近有很多关于绘制 PDF 的问题. 是的,您可以使用 UIWebView 非常轻松地呈现 PDF,但这无法提供您对优秀 PDF 查看器所期望的性能和功能. 你可以绘制一个PDF页面到一个CALayer 或 到 UIImage.Apple 甚至有示例代码来展示如何绘制大型 PDF 在可缩放的 UIScrollview 中 但同样的问题不断出现. UIImage 方法:
..
我希望对 UIView 执行透视变换(例如在 coverflow 中看到的) 有谁知道这是否可能? 我已经使用 CALayer 进行了调查,并浏览了所有实用的程序员 Core Animation 播客,但我仍然不清楚如何在 iPhone 上创建这种转换. 任何帮助、指针或示例代码片段将不胜感激! 解决方案 正如 Ben 所说,你需要使用 UIView's 层,使用 CAT
..
注意:自从提出这个问题以来,事情已经发生了变化;请参阅此处了解近期的概览. 在自动布局之前,您可以通过存储框架、设置锚点和恢复框架来更改视图层的锚点,而无需移动视图. 在自动布局的世界中,我们不再设置框架,但约束似乎无法将视图的位置调整回我们想要的位置.你可以破解约束来重新定位你的视图,但是在旋转或其他调整大小的事件中,这些再次变得无效. 以下聪明的想法不起作用,因为它创建了“无
..
如何使 CALayer 可访问?具体来说,我希望图层能够即时更改其标签,因为它可以随时更改.官方文档的示例代码 确实不允许这样做. 解决方案 以下假设你有一个超级视图,它的层都是 AccessableLayer 类,但如果你有更复杂的布局这个方案可以修改来处理. 为了使 CALayer 可访问,您需要一个实现 UIAccessibilityContainer 方法的父视图.这是一种建
..