iOS滚动视图不会滚动显示自动布局,并以编程方式添加视图

时间:2016-03-11 04:14:47

标签: ios uiscrollview ios-autolayout

我的ViewController内有scrollView和内容Viewlabels内部还有一些Content View和内容。

ScrollView ScreenShot

Constraints ScreenShot

此后,当view加载时我必须将数据从其他地方传递到此view controller,然后按代码加载其他一些视图。

scrollview Content height和身高确实已更新,我确实在ViewWillAppear处加载和添加了观看次数。但即使内容大小大于scrollview的高度,我也无法滚动它。

Scroll View身高: 667 Scroll View内容高度: 1632 ContentView身高: 1632

3 个答案:

答案 0 :(得分:2)

您的滚动视图未滚动,因为您为内容视图指定了固定大小。

别担心,只需要限制高度出口。

检查下面的图片,如何克制约束的出口,

enter image description here

注意: - 您需要创建高度限制。

从你的形象。

enter image description here

现在设置在 viewDidLayoutSubviews

-(void)viewDidLayoutSubviews
{
    NSInteger screenheight=[ [ UIScreen mainScreen ] bounds ].size.height;

    if (screenheight > 504 + 64)
    {
        _contentviewHeight.constant = screenheight-64;
    }

}

最后但并非最不重要,不要忘记从调整Scrollview昆虫中删除Tick,

enter image description here

答案 1 :(得分:0)

在Autolayout的情况下,您要添加到scrollview的任何视图。您必须添加约束(基本上是顶部约束),以便Scrollview自动计算内容大小。

请参阅下面以编程方式添加约束。

iOS create NSLayoutConstraint programmatically for table view cell content

编辑: -

就像你说的那样,SView在故事板中。因此,在SView上从故事板本身创建约束。

E,R和H View将以编程方式添加约束

链接只是一个例子

您将使用[self addConstraint]而不是[self.ContentView addConstraint]

此外,请参考这个: -

iOS Autolayout Vertically equal space to fill parent view

答案 2 :(得分:0)

好的,最后。

尝试重试后无济于事。 我只是放弃了在ViewController上放置自动布局,它具有滚动视图本身。

所以我取消了自动布局,然后是VOILA。

显然,具有滚动视图的视图控制器不需要自动布局。我通过代码输入的视图需要在故事板中自动布局。在我正确地调整视图中的所有约束并且从不给它们宽高比约束但仅修正它们的宽度和高度之后。完成。

所以我希望任何与我同样沮丧的人都能看到这一点并听从我的建议。不要在滚动视图或其内容视图上放置自动布局。完全解开它。为您要放入的视图执行自动布局。您只需指定视图'正确的宽度和高度,它将起作用。

相关问题