Uiview在景观模式下未更新约束



我有一个uiviewController,它具有播放视频的Uiview。

对本uiview的约束如下。

落后空间:supperiew

领导空间:supperiew

最高空间

底部空间:底部布局指南

当我以肖像模式运行该应用程序时,它可以正常工作。当我通过转动iPhone来改变景观的方向时,它保留了与肖像模式相同的宽度和高度,并且不会在全屏中播放视频

故事板中的当前方向是iPhone 7中的肖像。

当我将故事板板上的方向旋转到景观中并运行该应用程序时,它会按预期在全屏中运行,但Uiview不会在肖像模式下调整它的大小。

在肖像模式的故事板中添加约束时,我还为景观模式添加了约束。

我还尝试为每个约束常数添加一个变化。

我无法弄清楚问题是什么。任何帮助将不胜感激。谢谢。

我在旋转旋转时也有类似的问题,我找到了解决方案:

根据设备方向角度转换视图:

customView.transform = CGAffineTransform(rotationAngle: angle)

调整视图框架以适合新方向:

customView.frame = CGRect(x: 0, y: 0, width: containerView.bounds.width, height: containerView.bounds.height)

或:

customView.frame = containerView.bounds

更新约束并触发布局更新,以确保正确定位和调整视图及其子视图:

customView.translatesAutoresizingMaskIntoConstraints = true
customView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
customView.setNeedsLayout()
customView.layoutIfNeeded()

我希望这个或类似的东西会有所帮助。

最新更新