为啥有时滚动视图和子视图大小不一致

Posted

技术标签:

【中文标题】为啥有时滚动视图和子视图大小不一致【英文标题】:why Scrollview and child view size is inconsistent sometimes为什么有时滚动视图和子视图大小不一致 【发布时间】:2018-02-19 00:49:33 【问题描述】:

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

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

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

例如,如果我将子视图设置为 320 像素 .. 我可以看到子视图大小已超过 320 像素 .. 有时它像 500 像素(滚动视图内容大小和子视图高度)或其他东西...有时它是我设置的 320 像素。

这对我来说似乎很荒谬

这与 xamarin.ios 有关吗?还是我做错了什么?

我正在更改...上的视图高度

Viewwilllayoutsubview 并且在调用之前我正在更改视图高度 this.View.LayoutIfNeeded

谁能解释一下我做错了什么?

【问题讨论】:

能否分享相关代码? 【参考方案1】:

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

和你现在一样,如果子视图的高度比 UIScrollView 长,则开始滚动但是

    内部 Childview 的约束应该是这样的。 (如你所说,高度可以动态增加)

    在您的 ViewController 中,您应该对 UIScrollView 执行 ping 操作并更新其内容大小。
  public override void ViewDidLayoutSubviews() 

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

   

【讨论】:

以上是关于为啥有时滚动视图和子视图大小不一致的主要内容,如果未能解决你的问题,请参考以下文章

滚动表格视图时单元格变为空白(swift)

为啥滚动时列表视图项目内的图像视图会消失?

我的可滚动 ui 堆栈视图中有空格,我不知道为啥

在 UIScrollView 中调整视图大小后,滚动视图不知道它改变了

调整滚动视图框架的大小时,UIScrollView 子视图的大小调整不正确

滚动视图加载内容的不同部分不一致? (iOS)