uiscrollview 不能滚动到底部

Posted

技术标签:

【中文标题】uiscrollview 不能滚动到底部【英文标题】:uiscrollview can't scroll to bottom 【发布时间】:2017-12-18 03:42:41 【问题描述】:

我已经构建了一个这样的 UIScrollView:

主要思想是 Label content 和 Label Re 根据内容大小自动固定高度,并包含在视图中。

在该视图之后有一个分享按钮。

除了内容很大时我无法将视图滚动到底部以查看按钮之外,所有构建都正确,因此按钮不在主屏幕之外。或者我会非常努力地滚动查看按钮,当我放手时它会向后滚动。 :-(

【问题讨论】:

***.com/a/46856187/1378447 【参考方案1】:

经过长时间的搜索,对我有用的是在其父视图的最后一个视图中添加“底部”约束。

【讨论】:

【参考方案2】:

按钮的底部约束丢失,因为它不能调整大小和滚动。要解决此问题,请将底部约束添加到按钮并使其大于等于某个值。例如20(你想要的任何底部间距)

【讨论】:

已经有一个bottom space to 约束来使用按钮进行超级视图 您的问题解决了吗?您还可以使用 tableview 单元格来显示这些详细信息,这是一种解决方法,将解决您的问题。 感谢您的回复,但我对底部约束没有运气:-(【参考方案3】:
override func viewDidLoad() 
  super.viewDidLoad()
  automaticallyAdjustsScrollViewInsets = false

试一试,如果不行,我再仔细看看。

【讨论】:

【参考方案4】:

您所做的是,您为滚动视图放置了一个根视图。在这种情况下,您需要指定足够的高度,以供根视图内的所有子视图使用。 (这可能会令人困惑)

不要将所有视图放在一个视图下,而是删除该根视图,将所有视图嵌入滚动视图下。 即

scroll view

    -> view 1

    -> view 2

    -> button

约束如下:

scrollView -> pin trailing,leading,top 并设置适当的高度 这将设置滚动视图的位置和大小

view 1 -> pin top, trailing, 导致 superview 和 pin bottom 到它的底部视图(视图 2)。 (根据需要指定高度、宽度)

view 2 -> pin top,leading, trailing to top view (view 1) and pin bottom to button 。 (根据需要指定高度、宽度)

按钮 -> 固定顶部、前导、拖尾到顶视图(视图 2)和固定底部以滚动视图。 (根据需要指定高度、宽度)

这将为您的滚动视图设置足够的约束来计算内容。

如果这不起作用,请告诉我。

【讨论】:

注意:在您的情况下,有 1 个视图和一个按钮。所以相应地设置。

以上是关于uiscrollview 不能滚动到底部的主要内容,如果未能解决你的问题,请参考以下文章

UIScrollView 以编程方式滚动到底部

触摸状态栏时 UIScrollView 滚动到底部

保持 UIScrollView 滚动到底部

UITextField 文本更改时 UIScrollView 滚动到底部

UIScrollView 在 iOS 7 中没有滚动到底部

防止uiscrollview向右滚动