【发布时间】:2016-03-20 05:51:06
【问题描述】:
我无法让 React Native 中的图像按我的意愿工作。
因为 RN 中的图像是在单独的线程中本地解码的,所以 React Native 会在每个单独的图像加载后在不同的时间显示在我的组件中使用的图像(背景图像、手柄、旋钮、滑块) - 而不是显示当它准备好时,立即完成整个组件。
我正在使用 require 方法来渲染图像:
<Image source={require('./component-bg.png')} />
<Image source={require('./handle.png')} />
<Image source={require('./track.png')} />
如果加载几乎是即时的,这种异步加载是可以接受的。但即使是小图像似乎也在缓慢加载。这导致 UI 感觉非常不专业,直到为给定组件加载了所有图像。
有什么方法可以加快图片加载速度?包装 UIImageView 会更快吗(在 XCode iOS 项目中显示的图像似乎是即时的)。对 XCode 中手动捆绑图像的“uri”引用会更快吗? 这对我来说真的没有意义,为什么 React Native 在渲染图像时会比普通的 iOS 应用程序慢得多。 此外,当我创建了一个组件的多个动态实例时 - 每次创建新组件时,图像似乎都必须重新加载。
手动跟踪图片加载状态
当然,我可以手动跟踪每个单独的图像的加载事件,并让组件的容器视图的不透明度从 0 开始,然后在图像加载时动画到 1。但是对于这样的事情,这似乎过于复杂。
【问题讨论】:
-
您能找到解决方法吗?
-
@developer82,不直接。我做了一个解决方法来手动跟踪容器组件中的图像加载状态,这将抽象出此功能并使其易于在其他容器中使用。但是我没有时间正确实施它。在 GitHub 上查看相关问题:github.com/facebook/react-native/issues/…
标签: ios image react-native