UITextView在UIScrollView上不可见

好吧,我所拥有的是一个UIScrollView,它被约束在主视图的所有四边,垂直和水平居中,并且被设置为与视图具有相等的宽度和高度。 我在UIScrollView上放置的所有子视图都显示在我运行应用程序的时候,恰好在我想要的位置,但是只有底部的UITextView没有。 看起来好像我已经尝试了所有的约束条件,但是当我运行应用程序而不pipe我做什么的时候,它都不会出现。 以下是界面构build器中的约束的屏幕截图:

界面生成器

即使在运行之前预览文件Main.storyboard,它看起来像这样:

Main.storyboard预览

但是,当我真的运行应用程序,即使当我改变约束在许多方面的屏幕缺lessUITextView:

运行应用程序

任何帮助这个问题将不胜感激! 提前致谢。

避免将所有子视图直接放在scrollView 。 自动布局将分解。 你需要 :

  • UIScrollView添加一个UIView ,约束0000bottomtrailingUIScrollView ,并把你所有的子视图放在UIView

之后, 您需要通过代码设置您的UIScrollViewcontentSize

另外,您可以:

  • add missing constraints来查看缺less的内容。

在这里输入图像说明

  • UIStoryBoard( 文档大纲 )中的左侧面板,您可以按显示的红色箭头查看缺失或冲突。

在这里输入图像说明

查看Apple文档以获取更多详细信息。

如果你希望你的scrollView只能垂直滚动,你不应该把它的高度设置为它的superView所以删除它,只需要将它的宽度设置为它的superView ,然后它应该根据它里面的subViews来计算高度。我提供给你拖动一个UIView在您的scrollView ,并将其约束设置为其四边,并将其命名为containerView,然后将其宽度设置为等于背景视图,并开始放置其中的视图不在scrollview内:)如果scrollView中的所有视图的高度清晰,它可以推断scrollView的高度,在这种情况下,你可以设置一个固定的高度,你的containerView800 ,摆脱红线,并检查它是如何工作的:)

我注意到你可能需要解决的一些线索可能可以解决这个问题。 由于scrollView是由其内容的元素扩展的,所以你必须明确地处理scrollView中的每个元素:

  1. 对于顶部的imageView没有很好的约束,你需要给它一个宽度或宽高比。 修复imageView问题可能解决textview高度问题,即使它不是一个好的开始。

  2. TextView底部的锚点等于scrollView底部的锚点,但是你必须知道textView也是一种scrollView。 所以同时约束彼此是不合理的。 因为他们都没有明确的高度。 你可以尝试在textView中键入一些单词,至less可以通过它的内容给出高度,然后scrollView可以检测到textView的bottomAnchor。 你可能会看到一些东西。

  3. 你的scrollView的高度等于视图的高度也是奇怪的,scrollView不应该首先限制它的高度。 因为它的高度是不变的,所以不能再是“滚动”视图。 你应该让它的宽度等于视图,并且让高度由其元素的高度决定。 那么这将是一个滚动视图。

希望能帮助到你