从自定义 Tableview 部分标题中获取 indexPath
Posted
技术标签:
【中文标题】从自定义 Tableview 部分标题中获取 indexPath【英文标题】:Get indexPath from custom Tableview section header 【发布时间】:2016-04-19 13:36:40 【问题描述】:我创建了一个自定义视图并将其添加到 tableView 部分标题中。
func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?
if section == 2
if (headerView == nil)
headerView = CustomHeaderSection(frame: CGRectMake(0,0,self.view.bounds.width,38))
headerView!.delegate = self
if isExpandableCell
headerView!.arrowImage.transform = CGAffineTransformIdentity
else
headerView!.arrowImage.transform = CGAffineTransformMakeRotation(CGFloat(M_PI))
return headerView
return nil
我在 tableview 部分添加的自定义视图上有一个按钮。现在点击后如何获取 indexPath?
【问题讨论】:
只有 TableView 单元格有索引路径。但是可能有一种现实的方法来获取标题所属的节号。 【参考方案1】:在 CustomHeader 类中声明一个节号变量,并在 viewForHeaderInSection() 内部实例化时为其赋值。
在同一个类中实现目标按钮动作。因此,点击获取 self.section 并将其传递给 ViewController。
void onButtonTap (id sender)
UIButton button = (UIButton)sender;
this.sectionHeaderViewDelegate.buttonTapped (this.section);
【讨论】:
【参考方案2】:在您的功能上,您可以向按钮添加标签 id,使其与 indexPath 相同
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
let cell = tableView.dequeueReusableCellWithIdentifier("FoldingCell", forIndexPath: indexPath) as! myTableViewCell
...
cell.myButton.tag = indexPath.row
...
【讨论】:
【参考方案3】:您可以将部分标题视图的tag
属性分配给tableView(tableView: UITableView, viewForHeaderInSection section: Int)
方法内的部分编号。
【讨论】:
但我只初始化了一次 headerView。因此,如果我分配一个标签,它将被修改,因此我将无法检查它。 那么您的表格视图中只有一个标题?以上是关于从自定义 Tableview 部分标题中获取 indexPath的主要内容,如果未能解决你的问题,请参考以下文章