草庐IT

objective-c - 淡出 UIView?

我这里有一个UIView,我想部分淡化它的底部。基本上我希望alpha值在我们去的UIView上进一步降低。所以UIView的顶部是完全可见的,而底部的alpha值为0。有人对如何完成此任务有任何建议吗? 最佳答案 CALayer有一个名为mask的属性,它就是为实现这种效果而设计的。如果您将另一个CALayer分配给mask(一个没有超层的CALayer),则在合成第一个CALayer时会使用第二个CALayer的alphachannel。不过要小心,因为使用mask属性会严重影响性能。

ios - CALayer.contents 在 UI 线程中绘制?

您能否确认在后台线程中使用CGImageRef设置CALayer.contents属性仍然会使核心动画在主线程循环(即UI线程)中绘制内容图像,而不是设置内容属性的核心动画线程或自定义后台线程?我问这个问题的原因是核心动画运行它自己的线程,但是,当您设置CALayer.contents属性时,UI线程似乎会绘制到图层? 最佳答案 我的经验是,如果你有一个可见层并在后台线程中设置内容,很可能不会立即绘制。我使用的解决方案是在主线程上调用dispatch_async()异步设置内容属性:dispatch_async(dispatch_g

objective-c - 在 iPad 上渲染数百个椭圆并不断更新的最快方法?

我想到的两种方法是1)每个点一个CALayer2)一个CALayer绘制所有的点当我使用加速度计时,所有的点都会改变颜色。我正在使用计时器来更新颜色,并覆盖了drawInContext以绘制当前颜色(两种颜色的插值)。 最佳答案 对于数百个,我会绘制到一层(或在两层之间翻转)以提高效率。如果这还不够流畅,OpenGL是下一个要研究的选项。 关于objective-c-在iPad上渲染数百个椭圆并不断更新的最快方法?,我们在StackOverflow上找到一个类似的问题:

ios - 如何为不同的对象链接和分组核心动画?

假设我有3个CALayer(例如,不同颜色的正方形)。我想执行以下动画:layer1同时从位置A平移和缩放到位置B。一旦第1层处于新位置并具有新大小,第2层和第3层同时分别从位置C和D转换到位置E和F。这些层(2和3)在转换为E和F时也会淡入。但是layer2也会在转换时缩放,而layer3只是转换(但是使用CAKeyframeAnimation这样当它到达点F时它会产生一点弹性的上下效果).对于第1层,我可以:创建一个CABasicAnimation,唯一的持续时间设置为,说1,并将其添加到layer1以创建翻译的关键“转换”缩放变换并将其应用于图层layer2与layer1相同,但

ios - CALayer 性能不佳?

几周来我一直在为这个问题而苦苦挣扎。总之,CALayer很糟糕。它们会造成很大的延迟,让我的UI看起来更糟。几乎我有一个简单的UITableView,我已经最大限度地提高了效率,并且滚动时的所有延迟都来自3行代码:CALayer*imageLayer2=[cell.imageViewlayer];[imageLayer2setMasksToBounds:YES];[imageLayer2setCornerRadius:10.0];我已经尝试将setMaskToBounds设置为NO,但是没有圆角应用于我的UIImageView。由于一些奇怪的原因,这个问题在iPad上似乎比在iPhon

iphone - CALayer的效率和极限是多少

在我的iPhone应用程序中,我需要显示大量(最多150个)10x10像素的小点,它们会在屏幕上单独移动。它们不需要以任何方式平稳移动,但需要每秒左右更新一次。目前,我将其实现为每秒重绘的单个CALayer。但我知道CALayers非常高效,因为它们映射到GPU硬件。所以我想知道为每个点创建一个单独的CALayer并通过设置它们的位置属性来移动它是否会更有效(就电池使用而言)。所以我想知道您是否有这方面的经验。CPU要做的事情更少,而GPU要做的事情更多。GPU硬件还能处理多少CALayer?如果我让它们分开CALayers,我也可以轻松地为它们制作动画,这样看起来会好得多。这会消耗更

objective-c - If 语句在多个 CALayer 之间进行选择

我在boxLayer上有一个CoreAnimation图像,我正在复制它,改变第二个(boxLayer2)的Action并移动它的位置,以便有人可以在两个图像之间进行选择。我希望用户能够点击boxLayer的图像,而boxLayer2图像除了boxLayer移动外什么都不做(除了接收触摸我没有包含我的动画代码),反之亦然。我无法使用if语句。我尝试了多种变体self.layer==boxLayer或CALayer==boxlayer...sublayer是一个数组,所以就这样了。如果我知道我遗漏了什么,任何帮助/解释都将不胜感激。谢谢!UIView*BounceView在VC中声明在B

iOS 从 UIViews 创建 PDF

我目前正在使用CALayer和renderInContext方法从iOS中的UIView创建PDF文档。我面临的问题是标签的清晰度。我创建了一个覆盖drawLayer的UILabel子类,如下所示:/**OverridingthisCALayerdelegatemethodisthemagicthatallowsustodrawavectorversionofthelabelintothelayerinsteadofthedefaultunscalableuglybitmap*/-(void)drawLayer:(CALayer*)layerinContext:(CGContextRe

ios - UIKit 和 QuartzCore 共享 CALayer 的 EXC_BAD_ACCESS

我正在试验一个我无法解决的EXC_BAD_ACCESS错误,所以在这里我将它介绍给你希望得到一些帮助:)一般我都是用instruments-zombies来解决这种错误,但是这次好像没那么容易...正如您在附图中看到的,看起来我与这个对象没有任何交互;它仅由UIKit和QuartzCore保留/发布,所以我不知道去哪里寻找或如何解决它。有什么提示吗?谢谢!图片网址:http://i.stack.imgur.com/6R7f0.png 最佳答案 既然你说你正在使用多线程,我很确定这是你的问题:虽然自iOS4起UIKit就被标榜为线程安

objective-c - CALayer 和 View 消失了

我有一个用CATiledLayer管理的大图像(如LargeImageDownsizingiOSsamplecode)。我有一个绘图View(用绘图方法覆盖了UIView),但是当我放大很多时,我收到以下消息并且我的View消失了..-[display]:Ignoringboguslayersize(25504.578125,15940.361328)有没有办法避免这种情况? 最佳答案 听起来像您设置的levelsOfDetail和levelsOfDetailBias允许比平铺层允许的缩放更多,给定图层允许的最大图层大小。尝试更改这