2017-06-26 13 views
0

のために働いていない私は、5つのセクションがありtableView持っています。 各セクションはviewForHeaderInSection委任method.Sectionヘッダーに作成されたセクションヘッダが有する有しbuttonとperfectly.Theボタン表示セクション0,1,2のために働くが、セクション3のために動作していないターゲット機能を有しさlabelと4. tableviewは、セクション0,1,4が異なるセルを使用し、セクション2と3が同じセルを使用するように、4つのプロトタイプセルを使用しています。 私は同じproblem.User相互作用はXIBともtableview内のすべてのセルに対して有効になっているにもXIBを使用してセクションヘッダを作成しますが直面しようとしています。UIButtonがsectionHeaderViewにすべてのセクション

func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { 

    if section == 0 { 
     return 36.0 
    } 
    return 46.0 


} 

func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { 

    if section == 0 { 

     let view = UIView(frame: CGRect(x: 0, y: 0, width: tableView.frame.width, height: 36)) 

     let sectionTitleLabel : UILabel = { 

      let label = UILabel() 
      label.text = sectionHeaderTitles[section] 
      label.font = UIFont(name: "HelveticaNeue-Medium", size: 16.0) 
      label.translatesAutoresizingMaskIntoConstraints = false 
      return label 
     }() 

     view.addSubview(sectionTitleLabel) 

     view.addConstraintsWithFormat(format: "H:|-10-[v0(100)]", views: sectionTitleLabel) 
     view.addConstraintsWithFormat(format: "V:|-8-[v0(20)]", views: sectionTitleLabel) 

     if self.flag == 0{ 

      let editButton : UIButton = { 

       let button = UIButton() 
       button.setImage(UIImage(named: "EditGrey"), for: .normal) 
       button.addTarget(self, action: #selector(ProfileViewController.editButtonPressed(sender:)), for: .touchUpInside) 
       button.tag = section 
       button.translatesAutoresizingMaskIntoConstraints = false 
       return button 
      }() 

      view.addSubview(editButton) 
      view.addConstraintsWithFormat(format: "H:[v0(20)]-10-|", views: editButton) 
      view.addConstraintsWithFormat(format: "V:|-8-[v0(20)]", views: editButton) 

     } 

     return view 

    } 

    else{ 

     let view = UIView(frame: CGRect(x: 0, y: 0, width: tableView.frame.width, height: 46)) 

     let separator : UIView = { 

      let view = UIView() 
      view.backgroundColor = UIColor(hex: "D3D3D3") 
      view.translatesAutoresizingMaskIntoConstraints = false 
      return view 

     }() 

     let sectionTitleLabel : UILabel = { 

      let label = UILabel() 
      label.text = sectionHeaderTitles[section] 
      label.font = UIFont(name: "HelveticaNeue-Medium", size: 16.0) 
      label.translatesAutoresizingMaskIntoConstraints = false 
      return label 
     }() 

     view.addSubview(separator) 
     view.addSubview(sectionTitleLabel) 
     view.addConstraintsWithFormat(format: "H:|[v0]|", views: separator) 
     view.addConstraintsWithFormat(format: "V:|[v0(10)]", views: separator) 
     view.addConstraintsWithFormat(format: "H:|-10-[v0(100)]", views: sectionTitleLabel) 
     view.addConstraintsWithFormat(format: "V:[v0]-8-[v1(20)]", views: separator, sectionTitleLabel) 

     if self.flag == 0 { 

      let editButton : UIButton = { 

       let button = UIButton() 
       button.setImage(UIImage(named: "EditGrey"), for: .normal) 
       button.tag = section 
       button.addTarget(self, action: #selector(ProfileViewController.editButtonPressed(sender:)), for: .touchUpInside) 
       button.translatesAutoresizingMaskIntoConstraints = false 
       return button 
      }() 

      view.addSubview(editButton) 
      view.addConstraintsWithFormat(format: "H:[v0(20)]-10-|", views: editButton) 
      view.addConstraintsWithFormat(format: "V:[v0]-8-[v1(20)]", views: separator, editButton) 

     } 

     return view 
    } 

} 

セクション0のビューにはセパレータがありません。それは別々に作成される理由です。

ご協力いただければ幸いです。

+0

追加のサンプルコード – Rajesh73

+0

あなたのコードを共有するには、あなたが試してみました。 – Krunal

+0

あなたのコードをもっと提供する必要があるかもしれません... 5つのセクションを持つ基本テーブルで、欠落した要素のマイナーな編集で投稿したものを試したところ、5つのセクションヘッダーのすべてのボタンが正常に動作しました。 – DonMag

答えて

0

テーブルビューのコンテナビューの高さが働いていなかったコンテナビューの外れたボタンcontentsize.Soテーブルビューの高さ未満であったため、ボタンが機能していなかった理由。

関連する問題