在NSView层上设置仿射变换与在iOS上不一样

在NSView层上设置仿射变换与在iOS上不一样,ios,objective-c,macos,cgaffinetransformscale,Ios,Objective C,Macos,Cgaffinetransformscale,我正在努力实现一些非常简单的事情。我想变换图层的比例。然而,它似乎并没有像预期的那样起作用。事实上,它根本不起作用。图层的比例保持不变 这是我的密码: NSView *v = [[NSView alloc]init]; v.wantsLayer = YES; v.frame = self.bounds; float scale = 0.8f; [v.layer setAffineTransform:CGAffineTransformMakeScale(scale,scale)]; [self a

我正在努力实现一些非常简单的事情。我想变换图层的比例。然而,它似乎并没有像预期的那样起作用。事实上,它根本不起作用。图层的比例保持不变

这是我的密码:

NSView *v = [[NSView alloc]init];
v.wantsLayer = YES;
v.frame = self.bounds;
float scale = 0.8f;
[v.layer setAffineTransform:CGAffineTransformMakeScale(scale,scale)];
[self addSubview:v];
如果我记录
v
affineTransform
属性,我会得到
null

在OSX上试试这个:

self.layer.sublayerTransform = CATransform3DMakeScale(scale, scale, 0.0f);
在OSX上尝试以下操作:

self.layer.sublayerTransform = CATransform3DMakeScale(scale, scale, 0.0f);

@Daij Djan猜怎么着?NSView还具有具有转换的层备份视图。你的评论毫无帮助。@Daij Djan你猜怎么着?NSView还具有具有转换的层备份视图。您的评论没有帮助。欢迎,很高兴:-)在sz参数中传递1而不是0,否则您的图层将不再获得点击;)欢迎,高兴:-)在sz参数中传递1而不是0,否则您的层将不再获得点击;)