2013-10-25 13 views
0

我有一个UICollectionView。当我触摸其中一个单元格时,我会从其位置显示一个弹出视图,箭头指向单元格,并提供有关单元格的一些额外信息。如何在屏幕旋转后跟踪UICollectionView中单元的移动

当我旋转设备时,UICollectionView会自动重新定位它的单元格。

我想什么做的,是自动重新定位我酥料饼的视图,使其指向同一个小区之前(这是现在在UICollectionView不同的位置)

我有什么麻烦正在跟踪(发现)我的单元格的新位置,因此我可以手动表示单元格新位置的弹出视图。

我试图附接和存储所述小区的“idString”进行比较,但是这由于某种原因从屏幕旋转

NSArray* visibleCells = [UIAppDelegate.ocollectionView visibleCells]; 

for (UICollectionViewCell *cell in visibleCells) { 
    if ([cell.idString isEqualToString:self.idString]) { 
     NSLog (@"we have a match!!! %@", cell); 
     CGRect rectInCollectionView = cell.frame; 
     rect = [UIAppDelegate.collectionView convertRect:rectInCollectionView toView:[UIAppDelegate.collectionView superview]]; 
    } 
} 

理解任何想法前返回单元的旧帧。谢谢。

回答

0

这段代码被放置在哪里?我想这应该放在像这种的委托方法:

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation;

所以UICollectionView已经重新划定了新的单元格的位置。

+0

谢谢。我从包含UICollection视图的UIViewController的didRotateFromInterfaceOrientation获取单元格的框架属性,但直到我实现了0.01秒的延迟时,我仍然得到旧框架。是否有一个UICollectionView委托方法告诉我什么时候在轮换后完成重绘?我找不到一个。 – TrekOnTV2017