ios - 在 animateAlongsideTransition block 内的 UIImage 上进行交叉溶解

标签 ios uiview uinavigationcontroller uiviewanimation

我已将动画添加到 UINavigationController 转换,其中涉及重新定位 UIImageView:

transitionCoordinator()?.animateAlongsideTransition({ context in
    UIView.performWithoutAnimation {
        // ...
    }

    // ...

    myImageView.frame = newFrame
}, completion: {
    // ...
})

此代码位于 viewWillAppear(_:) 中。这段代码到目前为止工作正常。但是,我不只是想更改 ImageView 的框架,我还想使用交叉溶解来更改图像。我试过这个:

transitionCoordinator()?.animateAlongsideTransition({ context in
    UIView.performWithoutAnimation {
        // ...
    }

    // ...

    myImageView.frame = newFrame
    UIView.transitionWithView(boardImageView,
        duration: context.transitionDuration(),
        options: .TransitionCrossDissolve,
        animations: {
            myImageView.image = newImage
    }, completion: nil)
}, completion: {
    // ...
})

虽然这不起作用 - 它只是在动画完成后更改 ImageView 的图像(没有交叉溶解)。有没有办法在过渡期间进行交叉融合?

最佳答案

只需手动执行转换应完成的操作即可。在 animateAlongsideTransition 调用之前,将一个新的 ImageView 放入界面中与旧 ImageView 相同的位置,其中 alpha0。在动画中,将其 alpha 更改为 1,将旧 ImageView 的 alpha 更改为 0,这样就可以看到执行交叉溶解。 (当然,也可以在此处执行任何其他动画。)在完成 block 中,删除旧的(现在不可见的) ImageView 。

关于ios - 在 animateAlongsideTransition block 内的 UIImage 上进行交叉溶解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35566013/

相关文章:

ios - 如何在 Swift 中循环 JSON 对象?

ios - 如何在 iOS 应用程序中处理自动旋转,其中一个 View 不应自动旋转,而一个 View 应该自动旋转?

ios - 模式导航 Controller 选择 Controller - Swift

javascript - 如何从 div 标签表示的表中检索行和列数据

ios - UIView 带有圆角和阴影?

ios - 在 iOS 上带有指示导航栏的侧边栏菜单

objective-c - 为什么 View 在自定义缩放和翻转动画后绘制在任务栏下方?

ios - 实例化新 VC 后销毁当前 tabbarVC

ios - 迁移 Realm 中的主键

ios - iOS第一个应用程序“self.userName = textField.text”。何时使用 self