のために働いていない私は、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のビューにはセパレータがありません。それは別々に作成される理由です。
ご協力いただければ幸いです。
追加のサンプルコード – Rajesh73
あなたのコードを共有するには、あなたが試してみました。 – Krunal
あなたのコードをもっと提供する必要があるかもしれません... 5つのセクションを持つ基本テーブルで、欠落した要素のマイナーな編集で投稿したものを試したところ、5つのセクションヘッダーのすべてのボタンが正常に動作しました。 – DonMag