【发布时间】:2016-10-20 05:06:00
【问题描述】:
我基本上是在尝试重现警报标题和消息部分的行为。
标题和消息标签似乎在滚动视图中。如果标签文本增加,则警报高度也会随着标签的内在内容大小而增加。但在一定高度,警报高度停止增加,标题和消息文本变为可滚动。
我读过的内容:
文章
- Auto Layout Magic: Content Sizing Priorities
- Editing Auto Layout Constraints (documentation)
- A Fixed Width Dynamic Height ScrollView in AutoLayout
- Using UIScrollView with Auto Layout in iOS
堆栈溢出
- Adding priority to layout constraints
- Inequality Constraint Ambiguity
- UIScrollView Scrollable Content Size Ambiguity
- Ambiguity with two inequality constraints
- IOS scrollview ambiguous scrollable content height in case of autolayout
答案可能在那里,但我无法抽象出来。
我尝试过的:
只关注带有两个标签的滚动视图我试图做一个最小的例子,其中父视图将根据滚动视图的固有高度调整大小。我玩过很多限制。这是一个不起作用的组合(在许多组合中):
我曾与auto layout 和normal constraints 甚至intrinsic content sizes 合作过。另外,我知道how to get a basic scroll view working with auto layout。然而,我从来没有做过任何优先级和内容拥抱和压缩阻力的事情。从我所做的阅读中,我对它们的含义有一个肤浅的理解,但我不知道如何在这种情况下应用它们。我的猜测是我需要做一些内容拥抱和优先事项。
【问题讨论】:
-
滚动视图没有固有大小 - 你有子类化它吗?
-
@Wain。我没有对滚动视图进行子类化,但由于
UILabel确实具有固有的内容大小,我试图让滚动视图的内容视图根据它包含的标签的大小将大小增加到一个点. -
如果你固定边缘应该,但这只是意味着你没有很好地解释你的问题......
-
@Wain,抱歉,我最后的评论不正确。内容视图大小正在增加。我正在尝试获取滚动视图的父级(以及滚动视图本身)以随着内容视图大小的增加而增加大小。当父级达到某个最大大小时,滚动视图的内容视图大小的任何增加都会导致正常的滚动行为。我开始认为这只能通过在运行时手动更改约束来实现。
标签: ios uiscrollview autolayout intrinsic-content-size