Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.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 界面生成器问题中的视图和自动布局_Ios_Objective C_Uiview_Uiscrollview_Autolayout - Fatal编程技术网

Ios 界面生成器问题中的视图和自动布局

Ios 界面生成器问题中的视图和自动布局,ios,objective-c,uiview,uiscrollview,autolayout,Ios,Objective C,Uiview,Uiscrollview,Autolayout,在阅读了大量的信息后,我决定写一个关于这个主题的新问题,并试图在没有结果的情况下成功 这项任务看起来微不足道。我有自己的观点。它有一个UIView类型的子视图,我们称之为ContentView。内容视图又有两个UIView类型的子视图,我们称之为ViewA和ViewB -ScrollView -ContentView -ViewA -ViewB ScrollView有4个约束,将其绑定到superview的所有边。ViewA对ContentView有3个

在阅读了大量的信息后,我决定写一个关于这个主题的新问题,并试图在没有结果的情况下成功

这项任务看起来微不足道。我有自己的观点。它有一个UIView类型的子视图,我们称之为ContentView。内容视图又有两个UIView类型的子视图,我们称之为ViewA和ViewB

-ScrollView
    -ContentView
        -ViewA
        -ViewB
ScrollView有4个约束,将其绑定到superview的所有边。ViewA对ContentView有3个约束-顶部、左侧和右侧。ViewB对ContentView有4个约束-底部、左侧、右侧和高度。在视图A的底部和视图B的顶部之间还有另一个约束。我的想法是,我将在运行时更改ContentView的框架,ViewA和ViewB将相应地自动调整大小和布局

嗯,它不起作用。我尝试在ContentView和ScrollView之间设置不同的约束,尝试不使用它们。得到了不同的结果,但没有一个是正确的。例如,ContentView对ScrollView顶部、底部、左侧和右侧有4个约束。我正在运行时设置ContentView的框架。但是,它会被重置,并且最终,ContentView框架基本上具有ViewB的高度,ViewB具有高度约束

非常感谢你的帮助

不要设置内容视图的框架。 您需要以定义其高度的方式向viewA添加约束。
我不是这样加的吗?ViewA的高度应根据ContentView大小自动计算,并考虑ViewB的固定高度。否则,我不理解本例中约束的目的。对我来说,它们应该在运行时调整视图的大小。否则,我可以简单地显式设置所有帧。还有内部视图的宽度。按照你的话,我也得把它调好。但我的想法是,我将在ContentView的运行时只设置一个框架,其中的所有内容都将按照使用自动布局和滚动视图的方式进行布局,这绝对不是直观的,我建议阅读苹果关于这个主题的技术说明:阅读纯自动布局方法一节。如果这样做,您将能够拥有动态布局。需要记住的关键是,scrollView中的每个视图都需要有定义其宽度/高度的显式约束,或者有一个类似UILabel的固有大小。已经阅读多次了。试着去理解它。最终,我想在IB中设置所有内容都不是一个选项。