如何使用从Facebook Origami导出的iOS代码?

如何使用从Facebook Origami导出的iOS代码?,ios,facebook-pop,Ios,Facebook Pop,各位动画专家大家好 我在Facebook上偶然发现了折纸,它在iOS上使用流行音乐库 所有的教程(在他们的网站上+其他任何地方在线)似乎都集中在掌握石英作曲家方面。我对如何获取导出的代码感兴趣(单击QC中的折纸图标并选择导出iOS代码) 进入我的iOS应用程序 因此,我开始下载“2D Waggle”示例: 以下是导出的代码的外观: #导入“ViewController.h” #进口 #进口 @界面视图控制器() @属性(非原子)CGFloat popAnimationProgress; @属

各位动画专家大家好

我在Facebook上偶然发现了折纸,它在iOS上使用流行音乐库

所有的教程(在他们的网站上+其他任何地方在线)似乎都集中在掌握石英作曲家方面。我对如何获取导出的代码感兴趣(单击QC中的折纸图标并选择导出iOS代码) 进入我的iOS应用程序

因此,我开始下载“2D Waggle”示例:

以下是导出的代码的外观:

#导入“ViewController.h”
#进口
#进口
@界面视图控制器()
@属性(非原子)CGFloat popAnimationProgress;
@属性(非原子)CGFloat popAnimationProgress;
@结束
@实现视图控制器
//流行动画转换
-(void)切换PopAnimation:(BOOL)打开{
POPSpringAnimation*动画=[self pop_animationForKey:@“popAnimation”];
如果(!动画){
动画=[POPSpringAnimation];
animation.springbouncity=5;
animation.springSpeed=10;
animation.property=[POPAnimatableProperty propertyWithName:@“popAnimationProgress”初始值设定项:^(POPMutableAnimatableProperty*prop){
prop.readBlock=^(ViewController*obj,CGFloat值[]){
值[0]=obj.popAnimationProgress;
};
prop.writeBlock=^(视图控制器*obj,常量CGFloat值[]){
obj.popAnimationProgress=值[0];
};
道具阈值=0.001;
}];
[self pop_addAnimation:animation forKey:@“popAnimation”];
}
animation.toValue=on?@(1.0):@(0.0);
}
-(void)setPopAnimationProgress:(CGFloat)进度{
_popAnimationProgress=进度;
POPLayerSetTranslationX(self.layer.layer,POPPixelsToPoints(progress));
}
//流行动画转换
-(void)切换PopAnimation:(BOOL)打开{
POPSpringAnimation*动画=[self pop_animationForKey:@“popAnimation”];
如果(!动画){
动画=[POPSpringAnimation];
animation.springbouncity=5;
animation.springSpeed=10;
animation.property=[POPAnimatableProperty propertyWithName:@“popAnimationProgress”初始值设定项:^(POPMutableAnimatableProperty*prop){
prop.readBlock=^(ViewController*obj,CGFloat值[]){
值[0]=obj.popAnimationProgress;
};
prop.writeBlock=^(视图控制器*obj,常量CGFloat值[]){
obj.popAnimationProgress=值[0];
};
道具阈值=0.001;
}];
[self pop_addAnimation:animation forKey:@“popAnimation”];
}
animation.toValue=on?@(1.0):@(0.0);
}
-(void)setPopAnimationProgress:(CGFloat)进度{
_popAnimationProgress=进度;
PopLayerSetTranslation(self.layer.layer,POPPixelsToPoints(-progress));
}
//公用事业
静态内联CGFloat POPPixelsToPoints(CGFloat像素){
静态CGFloat标度=-1;
如果(刻度<0){
比例=[UIScreen mainScreen]。比例;
}
返回像素/比例;
}
下面是我试图用来与生成的内容交互的代码:

-(void)从NIB唤醒
{
UIPanGestureRecognizer*pan=[[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(move:)];
[自添加动作识别器:pan];
}
静态浮点firstX=0,firstY=0;
-(无效)移动:(id)发件人{
[self-bringSubviewToFront:[(UIPangestureRecognitor*)发件人视图]];
CGPoint translatedPoint=[(UIPangestureRecognitor*)发送方翻译视图:self];
if([(UIPangestureRecognitizer*)发送方状态]==UIgestureRecognitizerStateStart){
firstX=[[sender view]center].x;
firstY=[[sender view]center].y;
[自切换PopAnimationX:是];
[自切换PopAnimationy:是];
}
else if([(UIPanGestureRecognizer*)发送方状态]==UIGestureRecognizerStateEnded){
[自切换PopAnimationX:否];
[自切换PopAnimationy:否];
}
translatedPoint=CGPointMake(firstX+translatedPoint.x,firstY+translatedPoint.y);
//
如果([(UIPangestureRecognitzer*)发送方状态]==UIgestureRecognitzerStateChanged){
POPLayerSetTranslationX(self.layer,translatedPoint.x);
POPLayerSetTranslationY(self.layer,translatedPoint.y);
//[[sender view]设置中心:translatedPoint];
}
}
可以说,这不起作用:(

所以我想我的问题是如何启动动画

我想做的是在QC折纸中模拟“滑动”输入补丁(见屏幕截图)

如果有人知道我做错了什么,以及如何正确调用动画,我将不胜感激


非常感谢!

关键是为屏幕截图中的每个框/动画/设置命名,使其具有自己的
objectName
,以便您知道它所指的CA层。然后,在导出代码时,每个
popAnimation
将具有特定名称并应用于特定对象

例如: 而不是

@property (nonatomic) CGFloat popAnimationProgress;
self.layer.layer
你会看到的

@property (nonatomic) CGFloat popAnimationProgress_Object1;
self.object2.layer