2

に を追加しようとしCATextLayerていUITableViewCellます。問題は、既に foregroundColor を設定しているのに、テキストが黒くレンダリングされることです。誰かが私に欠けているものを教えてもらえますか? ありがとう。

CATextLayer *buyPrice_port = [CATextLayer layer];
buyPrice_port.frame = CGRectMake(144, 42, 76, 21);
buyPrice_port.font = (__bridge CFTypeRef)([UIFont boldSystemFontOfSize:18]);
buyPrice_port.foregroundColor = [UIColor colorWithRed:0 green:190/255.0 blue:191/255.0 alpha:1.0].CGColor;
buyPrice_port.alignmentMode = kCAAlignmentCenter;
buyPrice_port.string = @"BAC";
[self.contentView.layer addSublayer:buyPrice_port];
4

3 に答える 3

2

ここにある情報を修正するためにチャイムを鳴らすと思っただけです。コードが機能しない理由は、UIFont を CGFontRef にキャストできないためです (NSFont は Mac OS X ではキャストできます)。CATextLayer の font プロパティは、Mac OS ではフォントを期待できますが、iOS ではフォントの名前を文字列としてしか使用できないため、次のように入力するだけです。

layer.font = (__bridge CFTypeRef)@"Futura"

NSString で CFBridgingRetain を使用しないでください。CFRelease を呼び出して解放する必要があります。

于 2013-06-03T06:25:52.873 に答える
-2

CPTTextLayer のフォントと色を変更するには、CPTMutableTextStyle を使用します。

static CPTMutableTextStyle *whiteText = nil;
if ( !whiteText ) {
    whiteText       = [[CPTMutableTextStyle alloc] init];
    whiteText.color = [CPTColor whiteColor];
}

    CPTTextLayer *newLayer = [[[CPTTextLayer alloc] initWithText:titleString
                                                           style:whiteText] autorelease];
于 2014-04-14T06:22:42.670 に答える