我有一个if(NonAllowedCLEOFiles.Any())
MessageBox.Show(String.Join(", ", NonAllowedCLEOFiles.Select(x=>x.Name)));
我在其中添加了UIView
。现在这个视图显示在app启动时。同时我在我的集合视图中滚动到某个位置。因此我使用UICollectionView
。现在的问题是它滚动到错误的位置,因为集合视图的开头大小错误:如果你在iOS 7上以横向方向启动iPad,那么集合视图总是需要768作为宽度,尽管它是横向的。
如何在用户不注意的情况下滚动到某个位置?我可以在视图层次结构中的哪个位置调用它?
scrollToItemAtIndexPath
:尚未设置框架
viewWillAppear
:如果没有用户注意到它,就不可能
viewDidAppear
:这被多次调用,我只需要在启动时和用户按下按钮
我也尝试使用layoutSubviews
,但这对我的边缘情况没有帮助(iOS 7,iPad,启动时的风景)。
答案 0 :(得分:1)
最后一次调用时间viewDidAppear
和layoutSubviews
的约束。到那时为时已晚。
您可以尝试从UICollectionView继承自己的类,看看它的layoutSubviews
是否有正确的约束并从那里调用scrollToIndex
。
如果失败,您可以通过在viewDidLoad
中设置帧大小并调用scroll to index来作弊。 (这个有点复杂) -