让我向您展示示例(360 度 3D 对象旋转器):
演示:http
://activeden.net/item/interactive-renders-360-deg-3d-object-rotator/39718?ref=mixDesign
如您所见,有一个相机 3D 在鼠标事件上旋转。实际上,它是根据鼠标事件逐帧动画的图像(帧)集合。
我想用滑动手势实现这个动画- c使用滑动手势(或者我应该使用另一个手势?)。这样我就可以用手指向左、向右旋转(我想要具有平滑缓动效果的动画,具体取决于滑动速度速度)。
注意:我为每一帧准备好了图像。
示例代码,这样做的在线教程真的会帮助我。
!我应该使用一些外部图形库来保持性能吗?我有数百张图片(PNG),每张大小为 300kb
提前谢谢你,我真的需要你的帮助!
问问题
579 次
2 回答
4
touchesBegan:
也许使用,touchesMoved:
和touchesEnded:
here会更容易?这将使您能够非常快速地对速度和方向变化做出反应。
更新:示例可以在这里找到。
于 2011-11-21T10:17:28.243 回答
2
我认为您不应该在这里使用滑动手势。我建议您使用具有较短 minimumPressDuration 的 LongPressGesture。
让我展示示例代码:
longPress = [ [UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPressGesture:)]
longPress.delegate = self;
longPress.minimumPressDuration = 0.05;
[viewWithImage addGestureRecognizer:longPress];
float startX;
float displacement = 0;
-(IBAction)handleLongPressGesture:(UILongPressGestureRecognizer *)sender
{
float nowX;
if ( sender.state == UIGestureRecognizerStateBegan )
{
startX = [sender locationInView:viewWithImage].x;
}
if ( sender.state == UIGestureRecognizerStateEnded || sender.state == UIGestureRecognizerStateCancelled)
{
... do something at end ...
}
nowX = [sender locationInView:mainWidgetView].x;
displacement = nowX - startX;
// set right rotation with displacement value
[self rotateImageWith:displacement];
}
于 2011-11-18T11:44:42.200 回答