我的视图控制器中有一个UICollectionView
。它已经设置好了,工作正常。
我试图缩放单元格时,单元格内部的按钮已被按下。
我的代码缩放单元格,但是,我找不到方法来强制选定的单元格到其他单元格的前面。现在,选定的单元格总是在选定的单元格前面的单元格后面。
如何强制选定的单元格在其他单元格之前缩放?
@IBAction func detailBtnAction(sender:UIButton){
let indexUser = (sender.layer.valueForKey("indexBtn")) as! Int
let indexPath = NSIndexPath(forItem: indexUser, inSection: 0)
let feedCell = feedCollectionView.cellForItemAtIndexPath(indexPath)
feedCell?.bringSubviewToFront(feedCollectionView)
feedCell?.contentView.bringSubviewToFront(feedCollectionView)
UIView.animateWithDuration(1.0) { () -> Void in
feedCell?.transform = CGAffineTransformMakeScale(5, 5)
}
}
2条答案
按热度按时间5fjcxozz1#
看来你把事情的顺序搞混了。
从文档中:
移动指定的子视图,使其显示在同级视图的顶部。
函数将子视图前置(_ view:用户界面视图)
参数
view -要移到前面的子视图。
此方法将指定的视图移动到subviews属性中的视图数组的末尾。
所以你的电话:
feedCell?.contentView.bringSubviewToFront(feedCollectionView)
实际上意味着单元格contentview应该将
feedCollectionView
移到前面。现在,这是一些基于命名的有根据的猜测,但它应该看起来像这样:
feedCollectionView.bringSubviewToFront(feedCell?)
您可以在那里传递储存格本身,因为它继承自
UIView
。z4bn682m2#
将单元格置于最前面.您可以删除单元格后再重新添加:
mCollectionView.reloadData() mCollectionView.performBatchUpdates(nil, completion: { (result) in var indexPath = IndexPath(row: 0, section: 0) var cell = mCollectionView.cellForItem(at: indexPath) cell.removeFromSuperview() mCollectionView.addSubview(cell)})`