我正在实现一个简单的 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 顺序在拖动过程中保持不变。在下面的图片中,我正在拖动国王。注意它是如何正确地位于左图中的九之上,但不正确地位于右图中的二之下(实际上是在整个堆栈之下):
我也尝试过更改layer.zPosition
属性,但无济于事。如何在拖动过程中将卡片视图置于前面?我很迷惑。