【问题标题】:Setting affine transform on NSView layer not working as on iOS在 NSView 层上设置仿射变换不像在 iOS 上那样工作
【发布时间】:2014-01-19 15:01:52
【问题描述】:

我正在尝试实现一些非常简单的事情。我想改变图层的比例。但是,它似乎没有按预期工作。事实上,它根本不起作用。图层的比例保持不变。

这是我的代码:

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];

如果我记录vaffineTransform 属性,我会得到null

【问题讨论】:

  • @Daij-Djan 你猜怎么着? NSView 也有带有变换的支持层的视图。您的评论没有帮助。

标签: ios objective-c macos cgaffinetransformscale


【解决方案1】:

在 OSX 上试试这个:

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

【讨论】:

  • 在 sz 参数中传递 1 而不是 0,否则您的图层将不再获得点击;)
猜你喜欢
  • 1970-01-01
  • 2011-12-20
  • 2015-04-20
  • 2015-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多