【问题标题】:Change dismissViewControllerAnimated's animation改变dismissViewControllerAnimated的动画
【发布时间】:2014-11-12 01:26:06
【问题描述】:

我有一个方法

- (void) swipeRight
{
[self dismissViewControllerAnimated:YES completion:nil];
}

当用户向右滑动时,我使用它来关闭视图控制器。 当您关闭视图控制器(页面关闭)时,我不太喜欢苹果提供的动画,我想将其更改为苹果提供的不同动画,同时仍使用dismissViewControllerAnimated 方法。 谁能帮我改一下?

【问题讨论】:

标签: ios objective-c animation uiviewcontroller


【解决方案1】:

献给@Tomaž Stoiljkovič(以及对 Swift 4 感兴趣的任何人)

    let transition = CATransition()
    transition.duration = 0.3
    transition.type = kCATransitionFade
    transition.subtype = kCATransitionFromTop

    navigationController?.view.layer.add(transition, forKey: kCATransition)
    self.dismissViewControllerAnimated(false, completion: nil)

【讨论】:

    【解决方案2】:

    试着在你解雇之前把这个放在:

    CATransition* transition = [CATransition animation];
            transition.duration = 0.3;
            transition.type = kCATransitionFade;
            transition.subtype = kCATransitionFromTop;
    

    然后设置动画:NO

    [self.navigationController.view.layer addAnimation:transition forKey:kCATransition];
    [self dismissViewControllerAnimated:NO completion:nil];
    

    -- 更多过渡类型你可以尝试:

    kCATransitionFade;
    kCATransitionMoveIn;
    kCATransitionPush;
    kCATransitionReveal;
    

    【讨论】:

    • 我没有使用导航控制器,在这种情况下我正在手动完成所有操作,所以这对我不起作用。你能更新吗?谢谢 =)
    • 不确定,你可以试试 self.view.layer... 代替 self.navigationController.view.layer
    • 这个 swift 版本怎么样?
    猜你喜欢
    • 2012-06-20
    • 2013-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-24
    相关资源
    最近更新 更多