Связь между UIVIew и CALayer относительно фонового изображения на iOS

Пытаюсь понять взаимосвязь между UIView и CALayer. Я читал документацию Apple, но она не описывает подробно отношения между ними.

  1. Почему, когда я добавляю фоновое изображение для просмотра "customViewController.view", я получаю нежелательный черный цвет изображения.

  2. И когда я добавляю фоновое изображение к слою customViewController.view.layer, черная область изображения исчезает (что я и хотел), но фоновое изображение переворачивается вверх ногами. Почему?

  3. Если бы я добавил ярлыки / представления / кнопки / и т. Д. в представление, будет ли фоновое изображение слоя блокировать их, потому что CAlayer поддерживается UIView?

  4. Когда вы устанавливаете цвет фона UIView, он автоматически устанавливает цвет фона связанного слоя?

     - (void) viewDidLoad
    {
     [super viewDidLoad];
     customViewController = [[CustomViewController alloc] init];
     customViewController.view.frame = CGRectMake(213, 300, 355, 315);
    
     customViewController.view.backgroundColor = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"login_background.png"]];
     // customViewController.view.layer.backgroundColor = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"login_background.png"]].CGColor;
    
     [self.view addSubview:customViewController.view];
    }
    

Background image in view:

background in view

- (void)viewDidLoad
{
    [super viewDidLoad];
    customViewController = [[CustomViewController alloc] init];
    customViewController.view.frame = CGRectMake(213, 300, 355, 315);

//  customViewController.view.backgroundColor = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"login_background.png"]];
    customViewController.view.layer.backgroundColor = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"login_background.png"]].CGColor;

    [self.view addSubview:customViewController.view];
}

Background image in view.layer:

background image in layer

12
задан Nick Weaver 6 May 2011 в 22:25
поделиться