gpt4 book ai didi

objective-c - NSImageView 中的图像和按钮位置错误

转载 作者:行者123 更新时间:2023-12-03 17:36:13 25 4
gpt4 key购买 nike

我将一个按钮和一个图像分配到同一位置 (0, 0),但它们绘制在不同的位置。为什么会出现这种情况?

这是我的代码:

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification 
{

// Insert code here to initialize your application
[window makeKeyWindow];
[window setFrame:NSMakeRect(0, 0, 500, 468) display:YES];
//[window setFrame:[[NSScreen mainScreen]frame] display:YES];
[window setBackgroundColor:[NSColor clearColor]];
[window center];
[[window contentView] setAutoresizesSubviews:YES];

NSImageView *subView = [[NSImageView alloc]initWithFrame:NSMakeRect(0, 0, 500, 468)];
[subView setImage:[NSImage imageNamed:@"Flowers.jpg"]];
[subView setAutoresizingMask:NSViewWidthSizable|NSViewHeightSizable];
[subView setAutoresizesSubviews:YES];

NSButton *subButton = [[NSButton alloc]initWithFrame:NSMakeRect(0, 0, 100, 40)];
[subButton setTitle:@"testing"];
[subButton setAutoresizingMask:NSViewWidthSizable|NSViewHeightSizable|NSViewMaxXMargin|NSViewMaxYMargin|NSViewMinXMargin|NSViewMinYMargin];
[subView addSubview:subButton];
[window setContentView:subView];
}

这是构建后的结果:

Screenshot

最佳答案

代码完全按照您的指示运行;按钮和 ImageView 位于正确的位置,都位于窗口的左下角。

图像不会填充 ImageView 的整个高度,因为它具有不同的纵横比:它的宽度明显大于高度,而 ImageView 几乎是正方形的。

没有办法改变 ImageView 以不同的方式工作——填充 ImageView ,即使它必须裁剪图像才能做到这一点。唯一的选择是按比例缩放(保留纵横比)、无论比例如何缩放(填充 ImageView 但可能扭曲图像)以及永远不缩放。如果您想按比例缩放以填充和裁剪,则必须自己完成。或者,您可能希望更改窗口的大小以匹配图像的大小(或至少是长宽比)。

顺便说一句,在 Cocoa 中将按钮放在 ImageView 中是不常见的。大多数 View (执行特定操作的 View )不应包含其他 View 。按钮和 ImageView 都应该位于普通的 NSView 内。

关于objective-c - NSImageView 中的图像和按钮位置错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6247708/

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