【问题标题】:Add data dynamically to table when Floating Action Button is pressed按下浮动操作按钮时将数据动态添加到表中
【发布时间】:2018-01-14 20:51:54
【问题描述】:

我有一个scrollView(从自定义UITableView() 子类化),它具有行数和列数,并且在水平和垂直方向上滚动。按下 浮动操作按钮 时,我必须动态地 将数据添加到滚动视图。

更新:我能够成功地在行和列中显示动态数据。但我不想在滚动时用所有动态数据加载我的滚动视图,因为数据太大而无法处理。相反,我最初只需要显示 5 列,当用户按下浮动操作按钮时,数据应该再次动态添加到行和列中,计数为 5 列和“x”行。 p>

按下浮动操作按钮时,我一直在向 scrollView 添加动态数据。还如何在按下浮动操作按钮时最初仅显示 5 列并添加更多 5*n 列。

非常感谢任何建议或帮助。谢谢你:)

【问题讨论】:

    标签: ios swift3 scroll floating-action-button dynamic-columns


    【解决方案1】:

    我建议使用具有内置水平滚动支持的 CollectionView 而不是自定义 TableView。

    对于“浮动操作按钮”,我建议创建一个单独的视图,该视图具有一个标签,告诉用户释放以加载更多项目并在用户到达滚动视图末尾时移入。在以下示例中,加载更多视图的宽度为 100 像素,并建议用户在拖动视图 85 像素后松开手指。

    斯威夫特 3

    @IBOutlet fileprivate weak var loadMoreView: UIView!
    @IBOutlet fileprivate weak var loadMoreLabel: UILabel!
    @IBOutlet fileprivate weak var loadMoreConstraint: NSLayoutConstraint!
    
    func scrollViewDidScroll(_ scrollView: UIScrollView) {
        if scrollView.contentOffset.x + scrollView.frame.size.width > scrollView.contentSize.width {
            loadMoreView.isHidden = false
            loadMoreLabel.text = "Load more"
            if (scrollView.contentOffset.x + scrollView.frame.size.width) - scrollView.contentSize.width > 85 {
                loadMoreLabel.text = "Release"
            }
    
            if (scrollView.contentOffset.x + scrollView.frame.size.width) - scrollView.contentSize.width < 100 {
                loadMoreConstraint.constant = 100 - ((scrollView.contentOffset.x + scrollView.frame.size.width) - scrollView.contentSize.width)
            }
        } else {
            loadMoreView.isHidden = true
            loadMoreConstraint.constant = 100
        }
    }
    
    func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
        if scrollView.contentOffset.x + scrollView.frame.size.width > scrollView.contentSize.width {
            if (scrollView.contentOffset.x + scrollView.frame.size.width) - scrollView.contentSize.width > 85 {
                // TODO: <Load more logic here>
            }
        }
    }
    

    加载更多视图具有以下约束,其中“对齐尾随”约束与上面代码中的 loadMoreConstraint IBOutlet 链接。

    【讨论】:

    • 我确实锁定了 scrollView 部分。谢谢你。只有动作按钮按下功能没有完成。我无法在单击浮动按钮时重新加载数据...而是刷新数据
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-03
    • 2020-01-03
    • 2015-12-13
    • 2021-09-26
    • 1970-01-01
    • 1970-01-01
    • 2015-06-25
    相关资源
    最近更新 更多