ios - 如何根据 tableview 的 contentOffset 显示/隐藏自定义 View ?

标签 ios swift uitableview uiscrollview

我有一个聊天应用程序,我试图在用户滚动到顶部时显示我制作的自定义 View ,如果它位于表格 View 的底部,也会将其隐藏。 (就像 whatsapp 一样)

老实说,我正在为显示/隐藏按钮的逻辑而苦苦挣扎。 尝试在重新加载数据后立即保存我的 tableview 的 contentOffset.y,这样我就知道那是底部,如果显示自定义 View 较小,但 mainTableView.contentOffset.y 始终为 0。

func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
    if (scrollView == mainTableView) {
        print(mainTableView.contentOffset.y)
        if let point = startingPointForView {
            //where var startingPointForView: CGFloat?
            // and tried to save it after I reload the data
            //self.startingPointForView = self.mainTableView.contentOffset.y
            // but it's always 0
        }

        // Show and hide button logic

    }
}

我想要实现的目标的图像:https://imgur.com/ZkYEi2P

最佳答案

尝试使用此代码根据 UIscrollview contentOffset 隐藏/显示自定义 View

func scrollViewDidScroll(_ scrollView: UIScrollView) {

        let scrollViewContentHeight = scrollView.contentSize.height
        let scrollViewHeight = scrollView.frame.height

        if scrollView.contentOffset.y < (scrollViewContentHeight - scrollViewHeight){
            //Custom view show
        }else{
            //Custom view Hide
        }
    }

关于ios - 如何根据 tableview 的 contentOffset 显示/隐藏自定义 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54647973/

相关文章:

ios - 如何以编程方式调用实例变量

ios - 相同的日期...但不同?也许时区困惑

ios - Swift Firebase 查询最多需要一分钟

ios - reloadRowsAtIndexPaths 更新 TableView 的contentOffset

ios - 使用自己的 Nib 子类化 UITableViewCell

ios - 在 MacOS X 和 iOS 中 ASLR 到底随机化了什么

swift - didSelectRowAtIndexPath 中的数据在prepareForSegue 中不可用(swift)

ios - presentScene 导致错误的 View 加载

ios - 从多个部分 UITableView 中的 UITableViewCell 获取 IndexPath 以响应通知

ios - Facebook SDK 共享始终返回 sharerDidCancel