2012-12-19 16 views
6

Sto tentando di modificare le proprietà del carattere di un testo all'interno di un livello ma ciò non avviene. Qualcuno potrebbe dare una mano? Si prega di trovare il codice qui sotto:Dimensione carattere e tipo non applicabile con CATextLayer

- (id)initWithFrame:(CGRect)frame 
{ 
    self = [super initWithFrame:frame]; 

if (self) 
{ 

    // All HypnosisViews start with a clear background color 

    [self setBackgroundColor:[UIColor clearColor]]; 
    [self setCircleColor:[UIColor lightGrayColor]]; 


    // Create the new layer object 
    boxLayer = [[CATextLayer alloc] init]; 

    // Give it a size 
    [boxLayer setBounds:CGRectMake(0.0, 0.0, 300.0, 85.0)]; 

    // Give it a location 
    [boxLayer setPosition:CGPointMake(160.0, 350.0)]; 

    // Make half-transparent red the background color for the layer 
    UIColor *reddish = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.75]; 

    // Get CGColor object with the same color values 
    CGColorRef cgReddish = [reddish CGColor]; 
    [boxLayer setBackgroundColor:cgReddish]; 

    // Make it a sublayer on the view's layer 
    [[self layer] addSublayer:boxLayer]; 

    NSString *text2 = @"You are me."; 
    UIFont *font2 = [UIFont fontWithName:@"Times New Roman" size:10.0]; 
    [text2 sizeWithFont:font2]; 


    [boxLayer setString:text2]; 

} 
return self; 
} 

risposta

7

Per modificare la dimensione del carattere/font di un CATextLayer, è necessario assegnare valori alla proprietà "fontSize" dello strato di "carattere" e.

Oppure è necessario utilizzare una stringa NSAttribuita nel qual caso vengono utilizzati i valori dell'oggetto stringa.

La chiamata "sizeWithFont" utilizzata è un'aggiunta NSString che non fa altro che calcolare e restituire un CSSize con la larghezza e l'altezza del testo che gli viene assegnato nel carattere che gli viene assegnato. Poiché non utilizzi CGSize restituito nel tuo codice, non fa assolutamente nulla.

Riferimento nello Apple docs.

+0

Questo è semplicemente fantastico. Grazie. Ha funzionato. – Armand

+0

Perfetto: se è quello che stavi cercando, contrassegnalo come risposta corretta in modo che sia visibile agli altri questo è stato risolto! –

+0

Certo, ma come farlo? Sono nuovo su questo sito. Anche su CATextLayer: esiste un modo per arrotondare l'angolo del livello? E come spezzerai le linee per un testo all'interno del livello? – Armand

Problemi correlati