Iphone 使用ScrollViewDidScroll动态调整UIStackView项目的大小时,ScrollViewDidScroll中的延迟
在我开始之前,请不要拍摄messenger-这是客户端所需的功能,因此在这种情况下,关于UX的更高级别的对错的讨论可能不会有多大帮助 无论如何,我的困境如下。我有一个包含许多项的垂直视图,每个项都有自己的子视图集合 此垂直UIStackView中的顶部项包含一个水平分页的UIScrollView,在该视图上添加了一个水平UIStackView,其中包含许多不同高度的项 现在,由于水平UIStackView包含不同高度的项目,当其包含的UIScrollView向左和向右滚动时,从而将新项目带到屏幕上(并将以前的项目滑出),UIStackView和父UIScrollView的高度NSLayoutConstraint需要更改以适应。这可确保此顶部项目下的所有垂直视图项目在需要时自动滑出(并备份) 动态调整大小都是在顶部项的UIScrollView的scrollViewDidScroll中完成的 信不信由你,这一切实际上都是可行的,只有一个问题:当需要调整大小时,我会得到UIScrollView滞后。如果不需要调整大小,我不需要 现在从证据来看,在调整大小时,autolayout、UIStackViews和scrollViewDidScroll似乎不能很好地配合使用,我还认为这与垂直UIStackView有关,它为scrollViewDidScroll的每一帧调用其所有子项上的LayoutSubView,这实际上改变了顶部项目的高度。如果除去包含UIScrollView+水平UIStackView的顶部项目之外的所有UIStackView项目,则在调整大小时滚动是无缝的。此外,如果我将调整大小放在scrollViewDidScroll中的动画块中,该动画块只调用一次,它同样是无缝的Iphone 使用ScrollViewDidScroll动态调整UIStackView项目的大小时,ScrollViewDidScroll中的延迟,iphone,uiscrollview,autolayout,lag,uistackview,Iphone,Uiscrollview,Autolayout,Lag,Uistackview,在我开始之前,请不要拍摄messenger-这是客户端所需的功能,因此在这种情况下,关于UX的更高级别的对错的讨论可能不会有多大帮助 无论如何,我的困境如下。我有一个包含许多项的垂直视图,每个项都有自己的子视图集合 此垂直UIStackView中的顶部项包含一个水平分页的UIScrollView,在该视图上添加了一个水平UIStackView,其中包含许多不同高度的项 现在,由于水平UIStackView包含不同高度的项目,当其包含的UIScrollView向左和向右滚动时,从而将新项目带到屏幕
所以问题是,有没有人在过去遇到过类似的事情并找到了解决办法?我有什么遗漏吗?有人知道在这个例子中UIStackView layoutSubviews调用是否可以被阻止或阻止吗?我们非常欢迎您的想法,因为取消autolayout和UIStackView的使用可能会产生一些大而昂贵的后果。请在@Afox共享一些代码请在@Afox共享一些代码