Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Objective-c:视图的动态大小,取决于它';内容_Ios_Objective C_Uistackview - Fatal编程技术网

Ios Objective-c:视图的动态大小,取决于它';内容

Ios Objective-c:视图的动态大小,取决于它';内容,ios,objective-c,uistackview,Ios,Objective C,Uistackview,我有一个在滚动视图中的视图。stackView的内容是动态的,这取决于使用方法“addArrangedSubview”创建和添加的视图数量。如果我有几个子视图,它们之间的间距太大,如果我有太多视图,它们会被压缩 我有: _视图控制器 |__看法 |____滚动视图 |______stackView(动态内容) 我将stackview设置为: 对齐:填充 分布:等间距 间距:5 当然,约束条件包括顶部/底部/前导/尾随 我希望在每次添加视图时都增加视图的大小,并保持添加的子视图的大小。 可能是

我有一个在滚动视图中的视图。stackView的内容是动态的,这取决于使用方法“addArrangedSubview”创建和添加的视图数量。如果我有几个子视图,它们之间的间距太大,如果我有太多视图,它们会被压缩

我有:

_视图控制器

|__看法

|____滚动视图

|______stackView(动态内容)

我将stackview设置为:

  • 对齐:填充
  • 分布:等间距
  • 间距:5 当然,约束条件包括顶部/底部/前导/尾随
我希望在每次添加视图时都增加视图的大小,并保持添加的子视图的大小。 可能是缺少了什么或者我的理解不好。。有人能告诉我怎么做吗

我正在与objective-c合作

我已经详细介绍了这个主题。你可以在那里看一看分步指南。但我也在这里添加了一个简短的解释:

您应该设置滚动视图到其超级视图的所有必要约束。然后是堆栈视图,它是该滚动视图的子视图。您可能已经将此堆栈视图的所有四条边都固定到了滚动视图。但真正的问题来了

UIScrollView
与其他视图不同。它有一个
contentView
。此内容视图负责滚动行为。如果滚动视图的框架中不适合的内容多于启用的滚动

因此,为了正确设置内容视图,滚动视图必须知道内容视图的大小,以便知道何时停止滚动。此处的大小表示实际的
宽度
高度
。但是这个大小不能从约束的设置中确定,因为它们是由自动布局引擎动态计算的

在您的例子中,堆栈视图充当滚动视图的内容视图。您可能已将堆栈视图的所有边固定到它的superview-
UIScrollView
。但这还不足以让滚动视图计算内容大小。您还必须提供:

  • 宽度
    高度
    -如果您的滚动视图可在两个轴上滚动
  • 宽度
    -如果要垂直滚动并限制水平滚动
  • 高度
    -如果要水平滚动并限制垂直滚动
当您需要水平滚动时,必须通过提供与滚动视图相同的堆栈视图的
高度来限制垂直滚动(它并不总是需要与滚动视图的高度相同,但应通过其他方式覆盖滚动视图的整个高度)。您还需要一个占位符x轴约束,以使
界面生成器
满意。内容视图的实际宽度将被添加到堆栈视图的子视图所覆盖

重要提示:您应该在堆栈视图中添加一个水平容器内约束,并使其成为将在构建时删除的占位符。您可以通过在文档大纲中选择约束并打开大小检查器来执行此操作,您将在其中获得一个
在生成时删除
复选框。勾选该复选框,即可开始


您的滚动视图有一个内容视图,指示滚动视图中可见的窗口。我假设堆栈视图被约束到滚动视图的边界,因此需要调整这些边界。如果滚动视图的高度仅为内容视图的大小,则堆栈视图将尝试挤入该空间。很抱歉,我没有得到您的答案。。我想讨论的情况是,当一个子视图添加到stackview时,堆栈的大小会动态增加,因此scrollview和view..也会增加。您是如何设置scrollview和stack视图的?从故事板还是从代码?从故事板井。伟大的我有一篇关于这个话题的详细帖子。最好知道滚动是水平还是垂直。我将在这里添加一个答案以及该帖子的链接,以满足您的需要。太好了,谢谢您的详细回答!!看来这正是我需要的,我会试试看,让你知道!可以如果这有帮助的话,请别忘了向我的中篇文章表达你的爱,你,你救了我的命。。非常感谢。和优秀的媒体文章,如此清晰和解释。很高兴知道你克服了这个问题。