UVextView在带有Autolayout iOS的scrollView中无法正常工作

时间:2017-03-10 18:09:10

标签: ios objective-c uiscrollview autolayout

我试图创建一个动态UIView,它包含一些固定的图形元素和一些动态文本。我无法找到适合我项目的教程或文档中的内容。下面是我的爆炸视图(我的视图与scrollView和主视图的高度在iphone 5视图中被强制为800,仅用于此问题的目的) enter image description here

我想要实现什么?标题,图像,静态视图和静态视图2都是固定的,它们不会随内容而改变。标签1,标签2和textarea将随其内容大小增长。

enter image description here

我已经在这件事上工作了大约一天,我需要一些帮助,因为我无法获得任何结果。我试过这个解决方案:

solution 1

使用此解决方案,我可以在NSLog()中看到返回正确值的textview约束

self.textViewHeightConstraint.constant = [textview sizeThatFits:CGSizeMake(textview.frame.size.width, CGFLOAT_MAX)].height; 

但运行时的textarea框架保持不变。

我也试过这个教程:

solution 2

它适用于只有滚动视图,内容视图和textview的项目。当我尝试在我的项目中使用该逻辑时,它不再起作用了。

我尝试了很多其他解决方案,所以我的问题是:我如何才能达到预期的效果?或者我的布局设置中可能存在一些可笑的错误?或者简单地说,是否有人可以指向我的教程,涵盖类似的视图组织?

1 个答案:

答案 0 :(得分:1)

你应该避免在带有AutoLayout的UIScrollView内部使用复杂的嵌套子视图,而应该将它们放在subView中。最好的开始:

1:在UIView UIScrollView内放置一个leadingtrailing / top / bottom / UIScrollView约束设置为0 UIView

2:将所有子视图放在一个 UIView内,

3:更改scrollView.contentSize中任何子视图的文本/动态内容后,您只需计算UITableView并根据一组复杂嵌套子视图所需的代码进行相应设置。

您更好的选择:

使用scrollView,它具有return方法,并且在没有所有意大利面条代码的情况下,它可以非常轻松地处理动态布局。