android - 如何在 React Native iOS 中对图像进行透明渐变?

标签 android ios react-native

我一直在处理具有黑色和透明边的图像上的渐变矩形,我一直在寻找 React Native 中的渐变对象但我没有找到,但是有一个 React-Native 模块这样做,但问题是它在 android 中确实有效,但在 iOS 中,它不起作用,它显示白色而不是透明的一面

transparent gradient

比起我在寻找原生 iOS 解决方案,我做了,但它有点复杂,我无法在 React Native 中实现这个 fragment

CAGradientLayer *gradientMask = [CAGradientLayer layer];
gradientMask.frame = self.imageView.bounds;
gradientMask.colors = @[(id)[UIColor whiteColor].CGColor,
                    (id)[UIColor clearColor].CGColor];
self.imageView.layer.mask = gradientMask; <-- // looking for a way to achieve this in react native 

这是我的 react native 代码

    <Image ref={r => this.image = r}  style={styles.container} source={require('../assets/default_profile_picture.jpg')}>
      <LinearGradient ref={r => this.gradiant = r} locations={[0, 1.0]}  colors={['rgba(0,0,0,0.00)', 'rgba(0,0,0,0.80)']} style={styles.linearGradient}>
      </LinearGradient>
    </Image>

我不知道如何将 LinearGradient 作为 mask 传递给 Image

最佳答案

尝试positioning LinearGradient absolute 添加样式到LinearGradient

 <Image ref={r => this.image = r}  style={styles.container} 
        source={require('../assets/default_profile_picture.jpg')}>
      <LinearGradient ref={r => this.gradiant = r} locations={[0, 1.0]}  colors= 
                    {['rgba(0,0,0,0.00)', 'rgba(0,0,0,0.80)']} 
                    style={styles.linearGradient}>
      </LinearGradient>
 </Image>


styles.linearGradient = {
 ...,
 position:'absolute',
 width:'100%',
 height:'100%'
}

关于android - 如何在 React Native iOS 中对图像进行透明渐变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35097220/

相关文章:

Java Android - 分隔线已禁用但仍显示

android - 如何从 ionic4 应用程序启动外部应用程序

ios - CIMaskedVariableBlur 创建不需要的边框

react-native - Android资源链接失败-AAPT : error: resource android:attr/dialogCornerRadius not found

reactjs - 在自定义抽屉上设置 activeTintColor

Android 4.0 Ice Cream Sandwich 解析器错误

ios - 使用 PanGestureRecognizer 在与另一个 View 碰撞之前检测 View 的最后一个中心点?

ios - 在越狱的 iOS 设备上安装我的 .ipa

android - 语法错误 : Cannot use import statement outside a module | on android :app:bundleReleaseJsAndAssets

Android 如何从响应的 DefaultHttpClient 保存 cookie?