iOS Utilisation mixte de la mise en page automatique avec une mise en page non automatique


Exemple

Parfois, vous pouvez vouloir effectuer des actions supplémentaires pour les calculs de mise en page automatique effectués par UIKit lui-même.

Exemple: lorsque vous avez un UIView avec un maskLayer , vous devrez peut-être mettre à jour maskLayer dès que Auto Layout modifie le frame UIView

// CustomView.m
- (void)layoutSubviews {
    [super layoutSubviews];
    // now you can assume Auto Layout did its job
    // you can use view's frame in your calculations
    CALayer maskLayer = self.maskLayer;
    maskLayer.bounds = self.bounds;
    ...
}

ou si vous souhaitez prendre des mesures supplémentaires pour la mise en ViewController automatique dans ViewController

- (void)viewDidLayoutSubviews {
    [super viewDidLayoutSubviews];
    // now you can assume all your subviews are positioned/resized correctly
    self.customView.frame = self.containerView.frame;
}