我有一个UIButton,用户可以拖放它。我可以通过以下方法识别拖放:

func addTarget(_ target: AnyObject?,
      action action: Selector, forControlEvents controlEvents: UIControlEvents)


另外,我有一个看法。 view和UIButton都是同级,并且在IB中定义。

我的目标是,当用户将按钮拖动到视图中时,该按钮将与其父级断开连接,而其新父级将是该视图。换句话说,该按钮将是该视图的子视图。

我正在做的是(将按钮拖动到视图中时):

button.removeFromSuperview()
view.addSubview(button)


这确实从其父项中删除了该按钮,但仍然在视图内部看不到它。因此,我尝试为按钮提供红色背景,现在将按钮拖动到视图时,我可以在模拟器的左上角看到一些奇怪的红色小背景。

有人可以告诉我我在做什么错吗?缺少东西吗?

最佳答案

Daniel Rahamim,

我相信按钮已添加到您的视图中,但是由于按钮的框架仍指向外部空间(超出子视图框架),因此您无法看到它。尝试设置框架和lemme知道是否可以看到它:)

button.removeFromSuperview()
button.frame = CGRectMake(view.center.x, view.center.y, button.frame.size.width, button.frame.size.height)
view.addSubview(button)

关于ios - 以编程方式从其父级移除 subview ,并将其附加到其他父级,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37561180/

10-12 13:37