我正在做一些将CALayer添加到UIView的简单测试。在我的iPhone 4应用程序的主控制器类中,我实现了viewDidLoad
方法:
- (void)viewDidLoad
{
[super viewDidLoad];
NSLog(@"%s", __PRETTY_FUNCTION__);
CALayer* ca = [[CALayer alloc] init];
[ca setBounds:self.view.bounds];
[ca setBackgroundColor:[[UIColor blueColor] CGColor]];
[self.view.layer addSublayer:ca];
}
蓝色背景仅占屏幕的1/4。
我想知道是不是因为我没有考虑视网膜显示?在这种情况下,最佳做法是什么?
添加了以下调试消息:
NSLog(@"frame w:%f h:%f", self.view.frame.size.width, self.view.frame.size.height);
NSLog(@"bounds w:%f h:%f", self.view.bounds.size.width, self.view.bounds.size.height);
输出:
frame w:320.000000 h:460.000000
bounds w:320.000000 h:460.000000
答案 0 :(得分:8)
setContentsScale
无效
[ca setContentsScale:[[UIScreen mainScreen] scale]];
但是,如果我使用
[ca setFrame:self.view.bounds];
它有效。