所以我习惯了UIImageView
,并能够设置其图像在其中显示的不同方式。例如 AspectFill
模式等...
我想使用 NSImageView
完成同样的事情在 Mac 应用程序上。是否NSImageView
工作方式类似于 UIImageView
在这方面或者我将如何在 NSImageView
中显示图像并选择不同的方式来显示该图像?
最佳答案
您可能会发现子类化更容易 NSView
并提供 CALayer
这是否为你填补了方面。这是init
可能看起来像这样 NSView
子类。
- (id)initWithFrame:(NSRect)frame andImage:(NSImage*)image
{
self = [super initWithFrame:frame];
if (self) {
self.layer = [[CALayer alloc] init];
self.layer.contentsGravity = kCAGravityResizeAspectFill;
self.layer.contents = image;
self.wantsLayer = YES;
}
return self;
}
注意设置图层的顺序,然后设置想要的图层是非常重要 (如果你先设置了 WantsLayer,你会得到一个默认的支持层)。
你可以有一个
setImage
简单地更新图层内容的方法。
关于macos - NSImageView 图像纵横比填充?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23002653/