我有一个UICollectionView
,其中有很多UICollectionViewCell
个,其中每个UIButton
都有UIPopoverController
。每当用户按下其中一个UIButton
时,我想显示UIPopoverController
。但是,当我这样做时,CGRect
的位置远非正确。我的猜测是,这是由于UIButton
我正在使用的翻译问题,但我不能为我的生活弄清楚如何纠正它。在我按下UIButton *detailsButton = (UIButton *)sender;
[self.popoverController presentPopoverFromRect:detailsButton.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
时调用的选择器内部,我有类似的东西......
UIButton
但是,当我这样做时,无论UICollectionViewCell
和UICollectionView
在UIButton
内的位置如何,它似乎每次都定位在同一个地方。有人可以给我一些指示,告诉我如何在整个UICollectionView
内翻译detailsButton
的位置吗?我想我需要{{1}}的绝对位置,但我不知道如何获得它。
感谢您提供任何帮助!
答案 0 :(得分:1)
视图具有相对于其超视图的坐标,而不是相对于屏幕的坐标。因此,如果所有单元格都相同,则detailsButton.frame
对于所有按钮都是相同的。
尝试更改inView:
参数。
[self.popoverController presentPopoverFromRect:detailsButton.frame inView:detailsButton.superview permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];