使用cell.frame在UICollectionView上的正确位置呈现UIDocumentInteractionController

时间:2013-10-09 09:33:51

标签: ios objective-c ios7

我有一个使用标准Flow Layout的UICollectionView。流程布局提供了一组文档。

当您点击其中一个时,UIDocumentInteractionController会显示一个能够处理该文档类型的可用应用程序列表。 UIDocumentInteractionController中的小箭头指向我点击的文档。我正在使用可重复使用的单元框架矩形来识别单元格的位置。

在升级到iOS7之前,我相信这很好用。现在我遇到的问题是UIDocumentInteractionController没有出现在正确的位置。

代码如下所示:

NSURL *fileURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:item.templateLink ofType:@"" ]];
docController = [self setupControllerWithURL:fileURL
                               usingDelegate:self];
TBTemplateViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"TemplateCell" forIndexPath:indexPath];
CGRect rect1 = cell.frame;
bool didShow = [docController presentOptionsMenuFromRect:rect1 inView:self.view animated:YES];

好像cell.frame不再具有相同的参考点?

非常感谢任何帮助。

非常感谢, d。

1 个答案:

答案 0 :(得分:0)

玩了一会儿,似乎我应该在presentOptionsMenuFromRect而不是collectionView上使用self.view。所以代码现在看起来像这样:

NSURL *fileURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:item.templateLink ofType:@"" ]];
docController = [self setupControllerWithURL:fileURL
                           usingDelegate:self];
TBTemplateViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"TemplateCell" forIndexPath:indexPath];
CGRect rect1 = cell.frame;
bool didShow = [docController presentOptionsMenuFromRect:rect1 inView:collectionView animated:YES];

这听起来是对的吗?它似乎已经成功了。有没有人知道这在iOS7中是否会发生变化,或者我之前是否刚刚开始使用它?