Sto sviluppando un programma in cui aggiungo a livello di codice un NSImageView a una classe NSView personalizzata. Durante la creazione della vista immagine, sto passando la cornice del contenitore genitore.Come allineare una sottoview al centro di una NSide genitore
-(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;
}
Poi sto usando il metodo addSubView
di aggiungere questo nella visualizzazione personalizzata. Il problema è che l'immagine rimane nella parte inferiore sinistra della vista genitore. Come posso posizionare questa immagine al centro della vista genitore?
Ho provato ad aggiungere un offset all'origine del frame, ma non funziona quando la finestra viene ridimensionata o se viene caricata un'immagine con una dimensione diversa.
Qualsiasi aiuto sarebbe apprezzato.
Si consiglia inoltre di arrotondare tutti i risultati della divisione di numeri interi, come se fosse dispari e si finisce con 0,5, sarà confusa con posizionamento subpixel. – Jaanus
Sì, questo è assolutamente vero. – d11wtq
Ottima risposta, grazie –