UIScrollView 中的 UIRefreshControl 布局错误 left/right contentInset
UIRefreshControl layout wrong in UIScrollView with left/right contentInset
如果我使用 UIScrollView
和非零 left/right contentInset
并添加 UIRefreshControl
,刷新定位不正确,使 UI 动画看起来很奇怪。
scrollView.contentInset = UIEdgeInsets(top: 0, left: 40, bottom: 0, right: 40)
scrollView.refreshControl = UIRefreshControl()
我不想修改刷新控件的布局,但找不到正确定位它的方法。
这是错误的屏幕截图:
这是来自视图检查器的动画:
我通过创建 UIRefreshControl
子类在本地修复了它,但这绝对是 hack。
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 中的错误。
如果我使用 UIScrollView
和非零 left/right contentInset
并添加 UIRefreshControl
,刷新定位不正确,使 UI 动画看起来很奇怪。
scrollView.contentInset = UIEdgeInsets(top: 0, left: 40, bottom: 0, right: 40)
scrollView.refreshControl = UIRefreshControl()
我不想修改刷新控件的布局,但找不到正确定位它的方法。
这是错误的屏幕截图:
这是来自视图检查器的动画:
我通过创建 UIRefreshControl
子类在本地修复了它,但这绝对是 hack。
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 中的错误。