我试图在这里学习关于iOS粒子系统的教程:http://www.raywenderlich.com/6063/uikit-particle-systems-in-ios-5-tutorial
我很难将C4Workspace.m中的self.canvas.layer转换为CAEmitterLayer。代码编译得很好,但在运行时失败了。
我试过这个:
particlesystem = (CAEmitterLayer *)self.canvas.layer;但我每次都会收到这个错误。
-[C4Layer setEmitterPosition:]: unrecognized selector sent to instance 0xa183830我似乎没有正确地铸造或暴露方法。我该怎么做?
发布于 2013-12-06 23:01:14
您不能简单地将一个层转换为另一个层。为了使视图具有非标准层,需要对其进行子类并定义+layerClass方法:
@implementation MyViewSubclass
+ (Class)layerClass {
return [CAEmitterLayer class];
}
...不幸的是,您正在使用的视图已经设置了一个自定义层, which can be seen on GitHub。这一层做了很多事情,你不想尝试替换它。
您可以做的是将您自己的子层插入到您的画布中:
CAEmitterLayer *myLayer = [CAEmitterLayer layer];
myLayer.frame = self.canvas.bounds;
[self.canvas.layer addSublayer:myLayer];这个发射器层现在将覆盖你的图层,你可以添加任何你想要的效果。如果您希望发射器低于其他层,您可以使用insertSublayer:myLayer atIndex:0。
https://stackoverflow.com/questions/20434959
复制相似问题