如何在iOS 11中向集合视图大标题导航栏添加刷新控件?

根据Apple的说法,刷新控件应该是iOS 11中大标题导航栏的一部分。

当我在故事板中为UITableViewController启用刷新控件时,刷新控件是导航栏的一部分(在拉动刷新时)。

使用大标题刷新控件

我不能在故事板中为所有其他视图(如UICollectionViewController)执行此操作。 当我在代码中添加刷新控件作为子视图时,它不是导航栏的一部分:

refreshControl = UIRefreshControl() collectionView?.addSubview(refreshControl) 

它看起来像这样:

看起来像这样

如何在我的自定义滚动视图(如UICollectionViewController)中添加刷新控件,以便在使用大标题时导航栏中显示刷新控件?

从iOS 10开始, UITableViewUICollectionView具有refreshControl属性。

所以,而不是:

tableView.addSubview(refreshControl)

你做:

tableView.refreshControl = refreshControl

这应该适用于iOS 11中的新大标题。

编辑:文档已在某些时候更新,以下信息不再适用。

由Apple在UIRefreshControl文档中指定。

注意由于刷新控件专门设计用于由表视图控制器管理的表视图,因此在不同的上下文中使用它可能会导致未定义的行为。

如果您的VC是UITableViewController,它将像在系统应用程序中一样工作。