2011-12-19 7 views
1

レイヤード・ホスティングのNSVIewでCALayerのズームを実装しようとしています。レイヤーを持つNSView(レイヤーのサイズ:1024x768)は、NSScrollViewの内部にあります。私はズームを実装するためにやったことでズームやNSViewの中でズームアウトボタンをクリックした後、次のCALayerズームの実装

- (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のを置くことを覚えているということですNSScrollViewよりNSViewが大きい場合)、CALayerは自動的に元のサイズ(1024x768)にリサイズされます。私はその理由を理解できません。 どんな種類の助けでも大歓迎です。

答えて

0

+ (CALayer *)layerエイリアスバッキングストア(私はそれをルートレイヤーと呼んでいます)はビューでサイズ変更されますが、これを防ぐ方法はありません。

関連する問題