Reactúa la vista iOS personalizada nativa que responde al estilo alto / ancho

Estoy intentando get mi UIView personalizado para responder a los styles de ancho y alto, por ejemplo

<MyCustomView style={{width: 200, height: 300}}/> 

He seguido de cerca el ejemplo simple en https://github.com/brentvatne/react-native-dashed-border-example

Actualmente, mi vista y ViewManager se parecen a:

 #import "MyCustomView.h" #import "RCTViewManager.h" @implementation MyCustomView - (instancetype)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { // Create the component view } return self; } @end 

y el ViewManager:

 @implementation MyCustomViewManager RCT_EXPORT_MODULE(); - (UIView *)view { return [[MyCustomView alloc] initWithFrame: [[UIScreen mainScreen] bounds]]; } @end 

Sin embargo, esto, por supuesto, siempre llena la pantalla. Quiero poder establecer la altura en este componente y, idealmente, usar el método RN para pasarlo por style .

Si sigo el ejemplo simple de borde, termino con

 @implementation MyCustomView - (instancetype)init { self = [super init]; if (self) { // Create the component view } return self; } @end 

y

 @implementation MyCustomViewManager RCT_EXPORT_MODULE(); - (UIView *)view { return [[MyCustomView alloc] init]; } @end 

Pero la vista no se muestra, e informa que self.bounds.size.height es 0.00.

¿Hay algo que me he perdido para que esto funcione? ¿Debo emplear RCTBridge? Antes tenía la línea

 @synthesize bridge = _bridge; 

como en https://github.com/brentvatne/react-native-dashed-border-example/blob/master/BVDashedBorderViewManager.m#L9 pero recibí un error que decía "Bridge not set"

Puede anular reacSetFrame en su vista y obtendrá acceso al marco cada vez que se actualice mediante un layout React Native:

 - (void)reactSetFrame:(CGRect)frame { CGFloat height = frame.size.height; // Do something with the height here [super reactSetFrame: frame]; } 

Deberá importar la categoría React para UIView si aún no está en ese file:

 #import "UIView+React.h"