在Mac的左上角绘制图像的正确方法是什么?

时间:2009-07-23 14:14:16

标签: objective-c image macos nsview

我在ScrollView中有一个NSView,我正在尝试在其中绘制图像。问题是我希望图像的左上角锁定在框架的左上角,而不是左下角,这是View要我做的事情。我需要能够放大和缩小,然后旋转。

目前,我有一个系统的kludge,我根据图像的大小和窗口的大小计算我需要翻译多少图像。为了做到这一点,我需要在scrollview之外创建一个额外的视图,这样我就可以获得窗口的大小,而不包括装饰。然后我可以根据图像的大小和窗口的大小来计算视图的大小,并根据这个,我可以找出将图像转换到的位置。

我唯一的另一个想法是使用isFlipped:方法,但这最终会颠倒我的图像L-R,这很糟糕。

我应该采取另一种方式吗?

1 个答案:

答案 0 :(得分:1)

如果您希望0,0位于左上角,则覆盖-isFlipped以返回YES即可。它不应该影响任何子视图的坐标系(我认为!),但直接绘制到翻转视图中的图像将显示为颠倒,除非您对它们应用变换。

View Programming Guide for Cocoa: View Geometry