设置CALayer框架不起作用

时间:2014-04-25 10:50:32

标签: ios objective-c macos calayer nsview

我正在创建一个版本的游戏2048,我正在尝试绘制其中一个图块的背景。所以我有一个尺寸为100 x 100的NSView,我希望这个视图层背景颜色为90 x 90。

这是我的代码:

    // Set view as wanting layer
    self.wantsLayer = YES;

    // Create layer for view
    self.layer.backgroundColor = [self backgroundColor:n].CGColor;
    self.layer.frame = CGRectInset(self.frame, 20, 20);

背景颜色很好,但框架根本没有变化。该帧与父NSView相同。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您可以设置图层的位置。

  // Set view as wanting layer
    self.wantsLayer = YES;

    // Create layer for view
    self.layer.backgroundColor = [self backgroundColor:n].CGColor;
    self.layer.position = CGPointMake(x, y);

使用动画

[CATransaction begin];
[CATransaction setAnimationDuration:2.0];
self.layer.position = CGPointMake(x, y);
[CATransaction commit];

没有动画

   [CATransaction begin]; 
   [CATransaction setValue: (id) kCFBooleanTrue forKey: kCATransactionDisableActions];
   //self.layer.position = CGPointMake(x, y);
   self.layer.frame = CGRectMake(10, 10, 90, 90);//set frame as per your requirement
   [CATransaction commit];

希望它可以帮助你......