为什么Scrollview和子视图大小有时不一致

时间:2017-09-10 19:04:16

标签: ios uiscrollview xamarin.ios height ios-autolayout

我有一个滚动视图和一个子视图。

子视图大小会根据其内容动态增加。

我通过约束以编程方式更改子视图高度,同时我正在递增scrollview内容大小。所以我可以滚动滚动查看完整的子视图。

例如,如果我设置子视图320 px ..我可以看到子视图大小已经超过320像素..有时它像500 px(scrollview内容大小和子视图高度)或者什么......有时像我设定的那样是320px。

这对我来说似乎很荒谬

这与xamarin.ios有关吗?或者我做错了什么?

我正在改变视图高度......

Viewwilllayoutsubview和我在调用之前改变视图高度 this.View.LayoutIfNeeded

有人可以解释一下我做错了什么吗?

1 个答案:

答案 0 :(得分:1)

UIScrollView必须填充视图,我为UIScrollView的约束UIScrollView's constraints添加了图像

和现在一样,如果子视图的高度大于UIScrollView,则会开始滚动,但是

  1. 内部Childview的约束应该像这样。 (高度可以按照您所说的动态增加)

enter image description here

  1. 在ViewController中,您应该ping UIScrollView并更新其“内容”大小。

公共重写void ViewDidLayoutSubviews(){

base.ViewDidLayoutSubviews(); 
ScrlView.ContentSize = VwContent.Frame.Size;

}