我正在创建一个版本的游戏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相同。
有什么建议吗?
答案 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];
希望它可以帮助你......