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

发布于 2024-11-09 07:24:20 字数 844 浏览 0 评论 0原文

我正在做一些将 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

I am doing some simple testing of adding CALayer to a UIView. In my main controller class of an iPhone 4 app, I implemented the viewDidLoad method as such:

- (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];
}

The blue background only occupy 1/4 of the screen.

enter image description here

I wonder if it is because I did not take retina display into consideration? What is the best practice in this situation?


Added these debug messages:

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);

Output:

frame w:320.000000 h:460.000000
bounds w:320.000000 h:460.000000

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦里的微风 2024-11-16 07:24:20

setContentsScale 没有效果

  [ca setContentsScale:[[UIScreen mainScreen] scale]];

但是,如果我使用

  [ca setFrame:self.view.bounds];

它就可以了。

setContentsScale has no effect

  [ca setContentsScale:[[UIScreen mainScreen] scale]];

However, if I use

  [ca setFrame:self.view.bounds];

it works.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文