imageNamed メソッドを使用すると、アプリ内の他のすべての画像がデフォルトの場所にリセットされますが、これは望ましくありません。たとえば、ユーザーが音部記号の新しい場所にドラッグできる音符 (note.png) の画像を含む音部記号があります。音部記号の下には、選択した音符を演奏するために特定の楽器のどこに指を置くべきかを示す画像 (finger.png) があります。そのため、ユーザーがメモ A からメモ B にメモをドラッグすると、imageNamed メソッドを使用して指の画像を "fingerA.png" から "fingerB.png" に変更しようとします。「fingerB.png」が表示されるようになったため、指の画像を変更するのに最適ですが、私のnote.pngは、アプリがロードされたときに開始されたデフォルトの場所に戻されます(この場合、note.pngはnoteAに戻り、 "fingerB.png"
私がこれをどのように行っているかを理解するためのコード スニペットを以下に示します。
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
//location.y is where the user stopped dragging the note
int yloc = location.y;
if(yloc > 40 && yloc <=80)
{
//noteImage is just the note.png that is being move on clef
noteImage.center = CGPointMake(120,60);
fingerImage.image = [UIImage imageNamed:@"fingerB.png"];
}
}
2行のコードを交換して、最初に指の画像を変更してから、メモの画像の座標を設定しようとしました。また、メモ画像の座標を保存して、後で復元しようとしました。私はアイデアを使い果たし始めており、Objective-C または Xcode の知識が豊富な人がこれを回避する方法についていくつかの知恵を持っていることを望んでいます。ありがとう!