ios - UIRefreshControl 如何检测用户是否开始向下拖动?

标签 ios swift uitableview uirefreshcontrol

我在 UITableViewController 中有一个 UIRefreshControl。有什么方法可以检测用户是否开始向下拖动 View 来刷新内容? 我指的不是 beginRefreshing 方法。我希望能够检测用户何时开始向下拖动 - 例如在调用 beginRefreshing 方法之前圆圈何时填满。这可能吗?

最佳答案

由于您已经实现了 UITableViewDelegate 协议(protocol),您还可以实现 UIScrollViewDelegate在滚动或拖动时调用。

objective-c

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView

- (void)scrollViewDidScroll:(UIScrollView *)scrollView

swift

func scrollViewWillBeginDragging(scrollView: UIScrollView)

func scrollViewDidScroll(scrollView: UIScrollView)

在没有 UITableViewController 的情况下实现 UIRefreshControl 添加 ScrollView 并将此代码放入您的 viewDidLoad

let refreshControl = UIRefreshControl()
 refreshControl.attributedTitle = NSAttributedString(string: "Pull to refresh")
        refreshControl.addTarget(self, action: "refresh:", forControlEvents: UIControlEvents.ValueChanged)
        ScrollView.addSubview(refreshControl)
        ScrollView.contentSize = CGSizeMake(320, 800)

添加此方法

func refresh (sender:AnyObject)
    {
        print("Refresh")
    }

关于ios - UIRefreshControl 如何检测用户是否开始向下拖动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35340237/

相关文章:

iphone - 如何在 ios 8 和 ios 7 中创建自定义弹出 View ?

ios - 如何从 UIDocumentPicker 获取正确的文件名,didPickDocumentsAt urls : [URL]

swift - 外部附件 api 出错,如何使用外部附件

ios - deleteRowsAtIndexPaths 后忽略 UITableView 的第一次点击

iOS UITableView : show only 20 rows from fetchedResultsController that has 500 objects

iphone - 从我的应用程序启动另一个iPhone应用程序,是否已经安装?

ios - ios 上的自定义控件(条目中的示例)

ios - UINavigationController 中的导航栏太高

ios - 禁用一半的 UIStepper

ios - UITableViewCell 无意中在不需要的行上放置了复选标记