如果我使用 UIScrollView 左/右非零 contentInset 并添加 UIRefreshControl ,刷新位置不正确,使UI和动画看起来很奇怪。
UIScrollView
contentInset
UIRefreshControl
scrollView.contentInset = UIEdgeInsets(top: 0, left: 40, bottom: 0, right: 40) scrollView.refreshControl = UIRefreshControl()
我不想破坏刷新控件的布局,但无法找到正确定位的方法。
以下是该错误的屏幕截图:
下面是来自视图检查器的动画:
我通过创建 UIRefreshControl 子类,但这绝对是一个黑客行为。
override var frame: CGRect { get { return super.frame } set { var newFrame = newValue if let superScrollView = superview as? UIScrollView { newFrame.origin.x = superScrollView.frame.minX - superScrollView.contentInset.left } super.frame = newFrame } }
我会提交雷达文件,因为我开始认为这是UIKit中的一个漏洞。