ユーザーが通常の方法でカードをドラッグできるようにする単純な iOS ソリティア ゲームを実装しています。カードはUIView
サブクラスで表されCardView
ます。すべてのカード ビューは、 のサブビューである兄弟ですSolitaireView
。次のスニペットは、「カードを前面に持ってくる」ことを試みて、ドラッグされているときに他のすべてのビューの上に表示されるようにします。
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
if (touch.view.tag == CARD_TAG) {
CardView *cardView = (CardView*) touch.view;
...
[self bringSubviewToFront:cardView];
...
}
}
残念ながら、カードの z オーダーはドラッグ中に変更されません。下の画像では、キングをドラッグしています。左の画像では正しく Nine の上にあるのに、右の画像では間違って Two の下 (実際にはスタック全体の下) にあることに注意してください。
layer.zPosition
また、プロパティも変更しようとしましたが、役に立ちませんでした。ドラッグ中にカード ビューを前面に移動するにはどうすればよいですか? 私は当惑しています。