根据Apple的说法,刷新控件应该是iOS 11中大标题导航栏的一部分。
当我在故事板中为UITableViewController启用了刷新控件时,刷新控件是导航栏的一部分(在拉动刷新时)。
我无法在故事板中为所有其他视图(如UICollectionViewController)执行此操作。当我在代码中添加刷新控件作为子视图时,它不是导航栏的一部分:
refreshControl = UIRefreshControl()
collectionView?.addSubview(refreshControl)
虽然看起来像这样:
如何在我的自定义滚动视图(如UICollectionViewController)中添加刷新控件,以便在使用大标题时导航栏中显示刷新控件?
答案 0 :(得分:48)
自iOS 10起,UITableView
和UICollectionView
具有refreshControl
属性。
所以,而不是:
tableView.addSubview(refreshControl)
tableView.refreshControl = refreshControl
这适用于iOS 11中的新大标题。
答案 1 :(得分:0)
就我而言,我想在UIView
下使用UITableView
,所以UITableView
不是视图控制器的view
的第一个子视图。
要解决此问题,我更改了UITableView
和其他UIView
的顺序
来自
到
现在,我只是将视图的zPosition
设置为低于UITableView
的{{1}}的值,这应该使我的视图看起来像在“ zPosition
下” >
UITableView
答案 2 :(得分:-1)
编辑:文档已在某个时候更新,以下信息不再适用。
Apple在UIRefreshControl文档中指定。
请注意 由于刷新控件专门设计用于由表视图控制器管理的表视图,因此在不同的上下文中使用它可能会导致未定义的行为。
如果您的VC是UITableViewController,它将与系统应用程序完全相同。