2011-11-21 11 views
6

Se si imposta textLayer.wrapped = YES, come si ridimensiona textLayer per contenere il testo inserito? Ad esempio, come ottengo la nuova altezza dello textLayer?CATextLayer wrapped sizeToFit?

Fondamentalmente, voglio qualcosa come -[UILabel sizeToFit].

+0

si è interrogato sul che troppo .. – Nils

risposta

2

La prima cosa che devi fare è ottenere la dimensione del testo.

Per fortuna, il NSString UIKit Additions Reference offre un metodo per fare esattamente questo:

- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(UILineBreakMode)lineBreakMode 

che vi darà un CGSize che è possibile utilizzare per impostare la struttura del vostro UILabel o qualunque sottoclasse di UIView che sei utilizzando.

Quindi, ipotizzando textLayer è un UILabel - piuttosto che un CALayer - vi ritroverete con qualcosa di simile:

UIFont *myFont = [UIFont boldSystemFontOfSize:12.0f]; 
CGSize myFontSize = [myString sizeWithFont:myFont]; 
myLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, myFontSize.width, myFontSize.height)]; 
myLabel.text = newTitle; 
myLabel.font = myFont; 
+1

La domanda è per CALayer. –

Problemi correlati