私は現在、FTCoreTextモジュールの編集に取り組んでおり、Webから直接画像を読み込んで、CoreTextで表示しています。
そこで、https://github.com/FuerteInternational/FTCoreText/blob/master/FTCoreText/classes/FTCoreTextView.m#L1149を編集して、AFNetworkingのUIImageViewカテゴリを使用しました。今、私はインターネットから画像をダウンロードしてビューに描画するブロックを使用します。画像は描画されていますが、コンテキストにエラーがあります:
Aug 13 05:34:50 Yohann-iPhone CCFA[9878] <Error>: CGContextSaveGState: invalid context 0x0
Aug 13 05:34:50 Yohann-iPhone CCFA[9878] <Error>: CGContextSaveGState: invalid context 0x0
Aug 13 05:34:50 Yohann-iPhone CCFA[9878] <Error>: CGContextSetBlendMode: invalid context 0x0
Aug 13 05:34:50 Yohann-iPhone CCFA[9878] <Error>: CGContextSetAlpha: invalid context 0x0
Aug 13 05:34:50 Yohann-iPhone CCFA[9878] <Error>: CGContextTranslateCTM: invalid context 0x0
Aug 13 05:34:50 Yohann-iPhone CCFA[9878] <Error>: CGContextScaleCTM: invalid context 0x0
Aug 13 05:34:50 Yohann-iPhone CCFA[9878] <Error>: CGContextDrawImage: invalid context 0x0
Aug 13 05:34:50 Yohann-iPhone CCFA[9878] <Error>: CGContextRestoreGState: invalid context 0x0
あなたはここで私のブロックを見ることができます:
UIImageView *imgNode = [[UIImageView alloc] init];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:imageNode.imageName]];
[imgNode setImageWithURLRequest:request placeholderImage:[UIImage imageNamed:@"rien.gif"] success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) {
if (alignment == kCTRightTextAlignment) x = (self.frame.size.width - image.size.width);
if (alignment == kCTCenterTextAlignment) x = ((self.frame.size.width - image.size.width) / 2);
frame = CGRectMake(x, (lineFrame.origin.y - image.size.height), image.size.width, image.size.height);
if (alignment != kCTCenterTextAlignment) frame.origin.x = (alignment == kCTLeftTextAlignment)? insets.left : (self.frame.size.width - image.size.width - insets.right);
frame.origin.y += insets.top;
frame.size.width = ((insets.left + insets.right + image.size.width ) > self.frame.size.width)? self.frame.size.width : image.size.width;
frame = CGRectMake((((320-2*20)-image.size.width)/2), frame.origin.y, image.size.width, image.size.height);
NSLog(@"Frame : %f %f", frame.size.width, frame.size.height);
NSLog(@"Image : %f %f", image.size.width, image.size.height);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSaveGState(context);
[image drawInRect:CGRectIntegral(frame)];
} failure:nil];
[imgNode.image drawInRect:CGRectIntegral(frame)];
そしてもちろん、私はあなたにコード全体をペーストビンします:http: //pastebin.com/Qj6PtEFj
私はあなたが私を助けることができることを願っています:)!