添加删除的子视图 Swift 3 iOS

Posted

技术标签:

【中文标题】添加删除的子视图 Swift 3 iOS【英文标题】:Add Removed Subview Swift 3 iOS 【发布时间】:2016-12-22 10:25:19 【问题描述】:

在 self.view 中有一个子视图(tempView),我正在从 superview 中删除它,但是当我尝试将其添加回来时,它没有显示在视图中。在检查框架时,我发现他们的框架是正确的,但视图不可见。下面是从 superview 中删除我的视图并将其添加回来的代码。

if(self.view.subviews.contains(self.tempView))

    self.tempView.removeFromSuperview()

else

    self.view.addSubview(self.tempView)
    self.view.bringSubview(toFront:self.tempView)
    self.view.setNeedsLayout()
    self.view.layoutIfNeeded()

【问题讨论】:

你还是需要重新设置框架 如果你从超级视图中删除视图,那么你必须重新分配并重新构建它以添加 如果视图对象设置为强则不需要。只有弱了才会失去属性。 【参考方案1】:

尝试设置 translatesAutoresizingMaskIntoConstraints=true

if(self.view.subviews.contains(self.tempView))

    self.tempView.removeFromSuperview()

else

    self.tempView.translatesAutoresizingMaskIntoConstraints=true
    self.view.addSubview(self.tempView)
    self.view.bringSubview(toFront:self.tempView)

【讨论】:

以上是关于添加删除的子视图 Swift 3 iOS的主要内容,如果未能解决你的问题,请参考以下文章

删除 viewdisappear 上的子视图出现时再次添加 - 不工作 - ios sdk

为啥我必须删除为 UITableViewCell 添加的子视图,而不是在 UITableViewCell 的子类中?

iOS swift:Deinit一个孩子View Controller

当我按下后退按钮 Swift 3 时,删除的数据重新出现

从父级删除后保留的子视图控制器

在添加/删除 ViewController 作为子视图 Swift 后,ParentView 属性设置为 nil