0

我有一个UIViewController异步加载一些数据后需要调整一些子视图(一些 UITableViews 和一些 UIScrollViews)。这在模拟器中工作得很好,但在实际设备上,它会挂起很长时间(在一种情况下长达 30 秒)。我认为问题在于它希望在每次更改为子视图后重新计算所有内容,并且我希望能够告诉它推迟任何重新计算,直到我调整了所有内容的大小,但我在寻找方法时画了一个空白要做到这一点。有没有一种机制可以做到这一点?

所以我正在做的事情是这样的(我将 C# 与 Xamarin 一起使用,但在 Obj-C 中的输入也将不胜感激!):

// Need to suspend layout here... 
MyTable.Frame = new RectangleF(...);
SomeOtherTable.Frame = new RectangleF(...);
ScrollView.ContentSize = new SizeF(...);
AnotherScrollView.ContentSize = new SizeF(...);
AnotherScrollView.Frame = new RectangleF(...);
// Ok - now you can redraw!

更新:雅各布关于禁用动画的建议似乎没有帮助,但我认为我已经将问题隔离到表格调整大小。它们似乎对性能的影响最大,但我不确定为什么,或者如何缓解这个问题。我可能会就此提出一个单独的问题。

4

0 回答 0