首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在iPad上方便地动画化帧图像

问在iPad上方便地动画化帧图像
EN

Stack Overflow用户
提问于 2011-11-18 05:51:36
回答 2查看 581关注 0票数 1

让我给您演示一个例子(360度3D物体旋转器):

演示:http://activeden.net/item/interactive-renders-360-deg-3d-object-rotator/39718?ref=mixDesign

正如你所看到的,在鼠标事件上有一个3D摄像机旋转。实际上,它是一个图像(帧)的集合,根据鼠标事件一个帧一个帧地动画。

我想用objective 实现这个动画,使用滑动手势(或者我应该使用另一个手势?)。这样我就可以用手指旋转,转到左边的,到右边的(我希望动画具有平滑的轻松效果,取决于滑动速度)。

注意:,我已经准备好了每个帧的图像。

示例代码,在线教程这样做将真正帮助我。

!为了保持性能,我应该使用一些外部图形库吗?我有数百张图片,每个图片的大小都是300 of 。

提前谢谢你,我真的需要你的帮助!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-18 11:44:42

我觉得你不应该在这里用滑动手势。我推荐你LongPressGesture和短minimumPressDuration。

让我展示一下示例代码:

代码语言:javascript
复制
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];
}
票数 2
EN

Stack Overflow用户

发布于 2011-11-21 10:17:28

也许在这里使用touchesBegan:、touchesMoved:和touchesEnded:更容易呢?这将使你对速度和方向的变化反应非常快。

更新:示例可以找到here。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8178316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档