自动检测旋转时选择的集合视图单元的中心

时间:2018-01-16 02:13:03

标签: ios swift uicollectionview uicollectionviewcell

我在didSelectItemAt indexPath

collectionview中有以下代码
//To find center of collectionview cell
let attributes: UICollectionViewLayoutAttributes? = collectionView.layoutAttributesForItem(at: indexPath)
print("center: \((attributes?.center)!)")

当我在portrait模式

中选择一个单元格时,我得到以下输出
center: (659.5, 200.0)

我希望在将其旋转到landscape模式automatically后立即获得以下内容,这是landscape模式中的单元格中心,而不是我手动选择它。 / p>

center: (206.0, 200.0)

有没有办法实现这一点,以便我可以在transition.start = center中将其作为didSelectItemAt IndexPath传递给转换。

2 个答案:

答案 0 :(得分:0)

您可以在视图控制器中覆盖viewWillTransitionToSize()以检测旋转变化。

 override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) {
    if UIDevice.currentDevice().orientation.isLandscape.boolValue {
        print("Landscape")
        // Get collection view center here
    } else {
        print("Portrait")
        // Get collection view center here
    }
}

答案 1 :(得分:0)

实施 <my-app> <page1 on-upway-func="callPage2Func"></page1> <page2 id="child2"></page2> </my-app> ... callPage2Func(op){ console.log(op)//Optionally I can send some data this.$.child2.covert_data(op); } func willRotate(to toInterfaceOrientation: UIInterfaceOrientation, duration: TimeInterval)方法,以便在设备的方向发生变化时获得回调,并获取其中所选UIViewController的{​​{1}}。

您可以center使用UICollectionViewCell获取所选indexPathsForSelectedItems的{​​{1}}。

UICollectionView