私は、Travis が先週私にくれた例 ( C4 画像の一部を保存する) を適応させて、画面を C4Image として保存しようとしました。私はそれが次のように動作するはずだと思った:
CGFloat scale = 5.0;
//begin an image context
CGSize rect=CGSizeMake(self.canvas.width, self.canvas.height);
UIGraphicsBeginImageContextWithOptions(rect, NO, scale);
//create a new context ref
CGContextRef c = UIGraphicsGetCurrentContext();
//render the original image into the context
[self.canvas renderInContext:c];
//grab a UIImage from the context
UIImage *newUIImage = UIGraphicsGetImageFromCurrentImageContext();
//end the image context
UIGraphicsEndImageContext();
//create a new C4Image
self.currentAlphabetImage = [C4Image imageWithUIImage:newUIImage];
C4Log(@"self.currentAlphabetImage:%@", self.currentAlphabetImage);
self.currentAlphabetImage.width=self.canvas.width/2;
self.currentAlphabetImage.center=self.canvas.center;
self.currentAlphabetImage.backgroundColor=navBarColor;
[self.canvas addImage:self.currentAlphabetImage];
...ログが私に与えたとしても
self.currentAlphabetImage:C4Image: 0x15840970; baseClass = UIControl;
frame = (0 0; 320 568); layer = C4Layer: 0x15842590>>
...画面には何も表示されません...しかし、はい、キャプチャされたはずのものがキャンバスにありました...
繰り返しますが、何が悪いのかわかりません。また、objectiveC を使用した他の試みもうまくいきません (例:画面の iOS スクリーンショット部分)