【问题标题】:NSBezierPath on a NSView aren't lining up correctlyNSView 上的 NSBezierPath 没有正确排列
【发布时间】:2013-08-10 10:55:30
【问题描述】:

我有一个带有 NSView 的 NSWindow(存储在笔尖中):

我正在尝试将 BezierPath 添加到该视图的图层(self.view2):

CAShapeLayer* circleLayer = [CAShapeLayer layer];
[self.view2 setLayer:circleLayer];

circleLayer.fillColor = [NSColor redColor].CGColor;
circleLayer.path = [NSBezierPath bezierPathWithOvalInRect:self.view2.bounds].quartzPath;
circleLayer.strokeColor = [NSColor blueColor].CGColor;
circleLayer.strokeStart = 0.0f;
circleLayer.strokeEnd = 0.5f;
circleLayer.lineWidth = 5.0f;
circleLayer.transform = CATransform3DMakeRotation(135.0 / 180.0 * M_PI, 0.0, 0.0, 1.0);

这是我回来的:

为什么生成的视图没有正确对齐(即右上角,就像它在我的笔尖上一样)?

【问题讨论】:

  • 我注意到的一件事是,如果我以任何方式调整主窗口的大小,NSView 会立即将自身对齐到正确的位置。
  • 旋转是否发生在视图的左下角?

标签: cocoa nsview nsbezierpath


【解决方案1】:

我只需要将代码放在 awakeFromNib() 中,而不是 applicationDidFinishLaunching() 中。现在可以了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多