iphone - create - ¿Por qué mi subvista UIView no se muestra dentro del padre?(código adjunto)
swift 4 create view programmatically (1)
¿Por qué mi UIView
personalizado no se UIView
dentro del contenedor UIView
de su padre? Así que lo que tengo es:
- MainViewController: tiene un
UIView
"customViewContainer
" (que no ocupa toda la pantalla), y - CustomView - es una
UIView
con un archivo XIB - es laUIView
aquí que cuando se procesa (con AspectFit) se está mostrando fuera de los límites del "customViewContainer
" principal
El código utilizado para configurar la vista personalizada es este extracto de MainViewController:
<< corte - ver Update2 abajo >>
Entonces, ¿no puedo ver por qué la vista CustomView
se representa de una manera que es más grande en el área que el customViewContainer
principal? Lo que quiero es que la customview
ajuste completamente al " customViewContainer
" principal según el AspectFit
tipo AspectFit
.
Gracias
EDITAR 1 (aclaración adicional): si "recorte subvistas" en la vista principal, entonces recorta las cosas, pero lo que realmente necesito es representar la vista personalizada dentro del área de la vista principal (no toda el área de la pantalla). Así que necesito (a) el centro de la vista personalizada para estar en el centro de la vista primaria, y (b) la vista personalizada para AspectFit en la vista primaria correctamente. ¿Algunas ideas?
EDIT 2 - Actualizar
perdón - cometió un error de copiar / pegar con el código en la pregunta original - parece que no puede editarlo, así que pondré una versión correcta a continuación - para aclarar:
MainViewController
: tiene un UIView
" containerView
" (que no ocupa toda la pantalla), y CustomView
- es un UIView
con un archivo XIB - es el UIView
aquí que cuando se procesa (con AspectFit
) se está AspectFit
fuera de los límites del padre " containerView
"
Con el siguiente código, ¿tiene sentido ahora? El motivo de este código es que tengo un UIView
personalizado, PERO tengo un archivo XIB asociado, así que esta fue la única manera de obtener mi vista de MainController
para poder usarlo. Es decir, tener una vista de contenedor en la view
MainController
y luego agregar mediante programación el CustomView
en la vista de contenedor.
Re "Así que configura el marco o el centro de la vista que estás agregando para que sea lo que quieres que sea". ¿Estás diciendo que tengo que configurar mediante programación / manualmente la dimensión de CustomView para que sea lo que quiero (en relación con el contenedor contenedor primario)?
Lo que esperaba era que hubiera una forma de utilizar la configuración de diseño declarativo para poder decir "Cargar la vista personalizada desde su archivo XIB y el aspecto. Colocar esta vista en el self.containerView", sin embargo, estoy empezando a preguntarme ¿Si esto es posible?
CÓDIGO ACTUALIZADO ABAJO (cometió un error en la pregunta original cuando lo copié / pegué y cambié los nombres de las variables, etc.)
- (void)viewDidLoad
{
[super viewDidLoad];
// Load the custom Altimeter View into this UIControllerView''s container UIView for it
NSArray *nibs = [[NSBundle mainBundle] loadNibNamed:@"Customview" owner:self options:nil];
for (NSObject *obj in nibs) {
if ( [obj isKindOfClass:[Customview class]]) {
Customview *cv = (Customview*)obj;
[self.containerView addSubview:cv];
break;
}
}
// UI Layout
self.containerView.layer.borderWidth = 2;
self.containerView.layer.borderColor = [[UIColor redColor] CGColor];
}
Compruebe si la propiedad "Subvistas de recorte" del elemento primario en el archivo IB está marcada.
Creo que el código equivalente es self.view.clipsToBounds = YES
.
si este es NO
, las subvistas que dibujan afuera serán visibles como si estuvieran dibujadas en el padre.