È possibile utilizzare il metodo NSString UIKIT Addition
- (CGSize)sizeWithFont:(UIFont *)font
constrainedToSize:(CGSize)size
lineBreakMode:(NSLineBreakMode)lineBreakMode
per calcolare l'altezza. qualcosa di simile a.
CGSize yourLabelSize = [@"Your very long text" sizeWithFont:yourFont constrainedToSize:CGSizeMake(desiredMaximumWidth, 2000) lineBreakMode:NSLineBreakByWordWrapping];
è davvero importante capire il parametro constrainedToSize
. Devi passare uno CGSize
con larghezza desired maximum
e maximum possible height
. Usa lo stesso UIFont
con la tua etichetta. Non dimenticate di impostare il
[yourLabel setNumberOfLines:0];
Ma il metodo è già deprecato in iOS 7
quindi è necessario utilizzare
- (CGRect)boundingRectWithSize:(CGSize)size
options:(NSStringDrawingOptions)options
attributes:(NSDictionary *)attributes
context:(NSStringDrawingContext *)context
yourLabelSize.height
vi darà l'altezza
spero che vi aiuterà a ...
Perché non usi 0 per il numero di linee? – Larme
Forse questo [tutorial] (http://www.raywenderlich.com/73602/dynamic-table-view-cell-height-auto-layout) può aiutarti - si tratta di celle di tabella con altezza dinamica, ma penso che tu possa trasporre il concetto in qualunque cosa tu stia facendo. È utile se hai a che fare con il layout automatico – Antonio
potrebbe essere utile per te: - http://stackoverflow.com/questions/9181368/ios-dynamic-sizing-labels –