【发布时间】:2012-12-14 16:26:20
【问题描述】:
所以我正在使用C4 IOS 编码框架,我遇到了一些我无法弄清楚的事情。
我将两个示例一起用于 C4 github 帐户 - testScrollView 和 WalkCycle 示例。
我有一个名为 Walker 的 C4View 子类,它使用 WalkCycle 示例作为小动画角色的模板。这个字符被放置在从 testScrollView 示例创建的可滚动视图中。他添加了一个平移手势,以便用户可以将他拖到屏幕顶部,然后看着他跌倒并摔倒在底部。
唯一的问题是,当平移手势结束时,我无法调用任何类型的方法,不是来自 -(void)touchesEnded 命令,也不是来自我尝试过的其他命令。
一些类似问题的链接对我没有帮助,但可能会帮助其他人解决这个问题:
- Detecting Pan Gesture End
- Number of touches in PAN gesture is not working
- UIViewController not responding properly to gestures...
我完全没有受过教育和毫无根据的预感是它与步行者是 C4View 的孩子有关,因为我在识别 touchesEnded 与 c4shapes 和图像时没有这个问题。
我不太确定要发布什么代码,但这里是 Walker.m 中的相关部分;
-(void)setup {
walkA = [C4Image animatedImageWithNames:@[@"beaviswalk1.tiff",
@"beaviswalk2.tiff",
@"beaviswalk3.tiff",
@"beaviswalk4.tiff",
@"beaviswalk5.tiff",
@"beaviswalk6.tiff",
@"beaviswalk7.tiff",
@"beaviswalk8.tiff",
@"beaviswalk9.tiff",
]];
[self addImage:walkA];
currentImage = walkA;
[walkA play];
mover = [C4Timer automaticTimerWithInterval:0.05f target:self method:@"walking" repeats:YES];
[self addGesture:TAP name:@"tapGesture" action:@"trip"];
[self addGesture:PAN name:@"panGesture" action:@"move:"];}
并且touchesEnded:
-(void)touchesEnded {
C4Log(@"touches Ended");
}
看着 Walker.h,我突然意识到一些奇怪的事情;
#import "C4View.h"
@interface Walker : C4Image
-(id)initWithFrame:(CGRect)frame;
-(void)play;
-(void)switchWalkCycle;
-(void)trip;
-(void)bleed;
-(void)walking;
-(void)touchesEnded;
-(void)noTouching;
@end
我在某个时候将@interface 更改为 C4Image,当时它似乎没有任何效果,让我可以使用 TAP 和 PAN 手势。直到现在......将它改回 C4View 将消除对所有手势的支持。我想问题出在哪里?
如果有一个简单的解决方案,我深表歉意,但我在尝试解决这个问题时很迷茫。
【问题讨论】:
-
这里发生了两件不同的事情。首先,C4View 对象没有完全实现,因此 C4Control 对象的手势识别功能还没有工作。第二,……我不确定。我会尽快看看这两个问题。