gpt4 book ai didi

swift - 使 UIRefreshControl 移动 TableView 单元格(而不是重叠)

转载 作者:可可西里 更新时间:2023-11-01 00:37:55 24 4
gpt4 key购买 nike

我试图在我的 TableView 上添加一个刷新控件,但我无法如愿。

我有一个 View ,其中包含一个 TableView 。我的 ViewController 的 viewDidLoad 函数如下:

override func viewDidLoad() {
super.viewDidLoad()

// set the refresh control
self.refreshControl = UIRefreshControl()
self.refreshControl.attributedTitle = NSAttributedString(string: "Pull to refresh")
self.refreshControl.addTarget(self, action: "getData", forControlEvents: UIControlEvents.ValueChanged)
self.tableView.addSubview(refreshControl)
}

一切正常,除了当我下拉行以触发刷新控件时,刷新控件出现在第一行的后面并结束在第一行的顶部(正常情况下,我正在下拉这些行...) .

在许多应用程序中,我想得到的是,当您下拉行时,刷新控件的行为就像是第 #-1 行一样,并在我们下拉第一行时立即从顶部取消隐藏.

内置的刷新控件是否可以做到这一点?

谢谢

最佳答案

嗯,我用 this 找到了部分答案

它没有解决我的问题,但至少它更好了......现在“拉动刷新”不会在我拉动时立即出现在第一行......所以在 Swift 中你可以这样做:

替换:

self.refreshControl = UIRefreshControl()
self.refreshControl.attributedTitle = NSAttributedString(string: "Pull to refresh")
self.refreshControl.addTarget(self, action: "getData", forControlEvents: UIControlEvents.ValueChanged)
self.tableView.addSubview(refreshControl)

作者:

let tableViewController = UITableViewController()
tableViewController.tableView = self.tableView

self.refreshControl = UIRefreshControl()
self.refreshControl.attributedTitle = NSAttributedString(string: "Pull to refresh")
self.refreshControl.addTarget(self, action: "getData", forControlEvents: UIControlEvents.ValueChanged)
tableViewController.refreshControl = self.refreshControl

或者只是将其添加到第一部分而不是用第二部分替换它。

self.tableView.insertSubview(refreshControl, atIndex: 0)

两者似乎都有效,我真的不知道一个比另一个更好,但一个是直接 setter ,而后者就像跳跃 UIRefreshControl 自己设置自动。

关于swift - 使 UIRefreshControl 移动 TableView 单元格(而不是重叠),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28575913/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com