让我给您演示一个例子(360度3D物体旋转器):
演示:http://activeden.net/item/interactive-renders-360-deg-3d-object-rotator/39718?ref=mixDesign

正如你所看到的,在鼠标事件上有一个3D摄像机旋转。实际上,它是一个图像(帧)的集合,根据鼠标事件一个帧一个帧地动画。
我想用objective 实现这个动画,使用滑动手势(或者我应该使用另一个手势?)。这样我就可以用手指旋转,转到左边的,到右边的(我希望动画具有平滑的轻松效果,取决于滑动速度)。
注意:,我已经准备好了每个帧的图像。
示例代码,在线教程这样做将真正帮助我。
!为了保持性能,我应该使用一些外部图形库吗?我有数百张图片,每个图片的大小都是300 of 。
提前谢谢你,我真的需要你的帮助!
发布于 2011-11-18 11:44:42
我觉得你不应该在这里用滑动手势。我推荐你LongPressGesture和短minimumPressDuration。
让我展示一下示例代码:
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-21 10:17:28
也许在这里使用touchesBegan:、touchesMoved:和touchesEnded:更容易呢?这将使你对速度和方向的变化反应非常快。
更新:示例可以找到here。
https://stackoverflow.com/questions/8178316
复制相似问题