ios - 使用 BringSubviewToFront 时图像回弹

标签 ios uipangesturerecognizer

我正在制作我的第一个应用程序,它很像单人纸牌游戏 - 用户必须四处移动纸牌并将它们堆叠在一起。现在我是 Objective-C 的新手,所以当我的问题很愚蠢时希望你能原谅我。

所以我正在尝试一些东西,我有两个 UIImageViews,它们附有 UIPanGestureRecgonizer。因此,无论何时用户拖动其中一张卡片,它都必须位于另一张卡片之上。我在我的 ViewController.m 文件中使用下面的代码,但问题是当我拖动一张卡片然后想拖动另一张卡片时,第一张卡片会弹回到原来的位置,但我希望它留在原处我拖着它。当我注释掉 bringSubviewToFront 时,这不会发生,但其中一张卡片始终位于另一张卡片后面。

-(IBAction)dragCard:(UIPanGestureRecognizer *)recognizer {

UIView *cardView = [(UIPanGestureRecognizer *)recognizer view];
[self.view bringSubviewToFront:cardView];

CGPoint translation = [recognizer translationInView:self.view];
recognizer.view.center = CGPointMake(recognizer.view.center.x + translation.x, recognizer.view.center.y + translation.y);
[recognizer setTranslation:CGPointZero inView:self.view];}

我不知道是什么原因造成的。你能帮帮我吗...

编辑:我记录了 self.view.subviews 以显示正在发生的事情。我已经拖动了带有标签 1 的图像,现在我开始拖动带有标签 2 的图像。您可以看到两个坐标都发生了变化 - 带有标签 1 的图像移回原始位置,带有标签 2 的图像也移动了:

2013-05-16 17:02:20.424 (
"<UIImageView: 0x71749e0; frame = (0 0; 320 411); autoresize = TM+BM;    userInteractionEnabled = NO; layer = <CALayer: 0x7174a40>>",
"<UIImageView: 0x7172ef0; frame = (25 77; 42 58); autoresize = TM+BM; tag = 1; gestureRecognizers = <NSArray: 0x7171700>; layer = <CALayer: 0x7171620>>",
"<UIImageView: 0x71722f0; frame = (88 200; 42 58); autoresize = TM+BM; tag = 2; gestureRecognizers = <NSArray: 0x7171bc0>; layer = <CALayer: 0x7172350>>"

2013-05-16 17:02:20.441 (
"<UIImageView: 0x71749e0; frame = (0 0; 320 411); autoresize = TM+BM; userInteractionEnabled = NO; layer = <CALayer: 0x7174a40>>",
"<UIImageView: 0x7172ef0; frame = (30 177; 42 58); autoresize = TM+BM; tag = 1; gestureRecognizers = <NSArray: 0x7171700>; layer = <CALayer: 0x7171620>>",
"<UIImageView: 0x71722f0; frame = (91 201; 42 58); autoresize = TM+BM; tag = 2; gestureRecognizers = <NSArray: 0x7171bc0>; layer = <CALayer: 0x7172350>>"

第一个 ImageView 是我的背景图片。

最佳答案

好的,找到答案here .这是 bringSubviewToFront 和 Autolayout 的问题。抱歉重复这个问题。

关于ios - 使用 BringSubviewToFront 时图像回弹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16564138/

相关文章:

ios - WKWebview 在我注销域后不同步 cookie,在域上打开

ios - 如何在 map 中显示 iBeacon

iphone - 我可以主动关闭我的 iOS 应用程序吗?

ios - 当我结合 UIPanGestureRecognizer 和自动布局时,我的 UIViews 搞砸了

ios - 设置 UIPanGesture 识别期间要查看的框架

ios - 尝试在iOS中使用gestureRecognizer正确移动UIImageView

android - QML 中的多页应用程序

ios - 多层次深度泛型/协议(protocol)的 Swift 泛型和协议(protocol)问题

iphone - 添加平移手势识别器后,我的按钮不会保持突出显示状态?

objective-c - iOS - 手势和 uislider