我刚刚下载了C4,并试图在我已经有滑动手势的示例代码中进行捏合手势。代码如下:
[ball addGesture:SWIPERIGHT name:@"swipeR" action:@"swipeBall"];
[ball addGesture:PINCH name:@"pinch" action:@"zoomBall"];
一旦我用PINCH添加第二行,我在编译时收到以下错误消息,这似乎很奇怪,因为PINCH列在下面的错误消息中提到的列表中。有什么想法吗?
错误讯息:
2012-10-10 00:58:06.166 Test[24121:10703] *** Assertion failure in -[MyBall addGesture:name:action:], /Users/moi/Development/C4Installer/libC4/libC4/C4Control.m:319
2012-10-10 00:58:06.184 Test[24121:10703] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'The gesture you tried to use is not one of: TAP, PINCH, SWIPERIGHT, SWIPELEFT, SWIPEUP, SWIPEDOWN, ROTATION, PAN, or LONGPRESS'
*** First throw call stack:
(0x320022 0x1730cd6 0x2c8a48 0x99c2cb 0xcdd3 0x380b 0x3190 0xe2b386 0xe2c274 0xe3b183 0xe3bc38 0xe2f634 0x3c2eef5 0x2f4195 0x258ff2 0x2578da 0x256d84 0x256c9b 0xe2bc65 0xe2d626 0x2d3d 0x2ca5)
terminate called throwing an exception(lldb)
答案 0 :(得分:1)
不幸的是,我还没有实现PINCH手势。变量可用,就像占位符一样。我希望很快就能进入API。
答案 1 :(得分:0)
我想我设法实现了这一点。
我进入c4CanvasController并将其添加到addGesture方法:
case PINCH:
recognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:NSSelectorFromString(methodName)];
break;
然后我像往常一样将手势添加到项目中:
[self addGesture:PINCH name:@"pinchme" action:@"customPinchMethod:"];
我为捏合手势回调方法定义了捏合和缩放行为。
-(void)customPinchMethod:(UIPinchGestureRecognizer*)sender {
NSLog(@"Pinching");
NSLog(@"latscale = %f",mLastScale);
mScale = sender.scale*mLastScale;
if (sender.state == UIGestureRecognizerStateEnded) mLastScale = mScale;
CGAffineTransform currentTransform = CGAffineTransformIdentity;
CGAffineTransform newTransform = CGAffineTransformScale(currentTransform, mScale ,mScale);
self.view.transform = newTransform;
}