我在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
传递给转换。
答案 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