gpt4 book ai didi

objective-c - 将 CGrect 值更改为用户坐标系

转载 作者:可可西里 更新时间:2023-11-01 03:28:15 25 4
gpt4 key购买 nike

我有一个CGRect;我可以将其坐标转移到用户坐标系中吗,即左下角到顶部而不是左上角到底部。是否有任何预定义的方法,或者我需要手动计算吗?提前致谢。

最佳答案

要将矩形从原点在左下角的坐标系(我们称其为传统坐标系来命名)转换为原点在左上角的系统(iPhone 坐标系),您需要知道 CGRect 所在 View 的大小,因为 View 是矩形的引用。

例如,假设您有一个大小为 200 x 300 的 View ,并且您拥有的 CGRectCGRectMake(10, 20, 30, 40)CGRect 的大小将保持不变。所有会改变的只是原点——实际上,只有 y 坐标会改变,而 x 坐标不会改变,因为传统坐标系和 iPhone 坐标系都从左侧开始(一个在左下角;另一个在左上角)。

所以我们会有类似 CGRectMake(10, y, 30, 40) 的东西。

  - (CGRect)rectangle:(CGRect)oldRect fromTraditionalToiPhoneCoordinatesWithReferenceViewOfSize:(CGSize)aSize
{
CGFloat oldY = oldRect.origin.y; // This is the old y measured from the bottom left.
CGFloat newY = aSize.height - oldY - oldRect.size.height;

CGRect newRect = oldRect;
newRect.origin.y = newY;

return newRect;
}

从 iPhone(左上)坐标系测量的新矩形将是:CGRectMake(10, 300 - 20 - 40, 30, 40) = CGRectMake(10, 240, 30, 40)

希望这张图片能让它更清晰 Hopefully this image makes it clearer

关于objective-c - 将 CGrect 值更改为用户坐标系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5482539/

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