NSImageView图像填充模式

NSImageView图像填充模式

可以使用这个:图像将强制填充视图大小

(Aspect Fill)

imageView.imageScaling = .scaleAxesIndependently

(Aspect Fit)

imageView.imageScaling = .scaleProportionallyUpOrDown

(中心顶部)

imageView.imageScaling = .scaleProportionallyDown

您可能会发现子类更容易 NSView 并提供一个 CALayer 方面为您填充的内容。以下是 initNSView 子类的可能外观。

- (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 非常重要(如果先设置wantsLayer,则会获得默认的背衬层)。

您可以使用一种 setImage 方法来简单地更新图层的内容。

Link:(NSImageView图像方面填充?)[https://xbuba.com/questions/23002653]