Swift UICollectionViewCell';s子视图绝对帧

Swift UICollectionViewCell';s子视图绝对帧,swift,uiimageview,autolayout,uicollectionview,uicollectionviewcell,Swift,Uiimageview,Autolayout,Uicollectionview,Uicollectionviewcell,我一直认为这是一个很容易解决的问题,但花了很多时间来解决却没有结果 因此,我有一个UIViewController,其中包含UICollectionView。此集合从顶部填充75像素,单元设置非常简单-仅设置1UIImageView以适合容器大小。一切都是通过自动布局制作的 我的任务是让UIImageView轻触全屏。我正在做的是创建一个临时的UIImageView,并添加到UIViewController视图的层次结构中 我面临的问题是我无法在我点击的单元格中获取UIImageView的绝对帧

我一直认为这是一个很容易解决的问题,但花了很多时间来解决却没有结果

因此,我有一个UIViewController,其中包含UICollectionView。此集合从顶部填充75像素,单元设置非常简单-仅设置1UIImageView以适合容器大小。一切都是通过自动布局制作的

我的任务是让UIImageView轻触全屏。我正在做的是创建一个临时的UIImageView,并添加到UIViewController视图的层次结构中

我面临的问题是我无法在我点击的单元格中获取UIImageView的绝对帧

我尝试了各种方法来计算帧,我最近的一次尝试是

var rect = cell.imageView.superview!.convertRect(cell.imageView.frame, toView: self.view)
但是,它返回的结果似乎忽略了集合视图顶部约束

更新

事实证明,我的问题出在我从收集视图获取单元格的错误方式上。而不是:

let cell = collectionView.cellForItemAtIndexPath(indexPath) as! UIImageCollectionViewCell
我和他在一起

let cell = self.collectionView(collectionView, cellForItemAtIndexPath: indexPath) as! UIImageCollectionViewCell

这显然导致创建一个具有错误帧的新单元。我的糟糕,深夜编码有时不是最好的事情。多亏了这个快速的例子,我试过了,效果如期

class ViewController: UIViewController, UICollectionViewDelegate, UICollectionViewDataSource {

@IBOutlet var collectionView: UICollectionView!

override func viewDidLoad() {
    super.viewDidLoad()

}

func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    return 10
}

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
    return collectionView.dequeueReusableCellWithReuseIdentifier("aaa", forIndexPath: indexPath)
}

func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int {
    return 10
}

@IBAction func frame(sender: AnyObject) {

    print(String(sender.frame))

    let rect = sender.superview??.convertRect(sender.frame, toView: self.view)

    print(String(rect))

    let addedView = UIView()
    view.addSubview(addedView)
    addedView.frame = rect!

    addedView.backgroundColor = UIColor.yellowColor()
}
}

故事板看起来像:

输出如下所示: