Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UICollectionView旋转剪切,滚动后立即修复_Ios_Uiview_Autolayout_Uicollectionview_Screen Rotation - Fatal编程技术网

Ios UICollectionView旋转剪切,滚动后立即修复

Ios UICollectionView旋转剪切,滚动后立即修复,ios,uiview,autolayout,uicollectionview,screen-rotation,Ios,Uiview,Autolayout,Uicollectionview,Screen Rotation,我使用UICollectionView垂直显示三个单元格,每个单元格都包含UIView。它看起来像这样: 如果我旋转设备,其结果如下所示: 我正在使用AutoLayout旋转集合视图,一切似乎都正常工作,但当我旋转时(可以从纵向到横向,或从横向到纵向),集合视图似乎会剪裁其单元格。如果此时打开视图调试器,它会在那里完美地呈现它,如下所示: 只要我触摸集合视图(即稍微滚动),问题就会得到解决,从那时起,它会正确渲染,直到我再次旋转 该问题发生在模拟器和设备上,以及从任何方向更改为任何其他方向

我使用
UICollectionView
垂直显示三个单元格,每个单元格都包含
UIView
。它看起来像这样:

如果我旋转设备,其结果如下所示:

我正在使用AutoLayout旋转集合视图,一切似乎都正常工作,但当我旋转时(可以从纵向到横向,或从横向到纵向),集合视图似乎会剪裁其单元格。如果此时打开视图调试器,它会在那里完美地呈现它,如下所示:

只要我触摸集合视图(即稍微滚动),问题就会得到解决,从那时起,它会正确渲染,直到我再次旋转

该问题发生在模拟器和设备上,以及从任何方向更改为任何其他方向时。它仅在触摸集合视图之前进行剪辑,此时它会自行修复

我已经尝试了很多方法,用常规UIView替换这里的YouTube视图,在旋转后(以及之前)手动调用集合视图上的
scrollViewDidScroll:
,告诉集合视图重新加载数据,重新加载项,关闭剪辑或遮罩边界,使自动调整大小的约束无效,几乎所有我能想到的显而易见的事情

最让我困惑的是视图调试器——那里的一切都是完美的,只是当它在屏幕上呈现时,它才被剪辑。此问题在所有设备、电话和pad上都会发生。视图调试器层次结构中没有任何内容看起来与它们重叠。所有的东西都在它应该在的地方,即使我在断点处断裂,打印帧,等等,当它以某种方式渲染时,它只是剪辑


有人有任何建议吗?

我不确定你在你的单元格里到底有什么,但是你可以考虑让集合视图和单元格可见的背景颜色(最好是不同的颜色,比如绿色/红色),这样你就可以确定它是你的单元格中的视图还是集合视图/单元格本身。您正在替代什么方法进行旋转?你试过在YouTube视图上调用
setNeedsDisplay
吗?是的,试过了,整个collectionView都被剪辑了。但如果我把它的框架打印出来,它就在它应该在的地方。单元格中包含一个嵌入式YouTube
UIWebView
。我目前没有覆盖任何内容,而是让auto layout处理它。但我尝试过覆盖我能想到的一切,will/didRotate,ViewWillTransitionOnToSize,等等,并调用setNeedsDisplay,layoutImmediately,等等。到目前为止没有任何乐趣。除了集合视图之外,您的视图层次结构中还有什么吗?我不确定您的单元格中到底有什么,但是您可以考虑将集合视图的背景颜色和单元格可见(最好是不同的颜色,例如绿色/红色),这样您就可以确定它是否是单元格视图或集合视图/单元格本身。你试过在YouTube视图上调用
setNeedsDisplay
吗?是的,试过了,整个collectionView都被剪辑了。但如果我把它的框架打印出来,它就在它应该在的地方。单元格中包含一个嵌入式YouTube
UIWebView
。我目前没有覆盖任何内容,而是让auto layout处理它。但是我尝试过覆盖我能想到的一切,will/didRotate,viewwilltransitionontosize,等等,并调用setNeedsDisplay,layoutinemmediately,等等。到目前为止还没有什么乐趣。除了集合视图之外,您的视图层次结构中还有什么吗?