Sur*_*gch 17 uiscrollview ios autolayout intrinsic-content-size
我基本上试图重现警报的标题和消息部分的行为.
标题和消息标签似乎位于滚动视图中.如果标签文本增加,则警报高度也随着标签的固有内容大小而增加.但在某个高度,警报高度停止增加,标题和消息文本变为可滚动.
我读过的内容:
用品
堆栈溢出
答案可能在那里,但我无法抽象它.
我尝试过的:
我只关注具有两个标签的滚动视图,我试图做一个最小的例子,其中父视图将根据scrollview的内在高度调整大小.我玩过很多限制.这是一个组合(许多)组合不起作用:
我使用过自动布局和正常约束,甚至内在的内容大小.此外,我知道如何使用自动布局获得基本滚动视图.但是,我从未做过任何关于优先级和内容拥抱以及抗压缩性的事情.从我所做的阅读中,我对它们的含义有一种肤浅的理解,但我不知道如何在这种情况下应用它们.我的猜测是我需要对内容拥抱和优先级做些什么.
Wai*_*ain 13
单独的约束无法解决您的问题,您必须使用一些代码.那是因为滚动视图没有内在的内容大小.
因此,创建滚动视图的子类.也许给它一个财产或代表或者什么来告诉它最大高度应该是多少.
在子类中,每当内容大小更改时,使内在内容大小无效,并将新的内在大小计算为内容大小的最小值和允许的最大大小.
一旦滚动视图具有内在大小,它与其超级视图之间的约束实际上将对您的问题执行一些有意义的操作.
Tia*_*ida 10
我想我已经达到了与纯自动布局相似的效果.
结构
首先,让我告诉你我的结构:
内容视图是具有白色背景的视图,来电者视图和底部视图具有固定的高度.底部视图有您的按钮,来电者视图有您的标题.
解决方案
因此,在设置基本约束之后(请注意滚动视图内部的视图具有滚动视图的顶部,左侧,右侧和底部以及相等的宽度),问题是滚动视图不知道应该具有的大小.所以这就是我所做的:
我希望卷轴可以增长到最大值.所以我在superview中添加了一个比例高度来设置最大值:
但是,这会带来两个问题:Scroll View仍然不知道应该具有什么高度,现在您可以调整大小,滚动视图将传递其内容的大小(如果内容小于最大大小).
因此,为了解决这两个问题,我从滚动视图和滚动视图中的视图内部添加了一个具有较小优先级的相等高度
我希望这可以帮助你.
归档时间: |
|
查看次数: |
4037 次 |
最近记录: |