2012-12-19 14 views
6

Próbuję zmodyfikować właściwości czcionki tekstu w warstwie, ale tak się nie dzieje. Czy ktokolwiek mógłby pomóc? Proszę znaleźć kod poniżej:Rozmiar i typ czcionki nie ma zastosowania z 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; 
} 

Odpowiedz

7

Aby zmienić rozmiar czcionki/font o CATextLayer, trzeba przypisać wartości do „czcionki” i „font” właściwości warstwy.

Albo musisz użyć NSAttributedString, w którym to przypadku używane są wartości tego obiektu napisów.

Wywołanie "sizeWithFont", którego używasz, jest dodatkiem NSString, który nie robi nic, tylko oblicza i zwraca CSSize z szerokością i wysokością tekstu, który podajesz w czcionce, którą je podajesz. Ponieważ nie używasz zwróconego CGSize w swoim kodzie, nie robi absolutnie nic.

Numer referencyjny w Apple docs.

+0

To jest po prostu fantastyczne. Dzięki. Zadziałało. – Armand

+0

Idealny - jeśli tego właśnie szukasz, zaznacz to jako poprawną odpowiedź, aby był widoczny dla innych, co zostało rozwiązane! –

+0

Pewnie, że będę, ale jak to zrobić? Jestem nowy na tej stronie. Również o CATextLayer: Czy istnieje sposób na zaokrąglenie narożnika warstwy? A w jaki sposób możesz przerwać linie tekstu wewnątrz warstwy? – Armand