Ho un oggetto UIImageView
configurato con Layout automatico. Ho creato dei vincoli in modo che la vista mantenga una distanza costante dalla sua superview. In formato visivo sarebbe come:Come combinare i vincoli di layout automatico con la proprietà contentMode di UIView
@"V:|-[imageView]-|"
@"H:|-[imageView]-|"
Ma vorrebbe anche mantenere le proporzioni dell'immagine sottostante, e così ho assegnato UIViewContentModeScaleAspectFit
a contentMode
.
ho pensato che tutto stava funzionando bene fino a quando ho impostato il valore cornerRadius
del associata CALayer
:
self.imageView.layer.cornerRadius = 7;
self.imageView.layer.maskToBounds = YES;
Ora, quando la vista dell'immagine viene ridimensionata, per esempio a causa di un cambiamento di orientamento, gli angoli arrotondati vengono persi a seconda delle nuove dimensioni della vista. La ragione è che cornerRadius
vale per il UIImageView
(struttura a trattini sotto), ma poiché l'immagine sottostante viene anche ridimensionato rispettare contentMode
(struttura in asterischi sotto), angoli arrotondati non sono più visibili:
--------------------------
| ********** |
| * * |
| * * |
| * * |
| ********** |
--------------------------
Esiste un modo per prevenire questo comportamento?
Grazie ... lavorare come un fascino. lottando per così tanto tempo. –
Questo lavoro per un UITableViewCell solo se si allegano vincoli alla cella tableview e NOT al contentView. (le viste possono ancora essere aggiunte al contentView –
questa è la soluzione se si hanno vincoli complessi per tutte le classi di dimensioni in uitableviewcell – khunshan