la soluzione migliore e pulita, è solo a giocare con l'altezza della cella, lasciando che il l'immagine può essere ridimensionata automaticamente da Autolayout.
E 'facile:
nella tua cella, aggiungere un UIImageView
e impostare la dimensione che si desidera avere quando la cellula ha l'altezza effettiva;
Imposta come vincoli di questo UIImageView
, almeno superiore, inferiore e uno del bordo laterale (destra o sinistra); impostare anche i vincoli per mantenere la proporzione larghezza/altezza;
A questo punto, quando la cella crescere, l'immagine crescere in altezza, e per mantenere la proporzione (vincolo grazie) è ridimensionato la larghezza pure, avendo SEMPRE la corretta e dimensioni proporzionate.
Ora, dovete solo scrivere il codice per l'altezza della cella:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
static CGFloat cellDefaultHeight = /*the default height of the cell*/;
static CGFloat screenDefaultHeight = /*the default height of the screen i.e. 480 in iPhone 4*/;
CGFloat factor = cellDefaultHeight/screenDefaultHeight
return factor * [UIScreen mainScreen].bounds.size.height;
}
Ovviamente, impostare il contentMode
del UIImageView
-AspectFill
.
fonte
2015-01-23 22:42:22
Perché? Il punto di uno schermo più grande è quello di essere in grado di mostrare più informazioni sullo schermo. Da quello che descrivi, perché preoccuparsi di supportare gli schermi più grandi se hai intenzione di mostrare la stessa quantità di informazioni, solo più grande? – rmaddy
Non so come ridimensionare l'immagine mantenendo le stesse proporzioni. Questa è in realtà la mia domanda. – igrrik