iOS:self.view.bounds没有填满整个窗口

Ant*_*ong 6 calayer uiviewcontroller uiview ios iphone-4

我正在做一些简单的测试,将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];
}
Run Code Online (Sandbox Code Playgroud)

蓝色背景仅占屏幕的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);
Run Code Online (Sandbox Code Playgroud)

输出:

frame w:320.000000 h:460.000000
bounds w:320.000000 h:460.000000
Run Code Online (Sandbox Code Playgroud)

Ant*_*ong 8

setContentsScale 没有效果

  [ca setContentsScale:[[UIScreen mainScreen] scale]];
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用

  [ca setFrame:self.view.bounds];
Run Code Online (Sandbox Code Playgroud)

有用.