如何解决使用`navigationBar.prefersLargeTitles`时,手动刷新UIRefreshControl不可见
我使用此代码以编程方式在表格视图上创建
extension UIRefreshControl {
func beginRefreshingManually() {
if let scrollView = superview as? UIScrollView {
scrollView.setContentOffset(CGPoint(x: 0,y: scrollView.contentOffset.y - frame.height),animated: true)
}
beginRefreshing()
sendActions(for: .valueChanged)
}
}
如果navigationController?.navigationBar.prefersLargeTitles = false
可以正常工作,但是如果为true,则UIRefreshControl不可见,请参见下面的输出
这是navigationController?.navigationBar.prefersLargeTitles = false
如您所见,加载视图后,它会自动旋转UIRefreshControl
,因为我在tableView.refreshControl?.beginRefreshingManually()
上调用了viewDidAppear
这就是navigationController?.navigationBar.prefersLargeTitles = true
如您所见,它加载了在refreshControl.addTarget(self,action: #selector(refresh),for: .valueChanged)
上调用的函数,但旋转的动画不可见。
private func setupNaigationBar() {
navigationController?.navigationItem.largeTitledisplayMode = .always
let style = NSMutableParagraphStyle()
style.firstLineHeadindent = 10 // This is added to the default margin
navigationController?.navigationBar.prefersLargeTitles = true
navigationController?.navigationBar.largeTitleTextAttributes = [NSAttributedString.Key.font : UIFont(name: "Avenir-Heavy",size: 25)!,.foregroundColor: Keys.primaryColor,NSAttributedString.Key.paragraphStyle : style]
navigationController?.navigationBar.backgroundColor = .clear
view.layoutIfNeeded()
}
我的预期结果是即使以编程方式UIRefreshControl
(即使用户没有滚动)也能看到navigationController?.navigationBar.prefersLargeTitles = true
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。