添加 - swift后以编程方式删除UILabel

时间:2016-12-02 14:36:34

标签: ios iphone swift uiview uilabel

我已经以编程方式创建了一个UIView和两个UILabel。标签上的内容如下:"没有帖子,请关注某人添加到您的Feed中。"。

self.update.count显示要显示的帖子数量。因此如果是0则应该显示我制作的标签。如果不是,则不应显示任何标签。

我已经制作了这段代码但它不会再删除标签和UIView了吗?它位于viewWillAppear

if self.updates.count == 0 {

            print("THERE ARE NO POSTS: \(self.updates.count)")
            self.tableView.addSubview(self.noPostView)
            self.tableView.addSubview(self.noPostLabel)
            self.tableView.addSubview(self.noPostText)

            //noPostView.anchorToTop(view.topAnchor, left: nil, bottom: view.bottomAnchor, right: nil)
            self.noPostView.centerXAnchor.constraintEqualToAnchor(self.tableView.centerXAnchor).active = true
            //noPostView.centerYAnchor.constraintEqualToAnchor(tableView.centerYAnchor).active = true
            self.noPostView.anchor(self.view.topAnchor, left: nil, bottom: nil, right: nil, topConstant: 80, leftConstant: 0, bottomConstant: 0, rightConstant: 0, widthConstant: self.view.frame.width, heightConstant: self.noPostLabel.frame.height + self.noPostText.frame.height)

            self.noPostLabel.anchor(self.view.topAnchor, left: nil, bottom: nil, right: nil, topConstant: 80, leftConstant: 0, bottomConstant: 0, rightConstant: 0, widthConstant: self.noPostView.frame.width, heightConstant: 50)
            self.noPostLabel.centerXAnchor.constraintEqualToAnchor(self.noPostView.centerXAnchor).active = true


            self.noPostText.anchor(self.noPostLabel.bottomAnchor, left: self.noPostView.leftAnchor, bottom: nil, right: self.noPostView.rightAnchor, topConstant: -20, leftConstant: 35, bottomConstant: 0, rightConstant: 35)
            self.noPostText.heightAnchor.constraintEqualToConstant(60).active = true
            self.noPostText.centerXAnchor.constraintEqualToAnchor(self.noPostView.centerXAnchor).active = true

            self.loadingSpinner.stopAnimating()
        } else {
            print("THERE ARE: \(self.updates.count) POSTS")

            self.tableView.willRemoveSubview(self.noPostView)
            self.tableView.willRemoveSubview(self.noPostText)
            self.tableView.willRemoveSubview(self.noPostLabel)

        }

2 个答案:

答案 0 :(得分:1)

只需在不需要标签时隐藏标签,即“self.noPostLabel.isHidden = true”,并在需要时显示标签。

答案 1 :(得分:0)

您使用的是willRemoveSubview(_:),Apple将在下文中介绍。

  

此方法的默认实现不执行任何操作。子类可以   覆盖它以在子视图时执行其他操作   除去。当子视图的superview更改或时,将调用此方法   当子视图完全从视图层次结构中删除时。