38、iOS视图控制器自定义过渡与页面视图控制器详解

iOS视图控制器自定义过渡与页面视图控制器详解

可中断动画与自定义过渡动画

在自定义过渡动画时,可中断动画(interruptibleAnimator)是一个重要的概念。根据动画结束状态(结束或回到起始),需要向过渡上下文发送不同的消息:

anim.addCompletion { finish in
    if finish == .end {
        ctx.finishInteractiveTransition()
        ctx.completeTransition(true)
    } else {
        ctx.cancelInteractiveTransition()
        ctx.completeTransition(false)
    }
}

当动画结束时,会调用 animationEnded 方法清理实例属性:

func animationEnded(_ transitionCompleted: Bool) {
    self.interacting = false
    self.context = nil
    self.anim = nil
}

还可以使自定义过渡动画可中断。借助属性动画器(property animators),在视图动画过程中,属性动画器能实现动画视图的可触摸性,并允许暂停动画。用户可以在动画进行中抓住动画视图并移动,松开后动画继续。

另外,还可以

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值