Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 使NSView可调整大小,而不调整其中包含的图像的大小_Objective C_Cocoa_Xcode_Macos - Fatal编程技术网

Objective c 使NSView可调整大小,而不调整其中包含的图像的大小

Objective c 使NSView可调整大小,而不调整其中包含的图像的大小,objective-c,cocoa,xcode,macos,Objective C,Cocoa,Xcode,Macos,我有一个NSView,它根据窗口大小自动调整大小。我加载图像并在NSView中显示它们,但我不希望NSView尝试“挤压”它们以适应NSView的大小。我想要的是将图像以100%的速度加载到NSView中,然后调整窗口大小以显示更多图像,而不是按比例缩放。我可能想在以后修改它以允许缩放和平移 以下是我所做的: -(void)drawRect:(NSRect)rect { NSRect theRect = NSMakeRect((rect.size.width/2)-(([theImage

我有一个NSView,它根据窗口大小自动调整大小。我加载图像并在NSView中显示它们,但我不希望NSView尝试“挤压”它们以适应NSView的大小。我想要的是将图像以100%的速度加载到NSView中,然后调整窗口大小以显示更多图像,而不是按比例缩放。我可能想在以后修改它以允许缩放和平移

以下是我所做的:

-(void)drawRect:(NSRect)rect
{
    NSRect theRect = NSMakeRect((rect.size.width/2)-(([theImage pixelsWide]/2)/2),
                                (rect.size.height/2)-(([theImage pixelsHigh]/2)/2),
                                [theImage pixelsWide]/2,
                                [theImage pixelsHigh]/2);

    [theImage drawInRect:theRect];
}

首先,您是如何显示图像的?您使用的是NSImageView,或者您自己在-drawRect:中将图像绘制到自定义视图中

如果使用的是图像视图,请查看其自动调整大小设置(其父视图的几何体更改时的几何体)及其图像缩放特性(图像视图的几何体更改时的图像大小和比率)


如果是自定义视图,则将图像绘制成任意矩形,而不是视图的整个边界。

酷。我想我已经得到了。我正在使用自定义视图。我接受了您的建议,并在drawRect中手动缩放图像。其工作方式与Javascript中的工作方式相同!