gpt4 book ai didi

ios - 使用转换(_ :to:) method in swift

转载 作者:行者123 更新时间:2023-11-30 12:22:38 24 4
gpt4 key购买 nike

我想将另一个 CollectionView (cellContentCollectionView) 中的矩形转换为 Root View Controller 中的相等矩形。

用于执行此操作的实例方法是convert(_:to:),但是我在 Root View Controller 框架中设置 UIView 的框架时遇到问题。

这是我到目前为止所拥有的......

cellContentCollectionView?.convert((playerLayer?.frame)!, to: fullScreenPlayerView)

cellContentCollectionView是它所在的collectionView。它恰好位于collectionViewCell中。

有什么建议吗?

最佳答案

您没有解释 cellContentCollectionViewplayerLayer 之间的确切关系,因此我将假设最坏的情况:playerLayer 是不是 cellContentCollectionView 的 subview 。

我还怀疑 playerLayer 实际上根本不是一个 View ,而是一个CALayer。没关系,因为在 iOS 上, View 的 frame 始终是其 layer.frame,因此我们可以只处理图层。

层的框架位于其 super 层的几何结构中。因此,您必须要求其 super 层转换其frame。但是,如果图层未转换,您可以要求图层转换其自己的边界

如果您打算使用生成的矩形作为目标图层的框架,则必须转换为目标图层的 super 图层。您不能只转换为目标图层的几何图形并设置目标图层的边界,因为这不会更新目标图层的位置

因此我认为你想写这个:

if
let playerLayer = playerLayer,
let fullScreenPlayerSuper = fullScreenPlayerView.layer.superlayer
{
let frame = playerLayer.convert(playerLayer.bounds, to: fullScreenPlayerSuper)
fullScreenPlayerView.frame = frame
}

关于ios - 使用转换(_ :to:) method in swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44608539/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com