iOS: self.view.bounds не заполняет все окно - PullRequest
6 голосов
/ 22 мая 2011

Я делаю простое тестирование добавления 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];
}

Синий фон занимает только четверть экрана.

enter image description here

Интересно, так ли это, потому что я не учел показ сетчатки?Какова лучшая практика в этой ситуации?


Добавлены следующие сообщения отладки:

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

1 Ответ

8 голосов
/ 23 мая 2011

setContentsScale не имеет эффекта

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

Однако, если я использую

  [ca setFrame:self.view.bounds];

это работает.

...