[iOS][ReactNative v0.19.0] 自定义视图有意外的黑色背景

[iOS][ReactNative v0.19.0] Custom view has an unexpected black background

我有一个自定义视图绘制彩色路径,在 React Native 0.19 之前运行良好

但是在 React Native 0.19 上,似乎有一个默认的黑色背景,这使我无法使用半透明颜色。

在 React Native 0.19 上看起来像这样:

如果我在整个矩形上什么都不画或画一些半透明的颜色,你会看到黑色层

- (void)drawRect:(CGRect)rect
{
    [[UIColor colorWithWhite:0 alpha:0] setFill];
    CGContextFillRect(UIGraphicsGetCurrentContext(), rect);

    UIBezierPath *path = [UIBezierPath bezierPathWithRect:CGRectMake(10, 10, 20, 20)];
    [[UIColor redColor] setFill];
    [path fill];
}

请帮我解决这个问题。

常见的是覆盖-drawRect进行自定义绘制,需要在-initWithFrame:

中将其不透明设置为NO或手动设置其背景色
- (instancetype)initWithFrame:(CGRect)frame
{
  if (self = [super initWithFrame:frame]) {
    [self setOpaque:NO];
    // or [self setBackgroundColor:[UIColor clearColor]];
  }
  return self;
}

顺便说一句,虽然我们看到它是黑色的,但它不是黑色的。只是因为那里没有提供适当显示的颜色,导致你覆盖-drawRect,你负责绘图相关的逻辑,但你没有按预期处理这个区域。