【问题标题】:How to make header view clickable of tableview in Swift如何在Swift中使tableview的标题视图可点击
【发布时间】:2019-04-17 09:46:38
【问题描述】:

有没有办法让tableview的标题视图可以点击,以便导航到另一个viewcontroller。

我正在尝试制作与“切尔西”团队相同的设计(部分标题,它是可点击的),其中包含 2 个不同类型的单元格(两者都是可点击的)。那么,我应该遵循什么方法来创建相同的设计。 或者请建议任何其他方式来执行此操作。

【问题讨论】:

  • 是的,使用 UITapGesture 对其进行查看
  • 您可以将collcetionview与flowlayout一起使用
  • @SPatel is collecetionview 将解决这个问题,因为一行中有多个可点击的单元格......一个团队组看起来像一个单元格
  • 一个团队组 = 一个部分
  • 对标题使用补充视图

标签: ios swift tableview


【解决方案1】:

您可以实现以下方法,在viewForHeaderInSection: 中您可以定义UIButton 或者您可以在UIView 上添加点击手势

-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section

【讨论】:

    【解决方案2】:

    tableview 的标题视图是按钮,或者您可以使用点击手势。

    header view 有一个 block 属性,你可以在里面写你的业务。

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

    你可以使用委托模式。

    没有类似的api

    optional public func tableView(_ tableView: UITableView, didSelectHeaderAt indexPath: IndexPath)
    

    表视图

    喜欢这个

    var callback: (() -> Void)!
    
    
    var label = UILabel()
    
    override init(frame: CGRect) {
        super.init(frame: frame)
        label.isUserInteractionEnabled = true
        let tap = UITapGestureRecognizer(target: self, action: #selector(self.do_it))
        label.addGestureRecognizer(tap)
    
    } 
    
    @objc func do_it(){
        callback()
    }
    

    【讨论】:

    • 我们如何在点击手势中定位标题视图? @dengApro
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-09
    相关资源
    最近更新 更多