gpt4 book ai didi

ios - 带有 UIScrollView 的纯自动布局

转载 作者:行者123 更新时间:2023-11-29 10:39:30 25 4
gpt4 key购买 nike

我正在尝试让 UIScrollView 使用自动布局定位和调整大小。我正在遵循 this documentation 中的“纯自动布局方法”指南,但我很难让它工作。

我的层次结构如下所示:

UICollectionViewCell -> UIView -> UIScrollView -> UIView

一切都使用自动布局约束进行定位,包括 UIScrollView(相对于其直接父级 UIView 定位)。 UICollectionViewCell 确实有一个固定的大小,因为它是由 collectionView:layout:sizeForItemAtIndexPath 设置的,但我认为这与这个问题无关。

我遇到的问题是最后一个 UIView(UIScrollView 的子级)的内容没有显示。如果我手动给它一个框架大小,它会显示,但我真的想使用自动布局。

该文档文章中有一行我不太理解:

使用 ScrollView 外部的约束来定位和调整 ScrollView 的大小。

这是否表明我可以使用自动布局在其父级中定位和调整 ScrollView 的大小,或者 ScrollView 是否具有固定的框架?

最佳答案

带有 UIScrollView 的自动布局乍一看似乎太复杂了。考虑以下两件事:

1) UIScrollView 的外部行为与任何其他 UIView 一样。这意味着,您可以使用自动布局约束为其设置任何位置/大小。与 UIView 没有区别。

2) UIScrollView 内部可以(但不应该)根据其中给定的自动布局约束计算其内容大小。对于这种行为,您应该为其提供一个奇怪的显式水平和垂直约束。

说:您在 UIView 父级中有 UIView 子级。您将左、上、下、右从 child 固定到 parent 。有足够的约束来计算 child 的位置和大小 - 没关系。现在,您的 UIScollView 父级中确实有 UIView 子级 - 以及相同的约束集。没有足够的约束来计算 ScrollView 的内容大小。为了计算 ScrollView 的内容大小,您应该为您的 child 设置例如等宽和等高约束到您的 UIScrollView 父级。

尽管您没有提供足够的信息来找出您的问题,但我认为,您很可能没有设置约束以在其父项中设置 UIScrollView 的大小/位置。之后 - 您可能没有在 ScrollView 内的每个方向上设置一个更明确的约束来计算其内容大小。

我强烈建议阅读 ray wenderlich 的 iOS 6 教程自动布局部分 - 您将了解自动布局如何以及为什么如此工作。

关于ios - 带有 UIScrollView 的纯自动布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25204749/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com