我想知道如何实现动画,用户可以用手指将一个视图滑过另一个视图。为简化起见,我将发布一些图片来解释我的意思。
首先我们有一个视图,它有一个设置图标(左上角是粉红色的东西)。可以通过任何必要的方式操纵视图 - 包括滑动。见图1。
当用户按下设置按钮时,视图会滑开并显示下方的设置视图。为此,我只需使用[UIView beginAnimations:nil context:nil]
调整主视图frame
并提交动画。情况如下:(设置为紫色,主视图仍为相同颜色)
现在,当用户决定要将主屏幕恢复时,他必须抓住它并将其滑回原位。怎么样?现在我一直在使用UITapGestureRecognizer
来触发反向动画,以便视图滑回原来的位置。这很混乱,用户仍然可以操作视图的那一小部分。
我希望视图跟随用户的手指并滑动并缩回其位置。移动时主视图不应该可操作。要理解我的意思,你可以查看雅虎天气应用程序,它有类似的事情发生 - 除了我的视图也会垂直缩小。第三张图片展示了“运动中”:
请提供可帮助我完成此任务的链接或代码。
干杯,Jan。
答案 0 :(得分:0)
看看这段代码:
你可以试试这个
-(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;
}