繁体   English   中英

替代UITableView.Begin / EndUpdates

[英]Alternative to UITableView.Begin/EndUpdates

我们有一个自定义的MonoTouch对话框(MT D)元素,我们希望在键入该元素时对其进行扩展。

我们遇到了不重新计算高度的常见MT D问题。 常见的解决方案是致电

this.GetContainerTableView().BeginUpdates();
this.GetContainerTableView().EndUpdates();

堆栈溢出问题

Monotouch:强制UITableView重新计算每个单元格的高度,而无需重新加载数据

即使对我们来说,这确实很有效,即使它确实散发出HACK的味道。 但是,用户正在报告其iPhone X上的问题,这意味着每次滚动整个MT D容器(UITableView)都会导致屏幕跳转。

我尝试暂时禁用元素容器和直接RootElement上的滚动,但这没什么区别。

任何人都可以提出一些建议来阻止跳跃吗?

我曾尝试在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解决方案,但决定如果我仍然以问题和后续答案的形式来写,我们会更好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM