gpt4 book ai didi

iphone - 阻止 UIImageView 返回其在 View 中的原始位置?

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:48:14 24 4
gpt4 key购买 nike

我正在研究一个非常简单的 Ray Wenderlich iOS“拖动”示例,其中可以在屏幕上拖动 2 个 UIImageViews(一只猴子和一根香蕉)。它利用 ViewController 实现文件中的 UIPanGestureRecognizer:

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

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

}

效果很好,猴子和香蕉会停留在您将它们拖到的任何位置。但是,我想让任何 UIImageView 被点击(触摸)成为最顶层的 View 。我胡闹了一下,想出了这行代码:

 [self.view bringSubviewToFront:recognizer.view];

我把它放在 handlePan 方法中,它确实将点击(触摸)的任何图像带到前面,但它会将前一个图像重置为其在屏幕上的原始位置。如果我省略将触摸的 subview 带到前面的代码行,它不会这样做。

将选定的 subview 置于最前面以将其他图像重置到其原始位置是什么意思?如何在 UIPanGestureRecognizer 中避免这种情况?不去 touchesBegantouchesEnded 等方法路由?

显然我是 ios 编程的新手,但我找不到可能是一个简单问题的答案。谢谢大家...任何帮助表示赞赏...

最佳答案

我在这里重新创建了您的来源。问题是自动布局,您需要禁用它。因为当您将 View 置于最前面时,它会将规则应用到另一个 View 以检查位置,将其重新定位到原来的位置。

那么,为什么在您更改框架时不会发生这种情况?当您只更改框架时,它不会在您每次更改一个 View 的中心时应用自动布局规则,它只会在您的 View 容器层次结构更改或 View 容器框架更改时应用。

就像您所说的那样,您正在做 Ray Wenderlich 教程,我建议您查看 the tutorial about autolayout . Ray Wenderlich 站点中的资料是一个很好的起点。

--

只需一点帮助来禁用自动布局,在 .xib 和 Storyboard中,选择 View 并禁用复选框:

disabling the autolayout

关于iphone - 阻止 UIImageView 返回其在 View 中的原始位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16827564/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com