Estoy desarrollando un programa en el que estoy agregando mediante programación un NSImageView a una clase NSView personalizada. Al crear la vista de imagen, estoy pasando el marco del contenedor principal.Cómo alinear una subvista al centro de un NSView principal
-(NSImageView *)loadNSImage:(NSString *)imageName frame:(NSRect)frame{
imageName = [[NSBundle mainBundle] pathForResource:imageName ofType:@"png"];
NSImage *image = [[NSImage alloc] initWithContentsOfFile:imageName];
NSImageView *imageView = [[NSImageView alloc]initWithFrame:frame];
[imageView setImage:image];
[imageView setImageScaling:NSImageScaleProportionallyUpOrDown];
[imageView setAutoresizingMask:NSViewHeightSizable | NSViewWidthSizable | NSViewMaxXMargin | NSViewMaxYMargin | NSViewMinXMargin | NSViewMinYMargin];
[imageView setImageAlignment:NSImageAlignCenter];
[image release];
return imageView;
}
Entonces yo estoy usando el método addSubView
añadir esto en la vista personalizada. El problema es que la imagen se pega a la esquina inferior izquierda de la vista principal. ¿Cómo puedo colocar esta imagen en el centro de la vista principal?
He intentado agregar un desplazamiento al origen del marco, pero eso realmente no funciona cuando se cambia el tamaño de la ventana, o si se carga una imagen con un tamaño diferente.
Cualquier ayuda sería apreciada.
También puede redondear todos los resultados de la división de números enteros, como si fuera extraño y terminar con 0.5, será borrosa con el posicionamiento de subpíxeles. – Jaanus
Sí, esto es definitivamente cierto. – d11wtq
Gran respuesta, gracias –