我的桌面视图有几个部分。我想要的是当我从部分我想要该部分的标题标题中选择一个特定的tableview单元格时。我看了几个问题,但没有找到任何有用的东西。 提前谢谢。
答案 0 :(得分:6)
您可以在tableviewcell点击方法
上使用以下代码获取标题UITableViewHeaderFooterView* header =[self.tableView headerViewForSection:indexPath.section];
NSLog(@"Header text = %@", header.textLabel.text);
在Swift中
let sectionHeaderView = table.headerViewForSection(indexPath.section)
let sectionTitle = sectionHeaderView?.textLabel?.text
答案 1 :(得分:1)
我在一个单元案例中遇到了这个问题。我的用例:没有自定义标头,并使用UITableViewDataSource
方法tableView(_:titleForHeaderInSection:)
为每个节返回一个字符串。 headerView(forSection:)
返回nil
,但是numberOfSections
返回正确的段数,rect(forSection:)
返回正确的帧,并且最令人困惑的是,可视调试器将这些段显示为类型{{1 }}。
我终于可以通过调用UITableViewHeaderFooterView
方法dataSource
来检索本节的标题:
tableView(_:titleForHeaderInSection:)
看似奇怪的行为,当仅将字符串传递给tableView.dataSource?(tableView, titleForHeaderInSection: 0)
方法时,UIKit
正在使用UITableViewHeaderFooterView
创建标头。有人会认为您可以使用tableView(_:titleForHeaderInSection:)
来检索它们。
答案 2 :(得分:0)
如果您正在使用" titleForHeaderInSection"请尝试按下以获取标题表委托:
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let title = self.tableView(tableView, titleForHeaderInSection: indexPath.row)
}
答案 3 :(得分:0)
快捷键4:使用单元格按钮单击
let buttonPosition:CGPoint = sender.convert(.zero, to:self.mytable)
let indexPath12 = self.mytable.indexPathForRow(at: buttonPosition)
let intSection : Int = (indexPath12?.section)!
let intRow : Int = (indexPath12?.row)!
let myHeaderView = tableView(self.mytable, viewForHeaderInSection: indexPath?.section)
let labels = myHeaderView?.subviews.compactMap { $0 as? UILabel }
var sectioTitle = ""
for label in labels! {
// you will get your title
sectioTitle = label.text!
}
Swift 4:使用uitablview didselect方法
let myHeaderView = tableView(self.mytable, viewForHeaderInSection: indexPath?.section)
let labels = myHeaderView?.subviews.compactMap { $0 as? UILabel }
var sectioTitle = ""
for label in labels! {
// you will get your title
sectioTitle = label.text!
}