当视图返回到位时需要帮助定位图像使用

大家好,过去几天我一直被这个问题困扰。这很难描述,所以我在 GitHub 存储库上上传了一段视频:

https://github.com/DJSimonSays93/PresentationController

它涉及使用 present 和委托 UIViewControllerTransitioningDelegateUIViewControllerAnimatedTransitioning

的自定义视图控制器转换
hezhenhuaf1 回答:当视图返回到位时需要帮助定位图像使用

“问题”很简单,现在让我看看我是否可以用语言来描述它。

你有两个图像视图显示,比如罗勒图像:一个在滚动视图中,一个在你展示时全屏。它们都设置为 Aspect Fill。但是这两个图像视图的纵横比本身不同。因此,为了在不同的图像视图中显示在 Aspect Fill 中,图像会以显示方式移动

您在 dismiss 的结尾发现这种令人不安的原因是您没有注意到它发生在 present 的开头,但是如果您放慢视频的速度(您可以将在模拟器上的慢动画上,它会有所帮助),您也可以在那里看到它:

  • 当您在滚动视图中点击图像时,会发生跳跃,因为图像会为新图像视图更改其显示,然后图像视图会增长到其真实大小,如下所示变换被移除(动画)。

  • 当你点击全屏图像时,变换被应用(动画),然后有一个跳跃,因为图像视图被带走以显示后面的旧图像视图

如果您将两个图像视图都设置为“缩放以填充”,则不会发生这种情况。当然,图像会失真,但它是same 失真,因此图像在整个过程中似乎平滑地增长和缩小。尝试一下,你至少会对我说的话感到满意。

(见https://www.apeth.com/stretch.gif。)

如果您不想那样做,那么您将有更多的工作要做;您将需要弄清楚如何通过更改图像的纵横比以使其匹配来实际补偿纵横比的差异。或者,您可以使全屏图像视图的目标尺寸与小图像视图的纵横比相匹配(并且其中一部分将在屏幕外结束)。

关键是,您不能在具有不同纵横比的图像视图中使用“纵横比填充”显示相同图像,并期望图像在两者中以相同的方式显示。要么图像需要不同(以进行补偿),要么宽高比需要相同。

本文链接:https://www.f2er.com/9114.html

大家都在问