在Unity中粘贴UITableView滚动

时间:2012-05-13 01:01:55

标签: ios uitableview uiscrollview unity3d

我正在构建一个基于UITableView的Unity插件,它将由游戏开发者嵌入到他们的Unity应用程序中。我使用标准方法将可重复使用的单元格出列,UITableViewCell包含简单的UILabelUIImageViewUIImageView内的图像是通过异步请求加载的。

当将插件作为独立的Objective-C应用程序启动时,根本没有可用性问题(特别是滚动效果很好,没有延迟)但是当在Unity内部时,存在随机出现的“粘性”滚动问题,即视图滚动但没有惯性。我无法确定导致此行为的确切操作,但通常在我向一个方向快速滚动或者来回移动时发生。当我通过顶部或底部滚动视图时,错误消失(触发“反弹”效果,我猜这会导致一些硬刷新)。

有一个非常类似的问题描述为here。他们建议修复

#define USE_DISPLAY_LINK_IF_AVAILABLE 0

在Unity生成的AppController.mm文件中。不幸的是,这个解决方案对于将集成我们插件的游戏开发者来说是不可行的,因为它关闭了最快和最可靠的计时解决方案,并且需要回退到其他计时系统,这会导致游戏本身滞后或错过一部分触摸和加速计事件。

我很可能会覆盖drawRect UITableViewCell以减少渲染时间和内存使用量,如果失败,请在OpenGL中编写插件版本。但是,我想知道是否有人有类似的问题,并且知道更快的修复,无论是在Objective-C还是在Unity内部,都是非破坏性的(如上所述的定时修复)。非常感谢。

1 个答案:

答案 0 :(得分:3)

我遇到了你所描述的同样的麻烦。我通过评论

来修复它
  //#define USE_DISPLAY_LINK_IF_AVAILABLE 0