Skip to content

Conversation

@CloudlessMoon
Copy link
Contributor

@debugly
Copy link
Owner

debugly commented Jan 28, 2026

为了修复macOS上手动旋转时画面显示感觉闪烁的bug,故意做了这个动画来避免。为了不突兀改成所有手动调节的设置项都有动画。

你这么改回去的话那macOS上这个bug怎么搞?实际上也只有iOS上才会有你之前优化的那个问题,因为mac不支持旋转屏幕。

@CloudlessMoon
Copy link
Contributor Author

CloudlessMoon commented Jan 28, 2026

为了修复macOS上手动旋转时画面显示感觉闪烁的bug,故意做了这个动画来避免。为了不突兀改成所有手动调节的设置项都有动画。

macOS上也由业务实现动画即可:
图片
这样做也会有动画,和你之前的提交一样,但存在一个Bug,当执行runAnimationGroup时动画可能不会生效,比如说播放视频后,先点击适应模式,设置为拉伸填充,再设置为等比适应,此后再旋转画面,上述的动画就可以生效,反之不生效,感觉这应该是AppKit的bug,当renderedView.frame.origin没有进行像素对齐时,runAnimationGroup就不生效,当进行像素对齐后就没问题了,UIKit倒没这种奇怪的问题。。。最新的commit也解决了此问题,可以拉下来试试

若按照之前self.animating = YES来作为标记,会有一些副作用,比如说678b498#commitcomment-175793545 提到的。还有当动画执行完设置self.animating = NO,在此之前若改变FSMetalView的frame,触发layoutSubviews,renderedView用的还是之前的size导致显示错误。

实际上也只有iOS上才会有你之前优化的那个问题,因为mac不支持旋转屏幕

macOS也有问题,旋转屏幕只是其中的一种场景,实际上当以动画的形式去设置FSMetalView的frame都会有之前的拉伸变形问题.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants