在CALayer中实现缩放

时间:2011-12-19 14:52:05

标签: calayer zooming nsscrollview

我正在尝试在分层托管NSVIew中的CALayer上实现缩放。带有图层的NSView(图层大小:1024x768)位于NSScrollView中。我为实现缩放所做的是以下

- (IBAction)zoomOut:(NSButton *)sender {
CALayer *layer = self.editorView.layer;
CGRect frame = layer.frame;
frame.size.width = frame.size.width / 2;
frame.size.height = frame.size.height / 2; 
layer.frame = frame;
}

- (IBAction)zoomIn:(NSButton *)sender {
   CALayer *layer = self.editorView.layer;
   CGRect frame = layer.frame;
  frame.size.width = frame.size.width * 2;
  frame.size.height = frame.size.height * 2; 
  layer.frame = frame;
}

在NSView中单击放大或缩小的按钮后,问题是无论何时我滚动NSView(记住我把NSView放在NSScrollView中,并且NSView比NSScrollView大), CALayer自动调整为原始大小(即1024x768)。我无法弄清楚原因。 任何形式的帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

+ (CALayer *)layer别名后备存储(我将其称为根层)随视图调整大小,无法阻止此操作。