ios UIView在横向模式下不更新约束

bfhwhh0e  于 2023-05-19  发布在  iOS
关注(0)|答案(1)|浏览(123)

我有一个UIViewController,它有一个播放视频的UIView。
给这个UIView的约束如下。
尾随空间:Superview
引导空间:Superview
到Superview的顶部空间
底部空间:底部布局指南
当我在肖像模式下运行应用程序时,它工作得很好。当我通过转动iPhone将方向更改为横向时,它保留了与纵向模式相同的宽度和高度,并且不会全屏播放视频
故事板中的当前方向在iPhone 7中为纵向。
当我将故事板中的方向旋转为横向并运行应用程序时,它会像预期的那样全屏运行,但UIView不会在纵向模式下调整它的大小。
在为纵向模式的故事板中的UIView添加约束的同时,我还为横向模式添加了约束。
我还尝试为每个约束常量添加一个变量。
我不知道问题出在哪里。任何帮助将不胜感激。谢谢你。

5n0oy7gb

5n0oy7gb1#

我也遇到了类似的问题,我的UIView旋转,我找到了解决方案:
根据设备方向Angular 变换视图:

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()

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

相关问题