ConvertRect无法按预期方式工作
我试图将深层'Subview'框架转换为上层'UIView'。我在这里附加了视图层次结构。ConvertRect无法按预期方式工作
附加说明:
我试过这个,但结果是遥远屏幕:
let rect = smallSubview.convert(smallSubview.frame, to: bigSuperview)
我想小 '子视图' 帧转换,到'VideoCrop'/ bigSuperView坐标空间。有什么建议么?谢谢!
不确定,但不应该考虑你的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。 –
太棒了。谢谢Sandeep! :)应该仔细阅读文档。哈哈。祝你有美好的一天! –
@roi-mulia:总是欢迎先生!祝你有个美好的一天:) –
请参阅我的更新的答案澄清您的意见 –