草庐IT

CAEmitterLayer

全部标签

iphone - 使用 CAEmitterLayer 围绕圆或 CGPath 绘制粒子

我正在尝试使用iOS5的粒子系统(CAEmitterLayer和CAEmitterCell)围绕一个圆圈绘制粒子(或者更好的是,CGPath),但我不知道该怎么做。我能做的最好的事情就是画一个圆弧(通过修改CAEmitterCell的yAcceleration属性),但我不能做一个完整的圆。当然,我可以做多个弧来模拟一个圆,但是“结”非常明显。另外,我不想使用蒙版,因为看起来边缘的粒子被裁剪了。任何想法如何做到这一点? 最佳答案 您可以使用CAKeyframeAnimation为发射器位置设置动画:CAKeyframeAnimati

objective-c - iOS:在屏幕上捕获 CAEmitterLayer 粒子

有没有办法在捕获ios设备屏幕时捕获CAEmitterCells(使用CAEmitterLayer生成)?UIGetScreenImage()有效,但由于它是一个私有(private)方法,我不允许使用它。UIGraphicsBeginImageContext似乎不起作用,粒子只是从生成的图像中省略了。编辑:这是我当前用于捕获View的代码。我实际上正在使用aroth在here提供的代码录制一段30秒长的屏幕视频。.它的工作原理是每秒记录25张自身(它的一个UIView子类)及其subview(在我们的例子中包括UIView,其层是CAEmitterLayer)的图像,并使用AVAss

ios - CAEmitterLayer 负 beginTime 可能吗?

我正在尝试让CAEmitterLayer和CAEmitterCell从它们父级持续时间中间的某个地方开始它们的动画。这可能吗?我尝试使用beginTime和timeOffset属性,但似乎无法正常工作。为后代添加了一些代码:(假设我希望发射器在第5秒开始)CAEmitterLayer*emitter=[CAEmitterLayernew];//emitter.beginTime=-5.0f;//Itriedthis//emitter.timeOffset=5.0f;//Ialsotriedthis,withbeginTime=0.0,andwithbeginTime=AVCoreAni

ios - 发射开始后更改 CAEmitterLayer 的 CAEmitterCell 属性

当我第一次设置发射器时,我可以这样做:self.cell=[CAEmitterCellemitterCell];self.cell.yAcceleration=20;...self.emitter.emitterCells=[NSArrayarrayWithObjects:self.cell,nil];但是假设我创建了一个5秒后触发的计时器,我这样做了:-(void)timerFired{self.cell.yAcceleration=-10;}计时器触发,但CAEmitterCell的yAcceleration没有改变。或者至少屏幕上的粒子发射没有任何变化。我怎样才能让CAEmitt

swift - 使用 CAEmitterLayer 的屏幕截图 View

是否可以对包含CAEmitterLayer的View进行屏幕截图?每当我尝试时,View都创建得很好,但是所有的粒子都丢失了,这是我的代码:UIGraphicsBeginImageContext(drawingView.frame.size)varcontext:CGContextRef=UIGraphicsGetCurrentContext()drawingView.layer.renderInContext(context)letimage=UIGraphicsGetImageFromCurrentImageContext()UIGraphicsEndImageContext()r

objective-c - CAEmitterLayer 在触摸事件中随机发射不需要的粒子

我正在尝试设置一个CAEmitterLayer来制作五彩纸屑效果,我遇到了两个问题:每当我将单元格上的birthRate设置为非零值以启动动画时,我都会在屏幕上随机放置一系列单元格,这些单元格可以正常动画,然后发射器继续正常发射之后。每当emitterCells在屏幕上绘制东西时,只要我触摸屏幕,发射器就会在(看似)存在的随机位置(看似)中绘制emitterCells随机时间。发射器中的任何内容都与任何触摸事件无关(即我不是故意在触摸事件上绘制任何东西),但该层位于具有多个嵌入式View的View中。我触摸的次数越多,显示的单元格就越多。这是我设置发射器的代码,然后启动和停止它(一旦我

CAEmitterLayer动画的开始和结束

有个需求,要求模仿微信做表情下雨的动画,一开始想用CAEmitterLayer,实现的代码如下://期望:显示特效五秒后结束特效UIImage*image=[UIImageimageNamed:@"snow_white"];CGRectendRect=self.view.frame;UIView*layerView=[[UIViewalloc]initWithFrame:endRect];//方便看到有view增加到里面layerView.backgroundColor=[UIColorcolorWithRed:1green:0blue:0alpha:0.1];layerView.userIn

CAEmitterLayer动画的开始和结束

有个需求,要求模仿微信做表情下雨的动画,一开始想用CAEmitterLayer,实现的代码如下://期望:显示特效五秒后结束特效UIImage*image=[UIImageimageNamed:@"snow_white"];CGRectendRect=self.view.frame;UIView*layerView=[[UIViewalloc]initWithFrame:endRect];//方便看到有view增加到里面layerView.backgroundColor=[UIColorcolorWithRed:1green:0blue:0alpha:0.1];layerView.userIn