代码之家  ›  专栏  ›  技术社区  ›  rnystrom

UIScrollView中的UIRefreshControl布局错误,左/右内容插入

  •  5
  • rnystrom  · 技术社区  · 7 年前

    如果我使用 UIScrollView 左/右非零 contentInset 并添加 UIRefreshControl ,刷新位置不正确,使UI和动画看起来很奇怪。

    scrollView.contentInset = UIEdgeInsets(top: 0, left: 40, bottom: 0, right: 40)
    scrollView.refreshControl = UIRefreshControl()
    

    我不想破坏刷新控件的布局,但无法找到正确定位的方法。

    以下是该错误的屏幕截图: enter image description here

    下面是来自视图检查器的动画:

    enter image description here

    1 回复  |  直到 7 年前
        1
  •  6
  •   rnystrom    7 年前

    我通过创建 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中的一个漏洞。