【问题标题】:How to create animation for UIview that needs to pull down to up?如何为需要向上下拉的 UIview 创建动画?
【发布时间】:2014-02-27 05:23:20
【问题描述】:

我想创建一个屏幕从下拉并且需要下拉。像 iOS 通知屏幕(但方向相反)。如果有任何示例,请分享。提前致谢。

【问题讨论】:

  • 如果您可以使用第三方组件而不是PullableView 是您的正确选择,那就看看吧。

标签: ios objective-c uiviewanimation uiviewanimationtransition


【解决方案1】:

在 iOS 7 中实现此目的的完整方法是使用交互式自定义过渡。您将使用 UIScreenEdgePanGestureRecognizer 并通过执行部分过渡动画来响应屏幕边缘的拖动手势以匹配用户手指移动的距离。查看 UIPercentDrivenInteractiveTransition 类来帮助你做到这一点。

这是一个完整的例子,你可以下载并运行:碰巧我是从左边或右边做的,而不是顶部或底部,但它是相同的基本思想。

https://github.com/mattneub/Programming-iOS-Book-Examples/blob/master/bk2ch06p296customAnimation2/ch19p620customAnimation1/AppDelegate.m

但请注意:如果您尝试从顶部或底部进行操作,则会受到通知中心(顶部)和控制中心(底部)的干扰。防止这种干扰可能很棘手。

【讨论】:

  • ios6也可以吗?
  • 不,在 iOS 6 中,您必须直接拖动视图,如另一个答案中所述。但是,您将无法在该视图中使用视图控制器。它只是您拖入场景的视图。没有错!我的回答只是想指出,在 iOS 7 中,现在有一个连贯的内置方法。
  • @Master 只是因为我已经切换到 Swift。所以,现在:github.com/mattneub/Programming-iOS-Book-Examples/blob/master/…
【解决方案2】:

您好,您可以使用它。

- (void)showShareView {

    [self.view bringSubviewToFront:self.view_Email];

    [UIView beginAnimations:@"Show"
                    context:nil];
    [UIView setAnimationDuration:0.3F];

    CGRect frame = self.view_Email.frame;

    if (IS_IPHONE5) {
        if(txtFieldActiveFlag==1){
            frame.origin.y = 568-420;
        }else{
            frame.origin.y = 568-220;
        }
    } else {
        frame.origin.y = 480 - 275 - 88;
    }

    self.view_Email.frame = frame;
    [UIView commitAnimations];
}

- (void)hideShareView {

    [UIView beginAnimations:@"Show"
                    context:nil];
    [UIView setAnimationDuration:0.3F];

    CGRect frame = self.view_Email.frame;

    if (IS_IPHONE5) {

        if(txtFieldActiveFlag==2){
            frame.origin.y = 568-220;
        }else{
            frame.origin.y = 568;
        }
    } else {
        frame.origin.y = 480;
    }
    self.view_Email.frame = frame;
    [UIView commitAnimations];
}


//call method from any button action.

 [self showShareView]; //show the view up

 [self hideShareView]; //show the view down

谢谢

【讨论】:

  • 感谢您的回复。我已经完成了按钮操作。我想使用手势移动。
  • ok 然后你可以显示视图 [self showShareView]; //显示视图 [self hideShareView]; //向下显示手势识别视图。
  • 还需要手势识别码吗?
  • UIPanGestureRecognizer 和 UIEdgePanGestureRecognizer 是您应该尝试的类。如果您遇到困难,请试一试并发布您的代码。使用手势识别器的教程可以通过一个小小的谷歌广泛获得......
猜你喜欢
  • 1970-01-01
  • 2014-03-20
  • 1970-01-01
  • 1970-01-01
  • 2012-10-10
  • 2014-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多