「画像プロパティ」の例を変更せずに実行すると、画像の色が失われます (例に付随するビデオとは異なります)。何が起こっているのか分かりますか?
更新: この問題があるのは、含まれている C4 画像 (C4Sky.png および C4Table.png) のみであることに気付きました。
「画像プロパティ」の例を変更せずに実行すると、画像の色が失われます (例に付随するビデオとは異なります)。何が起こっているのか分かりますか?
更新: この問題があるのは、含まれている C4 画像 (C4Sky.png および C4Table.png) のみであることに気付きました。
問題は解決しません。C4Imageの画像プロパティにバグがあるようです。
解決策は、表示したい C4Image へのポインターを使用し、ポインターが指している C4Image をキャンバスに含めることです。キャンバスから古い画像を必ず削除してください。オブジェクト比較を使用すると、余分なブール変数が不要になります。
#import "C4Workspace.h"
@implementation C4WorkSpace {
//define 2 invisible images
C4Image *i1, *i2;
//define a pointer to a selected image
C4Image *visibleImage;
}
-(void)setup {
i1 = [C4Image imageNamed:@"C4Sky.png"];
i2 = [C4Image imageNamed:@"C4Table.png"];
visibleImage = i1;
i1.center = i2.center = self.canvas.center;
[self.canvas addImage:visibleImage];
}
-(void)touchesBegan {
[self.canvas removeObject:visibleImage]; // remove old image
// see what the pointer is pointing to and update accordingly
if (visibleImage == i1)
visibleImage = i2;
else
visibleImage = i1;
// add the newly referenced C4Image to canvas
[self.canvas addImage:visibleImage];
}
@end
このコードを保持する要点へのリンク: https://gist.github.com/drart/5695449