2

配列内のすべての範囲の色を設定しようとしていますが、このエラーが発生しています。理由がわかりません。範囲はすべて有効です。テストするために範囲を手動で挿入してみました。ありがとうございました。

CGContextSetFillColorWithColor: 無効なコンテキスト 0x0

NSMutableAttributedString * string = [[NSMutableAttributedString alloc] initWithString:tv.text];

for (NSString * s in array) {
        [string addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSRangeFromString(s)];
}

CATextLayer *textlayer = [[CATextLayer alloc]init];
textlayer.frame = CGRectMake(0, 0, 320, 480);
[self.view.layer addSublayer:textlayer];
textlayer.string = @"aString"; //works
textlayer.string = string; //does not work
tv.text = @"";
4

2 に答える 2

9

コード例は、ビルドしようとしているものとまったく同じコードですか?NSForegroundColorAttributeNameMac OS XSDKとiOS6.0以降でのみ利用できることは間違いないので、サンプルコードはコンパイルすらしないでください。

代わりに必要なのは、おそらく、の代わりにをkCTForegroundColorAttributeName渡すことです。CGColorRefNSColor

[string addAttribute:(id)kCTForegroundColorAttributeName
               value:(id)[UIColor redColor].CGColor
               range:NSRangeFromString(s)];

しかし、これが本当に無効なコンテキストエラーの原因であるかどうかはわかりません。

于 2012-07-30T20:29:07.477 に答える
0

範囲ではなく、コンテキストが間違っています。色のないものの色を設定しようとしています。

于 2012-07-30T19:48:11.833 に答える