Ios bringSubviewToFront将UIView移回原始位置

Ios bringSubviewToFront将UIView移回原始位置,ios,swift,uipangesturerecognizer,Ios,Swift,Uipangesturerecognizer,我有一个拖放手势的视图。如果用户将一个视图拖放到另一个视图上,它将使用该视图切换位置。在拖动uipangestrerecognizer方法的过程中,我使用self.view.bringSubviewToFront(sender.view!)将拖动的视图置于其他视图之上 但是,当我在最近删除的视图上调用bringsubview tofront时,该视图将立即移回其原始位置。如果关闭“自动布局”,它可以正常工作 func draggedViewHandler(sender:UIPanGest

我有一个拖放手势的视图。如果用户将一个视图拖放到另一个视图上,它将使用该视图切换位置。在拖动
uipangestrerecognizer
方法的过程中,我使用
self.view.bringSubviewToFront(sender.view!)
将拖动的视图置于其他视图之上

但是,当我在最近删除的视图上调用
bringsubview tofront
时,该视图将立即移回其原始位置。如果关闭“自动布局”,它可以正常工作

    func draggedViewHandler(sender:UIPanGestureRecognizer){

        if(sender.state == .Began)
        {
            // If you drag the recently dropped view, this line will cause the view to jump back
            // to its original position that was layout in Autolayout.  If you turn off Autoview, it works fine.
            self.view.bringSubviewToFront(sender.view!)
        }

        [additional code...]
    }
这是一份完整的Swift项目工作副本


你已经把你的手指放在这件事上了。这样想:

  • 自动布局位置视图

  • 您正在定位视图(在代码中)

这两件事是有冲突的。你不能做你正在做的事


如果要在代码中移动视图,当该视图也受到“自动布局”的影响时,必须更改定位该视图的约束,以便“自动布局”将其定位到所需的位置。如果要在视图上使用“自动布局”,则在重新定位视图时,必须使用“自动布局”,而不是使用“自动布局”。

您已经对这一问题进行了讨论。这样想:

  • 自动布局位置视图

  • 您正在定位视图(在代码中)

这两件事是有冲突的。你不能做你正在做的事


如果要在代码中移动视图,当该视图也受到“自动布局”的影响时,必须更改定位该视图的约束,以便“自动布局”将其定位到所需的位置。如果要在视图上使用“自动布局”,则在重新定位视图时,必须使用“自动布局”,而不是使用“自动布局”。

您已经对这一问题进行了讨论。这样想:

  • 自动布局位置视图

  • 您正在定位视图(在代码中)

这两件事是有冲突的。你不能做你正在做的事


如果要在代码中移动视图,当该视图也受到“自动布局”的影响时,必须更改定位该视图的约束,以便“自动布局”将其定位到所需的位置。如果要在视图上使用“自动布局”,则在重新定位视图时,必须使用“自动布局”,而不是使用“自动布局”。

您已经对这一问题进行了讨论。这样想:

  • 自动布局位置视图

  • 您正在定位视图(在代码中)

这两件事是有冲突的。你不能做你正在做的事

如果要在代码中移动视图,当该视图也受到“自动布局”的影响时,必须更改定位该视图的约束,以便“自动布局”将其定位到所需的位置。如果要在视图上使用“自动布局”,则在重新定位视图时,必须使用“自动布局”,而不是使用“自动布局”