UITextView在UIScrollView上不可见
好吧,我所拥有的是一个UIScrollView,它被约束在主视图的所有四边,垂直和水平居中,并设置为与视图具有相等的宽度和高度。我在UIScrollView上放置的所有子视图都在我运行该应用程序时显示出来,正是我想要它们的位置,但只有底部的UITextView不是。看起来我已经尝试了各种约束组合,但是当我运行应用程序时,无论我做什么,它都不会出现。这里是限制在界面生成器的截图:UITextView在UIScrollView上不可见
甚至当我运行前预览文件Main.storyboard它看起来像这样:
但是,当我实际运行应用程序,屏幕缺少UITextView,即使当我通过多种方式更改约束时:
任何有关这个问题的帮助将不胜感激!提前致谢。
避免把所有的子视图直接scrollView
内。自动布局将分解。 您需要:
- 添加
UIView
的UIScrollView
里面,有约束0
-0
-0
-0
到leading
-top
-bottom
-trailing
到UIScrollView
,并把那里面UIView
所有子视图。
之后,you need to set thecontentSize
您UIScrollView
通过代码。
此外,您可以:
-
add missing constraints
,看看有什么缺失。
- 在UIStoryBoard左侧面板(文档大纲),你可以按红色箭头显示出来,看看有什么丢失或冲突。
退房Apple documentation了解更多详情。
感谢您的非常详细的答案!有效! – James
@James Great! :) – 2017-08-28 01:46:30
如果你希望你的scrollView
只有垂直滚动时,不应将其高度等于其superView
因此将其删除,只是将宽度设置为它superView
,然后应该计算基于里面 我提供subViews
高度你可以在你的scrollView
中拖动一个UIView
,并将约束设置为它的四个边,并将其命名为containerView,然后将其宽度设置为等于背景视图,并开始布置其中的视图,而不是滚动视图内:) 如果所有视图的高度在scrollView中很清楚,它可以推断出scrollView的高度为 ,在这种情况下你可以设置一个固定的高度为containerView
,比如800
摆脱红线,并检查它是如何工作:)
我注意到一些线索,你可能必须解决这可能可以解决这个问题。由于滚动视图是由它的内容的元件延伸,必须与在滚动视图的每个元素明确地处理:
有关顶部ImageView的不很好的约束,则需要给它的宽度或纵横比。修复imageView问题可能会解决textview高度问题,即使它不是一个好开始。
TextView底部锚点等于scrollView底部锚点,但是你必须知道textView也是一种scrollView。所以在同一时间限制对方是不合理的。因为他们都没有明确的高度。你可以尝试在textView中键入一些单词,它至少会通过它的内容给出高度,然后scrollView可以检测到textView bottomAnchor。你可能会看到一些东西。
你的scrollView的高度等于视图的高度也很奇怪,scrollView不应该首先限制它的高度。因为它的高度是不变的,所以它不能再是“滚动”视图。你应该让它的宽度等于视图,并且让高度由它的元素的高度决定。那么它将是字面上的scrollview。
希望它可以帮助
为什么这些红色限制?您有自动布局问题需要解决。 –
是的,我知道,但我不能让他们不要红。有什么建议么? – James
不能确切地说明它是什么,但是这条线给出了一个疑问:一个UIScrollView被约束在主视图的所有四边,垂直和水平居中。看起来像你给出了一些不必要的约束。你可以检查所有的视图层次结构在哪里,你会看到右上角的红色标记。 –