Изменение кадра CALayer UIView (self.view.layer.frame =…), похоже, не имеет никакого эффекта

Я уверен, что упускаю что-то базовое. Я пробую код CALayers 'hello world' из:

http://www.raywenderlich.com/2502/introduction-to-calayers-tutorial

Выполнение самого первого примера. Новый проект единого представления в xcode 4.2. Без изменений перо / раскадровки. Импортируйте QuartzCore. Добавьте следующий код в ViewDidLoad в ViewController.m:

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.view.layer.backgroundColor = [UIColor blueColor].CGColor;
    self.view.layer.cornerRadius = 30.0;    
    self.view.layer.frame = CGRectMake(20, 20, 20, 20);
}

Я запускаю это (ipad 2 или ipad simulator) и получаю полноэкранный синий прямоугольник с закругленными углами. Я надеялся получить синий прямоугольник 20x20, смещенный на 20/20.

Я четко получаю контроль над слоем представлений (как показано цветом и закругленными углами). Однако настройка рамки, похоже, не оказывает никакого влияния. Я NSLog'ed фрейм до / после его установки, и он изменился. Фрейм корневого слоя привязан к фрейму uiview?

У меня нет веских причин менять фрейм слоев просмотра, я просто пытаюсь понять, что происходит. Надеюсь, это простой вопрос ...

Спасибо!

Пол

6
задан Eddy Freddy 22 October 2011 в 16:37
поделиться