我们有一个自定义的MonoTouch对话框(MT D)元素,我们希望在键入该元素时对其进行扩展。
我们遇到了不重新计算高度的常见MT D问题。常见的解决方案是调用
this.GetContainerTableView().BeginUpdates();
this.GetContainerTableView().EndUpdates();
堆栈溢出问题
Monotouch: Force UITableView to recalculate height of each cell without reloading data
即使它确实散发出HACK的味道,对我们来说也一直很好。但是,用户报告其iPhone X出现问题,这意味着每次都滚动整个MT D容器(UITableView),这会导致屏幕跳转。
我尝试暂时禁用Element的Container和直接RootElement上的滚动,但这没什么作用。
任何人都可以提出一些阻止跳跃的建议吗?
答案 0 :(得分:0)
我曾尝试在Begin和EndUpdates之前将滚动位置设置回它的值,但在尝试挂钩滚动事件时遇到异常
UIKit.UIApplication.EnsureEventAndDelegateAreNotMismatched
但是,此建议可以在不使用Scroll Event的情况下进行重置。谢谢Kyle Shank
http://www.kyleshank.com/2015/12/05/prevent-uitableview-from-scrolling-during-updates.html
注意: 在发布到SO之前,我花了大约几个小时尝试解决这个问题。在写问题时,我找到了Kyke Shank解决方案,但决定如果我仍然以问题和随后的答案的形式写信,我们会更好。