Reproducción automática no se pasa a subcapa

Estoy usando Xamarin para iOS v5.8.3 (compilation 3).

UIView una UIView con un CAGradientLayer en otra UIView mientas esto:

 public static void AddGradientView (CGColor color1, CGColor color2, UIView view) { UIView gradientView = new UIView (view.Bounds); gradientView.BackgroundColor = UIColor.Green; gradientView.AutoresizingMask = UIViewAutoresizing.All; CAGradientLayer gradient = new CAGradientLayer (); gradient.Frame = gradientView.Bounds; gradient.Colors = new CGColor[]{ color1, color2 }; gradientView.Layer.InsertSublayer (gradient, 0); view.AddSubview (gradientView); } 

Pero el resultado es así:

introduzca la descripción de la imagen aquí

El problema es la capa de gradiente, Su frame no se ajusta a la UIView deseada. Creo que es un problema de Autolayout .

¿Alguien me puede poner algo de luz?

¡Gracias por adelantado!

PS El código anterior escrito en objective sharpie pero los desarrolladores de iOS lo pueden entender fácilmente;)

CALayer y sus subclasss no se ven afectadas por la reproducción automática.

Para actualizar un marco de capas, puede usar viewDidLayoutSubviews si está actualizando una desde un controller de vista o layoutSubviews desde una subclass UIView personalizada.

Desde un UIViewController:

 - (void)viewDidLayoutSubviews { [super viewDidLayoutSubviews]; // you need to store a reference to the gradient layer and gradient views or fetch them from the sublayers and subviews self.gradient.frame = self.gradientView.bounds; } 

Subclass UIView:

 - (void)layoutSubviews { [super layoutSubviews]; self.gradient.frame = self.bounds; }