Relation entre UIVIew et CALayer concernant l'image d'arrière-plan sur iOS

Essayer de comprendre la relation entre UIView et CALayer. J'ai lu dans la documentation d'Apple, mais il ne décrit pas en détail la relation entre les deux.

  1. Pourquoi est-il que lorsque j'ajoute l'image d'arrière-plan pour afficher "customViewController.vue", j'ai l'indésirable noir couleur de l'image.
  2. Et quand j'ajoute l'image d'arrière-plan de la couche "customViewController.vue.couche", la zone noire de l'image est parti (qui est ce que je voulais), mais l'image de fond est retournée à l'envers. Pourquoi est-ce?
  3. Si je devais ajouter des étiquettes/vues/boutons/etc. pour la vue, la couche de l'image de fond du bloc car CAlayer est soutenu par UIView?
  4. Lorsque vous définissez la couleur d'arrière-plan d'une UIView t-il automatiquement la couleur d'arrière-plan de la couche?
    - (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];
    }

Image d'arrière-plan dans la vue:

Relation entre UIVIew et CALayer concernant l'image d'arrière-plan sur iOS

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

Image d'arrière-plan dans la vue.couche:

Relation entre UIVIew et CALayer concernant l'image d'arrière-plan sur iOS

OriginalL'auteur s2000coder | 2011-05-06