gpt4 book ai didi

ios - UIView.convertPoint 没有按预期工作

转载 作者:行者123 更新时间:2023-12-01 22:32:40 24 4
gpt4 key购买 nike

我试图弄清楚如何在 swift 游乐场中使用 UIView 的 convertPoint 函数。我没有得到我期望的结果,我不知道为什么。

当我尝试时:

import UIKit
let large = UIView(frame: CGRect(x: 0, y: 0, width: 400, height: 400))
let small = UIView(frame: CGRect(x: 0, y: 0, width: 200, height: 200))
let point = CGPoint(x: 200, y: 200)
large.convertPoint(point, toView: small)

我期望: {x: 100, y: 100}
我实际上得到: {x: 200, y: 200}
我错过了什么?

最佳答案

将您的代码(小 View )更改为

let large = UIView(frame: CGRect(x: 0, y: 0, width: 400, height: 400))
let small = UIView(frame: CGRect(x: 20, y: 20, width: 200, height: 200))
let point = CGPoint(x: 200, y: 200)
let convertedPoint = large.convertPoint(point, toView: small)
print(convertedPoint)

打印出: (180.0, 180.0)

这是完全正确的。看一下图片:
small view at (20, 20)

如您所见,红点位于大 - 深灰色 - View 的 200、200(正好在中间)和小 - 浅灰色 - View 的 180、180(靠近右下角)。

如果我们现在回到您的示例,小 View 的原点位于 0, 0 而不是 20, 20,则红点位于大 View 的 200、200(正好在中间)以及 200、200(正好在小 View 的右下角)。看:
small view at (0, 0)

所以你得到的输出完全有意义!希望我能帮助...

关于ios - UIView.convertPoint 没有按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33575186/

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