- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我编写了一个自定义的 UIStoryboardSegue 子类来创建两个 UIViewController 之间的淡出/淡入、交叉溶解过渡。
View Controller 的主视图有位于每个 View 中心的按钮(标记为“View Controller 1”和“View Controller 2”,因此我假设当我将一个 View 与另一个 View 交叉融合时——将它们都设置为相同父 View 的 subview 并使它们的框架相同——按钮也将对齐。
class SwapSegue: UIStoryboardSegue {
override func perform() {
fade()
}
func fade() {
destination.view.alpha = 0
source.view.superview?.addSubview(destination.view)
destination.view.frame = source.view.frame
UIView.animate(withDuration: 1, delay: 0, options: .curveEaseInOut, animations: {
self.destination.view.alpha = 1
}, completion: { success in
if var controllerStack = self.source.navigationController?.viewControllers {
controllerStack[controllerStack.firstIndex(of: self.source)!] = self.destination
self.source.navigationController?.setViewControllers(controllerStack, animated: false)
} else {
self.source.present(self.destination, animated: false, completion: nil)
}
})
}
}
这几乎可以工作,但是它在过渡期间没有正确定位目标 View ,所以当 segue 的动画完成时,最后会有一个“弹出”。对齐方式似乎偏离了导航栏的大致高度,所以我怀疑这是一个线索。
(注意:在这个循环 GIF 中,您可以看到“View Controller 1”上的按钮按下,按钮错位的动画交叉淡入淡出,然后是动画完成时最后的“弹出”和目标 View Controller 终于正确放置。)
如何正确定位它,使其按应有的方式对齐并且动画流畅?
最佳答案
我找到了一个解决方案。我不是 100% 确定为什么会这样,所以如果你能解释一下,请在下面的评论中解释。
最初,我通过自动布局将两个按钮置于 View Controller 主视图的中央。
通过向每个 View Controller 的主视图添加一个 subview (让我们称之为“内容 View ”),固定到它的边缘,并在那个 View 中将每个按钮居中,过渡现在可以按预期工作.
关于ios - 为什么主视图没有在自定义交叉溶解转场中与 View Controller 对齐?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55660803/
我一直在用ogr2ogr用 shapefile 做我需要的大部分事情(包括溶解它们)。然而,我发现对于大的来说,这需要很长时间。 这是我正在做的一个例子: ogr2ogr new.shp old.sh
我想将 UIImageView 图像从一个图像更改为另一个图像。 但我不希望它完全动画到最后。我只是想让它溶解一定百分比。 结果应该是一个包含两个图像的新图像,就像我会在某个时候停止动画并保留结果一样
与其创建两个 UIImageViews,不如简单地更改一个 View 的 image 似乎是合乎逻辑的。如果我这样做,是否有两个图像之间的淡入淡出/交叉溶解而不是即时切换? 最佳答案 使用新的基于 b
我是一名优秀的程序员,十分优秀!