带有 UIRefreshControl 的 ScrollView 在显示为模式表时不会刷新
Posted
技术标签:
【中文标题】带有 UIRefreshControl 的 ScrollView 在显示为模式表时不会刷新【英文标题】:ScrollView with a UIRefreshControl won't refresh when presented as a modal sheet 【发布时间】:2019-09-28 01:35:44 【问题描述】:ios 13 模态演示文稿表 (UIPresentationController) 和 UIScrollView 的 (UITableView/UICollectionView) 与 UIRefreshControl 相处得不好。
是否可以拖动超出 TableView 的顶部以触发刷新控件而不是关闭呈现的视图?是否有任何干净的解决方案,而不是使用预设的 UIGestureRecognizer's?
将isModalInPresentation
设置为false
不起作用。
【问题讨论】:
【参考方案1】:看看 UIAdaptivePresentationControllerDelegate 还有一些来自 Apple 的示例代码https://developer.apple.com/videos/play/wwdc2019/224/“禁用下拉工作表”可能会有所帮助。
【讨论】:
与我目前拥有的结果相同,而不是继续在 ScrollView 内滚动,它只是拉下呈现的视图控制器。 ok 看起来像是你试图提供的一种奇怪的交互,一旦你呈现了一个模态,我认为不支持与呈现视图的交互,因此是“模态” 我正在尝试使用 uirefreshcontrol 刷新集合视图,对我来说这听起来不像是一种奇怪的交互 在模态显示的视图中? (只是想理解 ;-)) 对!只想使用默认的 iOS 13 工作表呈现一个视图控制器,并拥有一个可以使用 refreshcontrol 更新的 collectionview【参考方案2】:尝试使用下面的代码呈现viewController
并检查它。
let vc = UIViewController()
vc.modalPresentationStyle = .fullScreen
self.present(vc, animated: true, completion: nil)
【讨论】:
【参考方案3】:使用
scrollView.refreshControl = refreshControl
而不是
scrollView.addSubview(refreshControl)
【讨论】:
以上是关于带有 UIRefreshControl 的 ScrollView 在显示为模式表时不会刷新的主要内容,如果未能解决你的问题,请参考以下文章
UITableView - 带有背景图像的 UIRefreshControl
Swift Firebase:带有 .childAdded 的 UIRefreshControl
UIRefreshControl 在带有大标题的 UINavigation 后面呈现
UIRefreshControl 未在 iOS 10 以下显示带有 DialogViewController 的 Xamarin