2016-12-02 12 views
1

私はUIViewと2つのUILabelをプログラムで作成しました。ラベルには次のようなものがあります。「投稿はありません。あなたのフィードに誰かを追加する」。追加した後、プログラムでUILabelを削除する

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) 

     } 
+0

ラベルが必要ないときは、「self.noPostLabel.isHidden = true」のラベルを非表示にして、必要なときにラベルを表示します。 – DrPatience

+0

魅力のように働いた@DrPatience:D愚かな私........ –

+0

このself.noPostLabel.removeFromSuperview()を試してください、これはあなたに役立ちます –

答えて

0

あなたは、以下の説明リンゴwillRemoveSubview(_:)を使用しています。

このメソッドのデフォルトの実装では何も行いません。サブクラスは を削除して、サブビューが削除されたときはいつでも追加のアクションを実行できます。このメソッドは、サブビューのスーパービューが変更されたときに呼び出されます。 の場合、サブビューがビュー階層から完全に削除されます。

0

ラベルが必要ないときは、「self.noPostLabel.isHidden = true」というラベルを非表示にして、必要なときに表示します。