gpt4 book ai didi

objective-c - NSImage 已弃用的方法 : setFlipped replacement

转载 作者:行者123 更新时间:2023-12-02 21:25:25 24 4
gpt4 key购买 nike

在文档中,https://developer.apple.com/library/mac/documentation/cocoa/reference/applicationkit/classes/NSImage_Class/DeprecationAppendix/AppendixADeprecatedAPI.html#jumpTo_17

它说 setFlipped 应该替换为 drawInRect ——但是在查看了几个示例和多次失败的尝试之后,我无法使用传递到 drawInRect

的参数

有人有经验,或者知道如何使用drawInRect方法翻转图像吗?或者有什么不同的方法吗?

提前致谢!

最佳答案

编写弃用说明时期望使用 -setFlipped: 来补偿将右侧向上绘制到翻转 View 中的情况。这与您的用例不符,您显然试图将其颠倒绘制,因此解释没有帮助。

要上下颠倒绘制,您应该使用 NSAffineTransform 调整图形上下文的变换。该文档讨论了 creating a flip transform相对于整个 View 进行翻转,但随后您必须确定相对于翻转的坐标系在哪里绘制。我认为将原点平移到目标矩形的左上角,将 Y 方向缩放 -1,然后在 (0, 0) 处绘制会更容易。

[NSGraphicsContext saveGraphicsState];

NSAffineTransform* xform = [NSAffineTransform transform];
[xform translateXBy:NSMaxX(destRect) yBy:NSMinY(destRect)];
[xform scaleXBy:1 yBy:-1];
[xform concat];

[image drawInRect:NSMakeRect(0, 0, NSWidth(destRect), NSHeight(destRect))];

[NSGraphicsContext restoreGraphicsState];

关于objective-c - NSImage 已弃用的方法 : setFlipped replacement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24784873/

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