iOS开发 修改tableView的组头悬停位置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS开发 修改tableView的组头悬停位置相关的知识,希望对你有一定的参考价值。

参考技术A 最近公司商城APP的积分页面改版,有一个细节是tableView是全屏的但是向上滑动时要求组头停靠在导航栏下方。效果大致如下:

做过组头悬停效果的同学应该都知道:如果只设置tableView的style为 UITableViewStylePlain ,不做其它处理,其组头的悬停位置是tableView的最顶部,显然不能满足需求。

用修改tableView的 contentInset 的方式来间接达到修改tableView的组头悬停位置的效果。

GitHub demo

鼠标悬停事件在 TableView 的标题中不起作用

【中文标题】鼠标悬停事件在 TableView 的标题中不起作用【英文标题】:Mouse hover events not working in the header of the TableView 【发布时间】:2019-06-21 06:56:13 【问题描述】:

这里有类似的问题

How to get Clicked or Pressed event on QML TableView header?

我想在悬停时突出显示标题。但是headerDelegate 中的行为很奇怪。

headerDelegate: Rectangle 
    height:30
    MouseArea
        hoverEnabled: true
        anchors.fill: parent

        onPressed: 
            console.debug("This will not be printed")
        

        onEntered: 
            console.debug("Will print on pressed event")
        

        onExited: 
            console.debug("Will print on released event")
        
    

悬停不会触发任何事件。

【问题讨论】:

本题不需要C++标签 【参考方案1】:

悬停和其他状态由标头委托中的styleData 组件处理。

如果您想知道悬停何时发生变化,请将styleData 的不同信号(onPressedonContainsMouseChanged 等)连接到一个函数。

例如:

headerDelegate: Rectangle 
        height:30
        color: "red"
        Connections 
            target: styleData
            onPressedChanged: 
                console.debug("PRESSED:  "+ styleData.column + " " + styleData.pressed)
            

            onContainsMouseChanged: 
                if (styleData.containsMouse)
                    console.debug("The mouse is hover the header of column " + styleData.column)
                else
                    console.debug("The mouse is leaving the header of column " + styleData.column)
            
        
    

【讨论】:

谢谢。它在headerDelegate 中运行良好。我也想在rowDelegate 中使用这种方法。但是onContainsMouseChangedrowDelegate 内部不起作用 这里讨论了在rowDelegate 中管理事件。 ***.com/questions/56684357/…不知能不能用Connections的方法

以上是关于iOS开发 修改tableView的组头悬停位置的主要内容,如果未能解决你的问题,请参考以下文章

tableView组头 组尾滑动

uitableview为分组模式时怎么设置组头标题悬停

iOS--CollectionView添加类似TableView的TableViewHeaderView 和 SectionHeader 的置顶悬停效果

iOS-TableView中cell的显示与隐藏

UICollectionView 自定义组头组尾的XIB方法

iOS开发 点击cell后刷新tableview后回到tableView顶部了,怎么让他的位置不动啊,留在原来cell的位置