ConvertRect无法按预期方式工作

ConvertRect无法按预期方式工作

问题描述:

我试图将深层'Subview'框架转换为上层'UIView'。我在这里附加了视图层次结构。ConvertRect无法按预期方式工作

附加说明:

enter image description here

我试过这个,但结果是遥远屏幕:

let rect = smallSubview.convert(smallSubview.frame, to: bigSuperview) 

我想小 '子视图' 帧转换,到'VideoCrop'/ bigSuperView坐标空间。有什么建议么?谢谢!

+0

请参阅我的更新的答案澄清您的意见 –

不确定,但不应该考虑你的smallSubView的边界而不是框架?

我的意思是:

let rect = smallSubview.convert(smallSubview.bounds, to: bigSuperview) 

编辑

我不能回答你的回答,因此更新我的答案:)

转换API的快速视图显示

评论

func convert(_ rect:CGRect,查看:UIView?) - > CGRect说明
将矩形从接收器的坐标系转换为另一个视图的 。

参数

RECT接收机的本地 坐标系(边界)中指定的矩形。

view该视图是 转换操作的目标。如果视图为零,则此方法将 转换为窗口底座坐标。否则,接收者必须属于同一个UIWindow对象,这两个视图和 。

因为它表明你应该考虑范围,而不是框架:)

请告诉我框架和边界,然后之间的区别?

边界:指定视图在其自己的坐标系中的位置和大小。 框架:虽然这指定在其superViews坐标系统中的视图的位置和大小:)

因此,任何视图的边界的起源为(0,0),其中框架的x和y相对于其超级查看:)而高度和宽度是相同的:)

+0

光滑。作品!你能解释为什么我们应该使用边界而不是框架?界限始终将是0,0。 –

+0

太棒了。谢谢Sandeep! :)应该仔细阅读文档。哈哈。祝你有美好的一天! –

+0

@roi-mulia:总是欢迎先生!祝你有个美好的一天:) –