0

我想知道如何实现一个动画,用户可以用手指将一个视图滑过另一个视图。为了简化事情,我将发布一些图片来解释我的意思。

首先,我们有一个视图,其中有一个设置图标(左上角的那个粉红色的东西)。可以通过任何必要的方式操作视图 - 包括滑动。见图 1。 图片1

当用户按下设置按钮时,视图会滑开并在下方显示设置视图。为此,我只需使用[UIView beginAnimations:nil context:nil]调整主视图frame并提交动画。情况是这样的:(设置是紫色,主视图还是一样的颜色)

图2

现在,当用户决定要返回主屏幕时,他必须抓住它并将其滑回原位。如何?现在我一直在使用UITapGestureRecognizer它来触发反向动画,以便视图滑回原来的位置。这很混乱,用户仍然能够操纵可见的一小部分视图。

我希望视图跟随用户的手指并滑动并缩放其原位。主视图在移动时不应该是可操作的。要理解我的意思,你可以查看雅虎天气应用程序,它发生了类似的事情——除了我的视图也会垂直缩小一点。第三张图片显示了“运动中”的事物:

图3

请提供可以帮助我完成此任务的链接或代码。
干杯,简。

4

1 回答 1

0

看看这段代码:

  1. MMDrawerController
  2. MSMatrix 控制器

你可以试试这个

-(void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {

    UITouch *touch = [[touches allObjects] objectAtIndex:0];
    CGPoint touchPt = [touch locationInView:self];

    float deltaX = touchPt.x - beginPt.x; //where beginPt is CGPoint variable which was set in touches began
    float deltaY = touchPt.y - beginPt.y;
    if (deltaX < 0) {
        deltaX = -deltaX;
    }
    if (deltaY < 0) {
        deltaY = -deltaY;
    }

    CGPoint toPt;
    toPt.x = deltaX;
    toPt.y = deltaY;

    yourMovedView.center = toPt;
}
于 2013-08-17T16:58:36.413 回答