UIScrollView底部的UIButton无法正常工作

时间:2016-11-15 14:24:21

标签: ios swift uiscrollview uibutton

我的UI结构如下:

- View
  - Scroll View
    - Container View
      - Dynamically added UI element
      - Dynamically added UI element
      - Dynamically added UI element
      - ....
      - UIButton

添加所有UI元素(包括带有UITapGestureRecognizer的UIButton)并使用以下方法更新UIScrollView大小...

func updateScrollViewSize() {
    var contentRect = CGRect.zero
    for view in containerView.subviews {
        contentRect = contentRect.union(view.frame)
    }
    contentRect.size = CGSize(width: scrollView.contentSize.width, height: contentRect.height + TRAILING_SCROLLVIEW_SPACE)
    scrollView.contentSize = contentRect.size
}

...我注意到只有在视图顶部添加UIButton才能使用 - 我只能通过滚动来触及(例如底部的那个)。

嗯,我想,所以按钮会在容器视图之外创建'框架,因此我将以下行添加到我的updateScrollViewSize方法。

containerView.frame.size = contentRect.size

可悲的是,这并没有解决我的问题。

我试过很长一段时间才找到解决方案,但没有人可以帮助我。我仍然99%确定它与我的Container Views'有关。框架,但我根本无法弄清楚如何解决这个问题。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

如果使用任何约束,请在创建子视图后在顶视图上调用layoutIfNeeded()。 确保scrollView的contentSizecontainerView.frame(不是.bounds匹配,因为这不会告诉您例如您的帧y位置是否低于零。