[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];
}
请帮我解决这个问题。
- React Native v0.19.0
- 运行 iPhone 6s Plus (9.2) 模拟器
常见的是覆盖-drawRect
进行自定义绘制,需要在-initWithFrame:
中将其不透明设置为NO或手动设置其背景色
- (instancetype)initWithFrame:(CGRect)frame
{
if (self = [super initWithFrame:frame]) {
[self setOpaque:NO];
// or [self setBackgroundColor:[UIColor clearColor]];
}
return self;
}
顺便说一句,虽然我们看到它是黑色的,但它不是黑色的。只是因为那里没有提供适当显示的颜色,导致你覆盖-drawRect
,你负责绘图相关的逻辑,但你没有按预期处理这个区域。
我有一个自定义视图绘制彩色路径,在 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];
}
请帮我解决这个问题。
- React Native v0.19.0
- 运行 iPhone 6s Plus (9.2) 模拟器
常见的是覆盖-drawRect
进行自定义绘制,需要在-initWithFrame:
- (instancetype)initWithFrame:(CGRect)frame
{
if (self = [super initWithFrame:frame]) {
[self setOpaque:NO];
// or [self setBackgroundColor:[UIColor clearColor]];
}
return self;
}
顺便说一句,虽然我们看到它是黑色的,但它不是黑色的。只是因为那里没有提供适当显示的颜色,导致你覆盖-drawRect
,你负责绘图相关的逻辑,但你没有按预期处理这个区域。