iOS16 屏幕旋转适配问题记录

1,646 阅读1分钟

iOS16 屏幕强制旋转推出了新的API requestGeometryUpdateWithPreferences

于是便着手适配,但是过程中发现,直播页面第一次进入手动全屏时,很诡异发生屏幕旋转至横屏后立马旋转回竖屏。断点后百思不得其解 viewWillTransitionToSize: 被调用两次。

于是写Demo去测试,在测试Demo中偶然发现,在手机处于某个方向,去调用requestGeometryUpdateWithPreferences 并且参数也是该方向时,viewWillTransitionToSize: 不会被响应。

第二次再去调用 requestGeometryUpdateWithPreferences 参数给到不同方向,这个时候 viewWillTransitionToSize: 则会被响应两次,也就是携带第一次不响应的回调。

这正如同项目中发生的情况。所以果断屏蔽同方向下的调用,之前的问题随之得到解决😄。

DEMO

iOS16OrientationDemo

注释红框的代码就能感受BUG了😄

image.png

提问关注

developer.apple.com/forums/thre…