RCTViewManager fix with RCT_CUSTOM_VIEW_PROPERTY
This commit is contained in:
Родитель
5ceb5856d7
Коммит
2b2bbe28d3
|
@ -716,22 +716,6 @@ RCT_NOT_IMPLEMENTED(-(instancetype)initWithCoder : unused)
|
|||
#endif // TODO(macOS GH#774)
|
||||
|
||||
#if TARGET_OS_OSX // [TODO(macOS GH#774)
|
||||
// Workaround AppKit issue with directly manipulating the view layer's shadow.
|
||||
//- (NSShadow*)shadow
|
||||
//{
|
||||
// CALayer *layer = self.layer;
|
||||
// NSShadow *shadow = nil;
|
||||
//
|
||||
// if (layer.shadowColor != nil && layer.shadowOpacity > 0) {
|
||||
// shadow = [NSShadow new];
|
||||
//
|
||||
// shadow.shadowColor = [[NSColor colorWithCGColor:layer.shadowColor] colorWithAlphaComponent:layer.shadowOpacity];
|
||||
// shadow.shadowOffset = layer.shadowOffset;
|
||||
// shadow.shadowBlurRadius = layer.shadowRadius;
|
||||
// }
|
||||
// return shadow;
|
||||
//}
|
||||
|
||||
- (void)viewDidMoveToWindow
|
||||
{
|
||||
// Subscribe to view bounds changed notification so that the view can be notified when a
|
||||
|
|
|
@ -198,44 +198,23 @@ RCT_REMAP_VIEW_PROPERTY(opacity, alphaValue, CGFloat)
|
|||
|
||||
RCT_CUSTOM_VIEW_PROPERTY(shadowColor, CGColor, RCTView)
|
||||
{
|
||||
NSShadow *shadow = [NSShadow new];
|
||||
shadow.shadowColor = [NSColor colorWithCGColor:[RCTConvert CGColor:json]];
|
||||
if (view.shadow != nil)
|
||||
if (view.shadow == nil)
|
||||
{
|
||||
shadow.shadowOffset = view.shadow.shadowOffset;
|
||||
shadow.shadowBlurRadius = view.shadow.shadowBlurRadius;
|
||||
shadow.shadowColor = [shadow.shadowColor colorWithAlphaComponent:view.shadow.shadowColor.alphaComponent];
|
||||
view.shadow = [NSShadow new];
|
||||
}
|
||||
view.shadow = shadow;
|
||||
|
||||
// NSColor *shadowColor = [NSColor colorWithCGColor:[RCTConvert CGColor:json]];
|
||||
// if (view.shadow == nil)
|
||||
// {
|
||||
// view.shadow = [NSShadow new];
|
||||
// // don't need the next line?
|
||||
// view.shadow.shadowColor = shadowColor;
|
||||
// }
|
||||
// else {
|
||||
// view.shadow.shadowColor = [shadowColor colorWithAlphaComponent:view.shadow.shadowColor.alphaComponent];
|
||||
// }
|
||||
NSColor *shadowColor = [NSColor colorWithCGColor:[RCTConvert CGColor:json]];
|
||||
view.shadow.shadowColor = [shadowColor colorWithAlphaComponent:view.shadow.shadowColor.alphaComponent];
|
||||
}
|
||||
|
||||
RCT_CUSTOM_VIEW_PROPERTY(shadowOffset, CGSize, RCTView)
|
||||
{
|
||||
NSShadow *shadow = [NSShadow new];
|
||||
shadow.shadowOffset = [RCTConvert CGSize:json];
|
||||
if (view.shadow != nil)
|
||||
if (view.shadow == nil)
|
||||
{
|
||||
shadow.shadowBlurRadius = view.shadow.shadowBlurRadius;
|
||||
shadow.shadowColor = view.shadow.shadowColor;
|
||||
view.shadow = [NSShadow new];
|
||||
}
|
||||
view.shadow = shadow;
|
||||
|
||||
// if (view.shadow == nil)
|
||||
// {
|
||||
// view.shadow = [NSShadow new];
|
||||
// }
|
||||
// view.shadow.shadowOffset = [RCTConvert CGSize:json];
|
||||
CGSize shadowOffset = [RCTConvert CGSize:json];
|
||||
view.shadow.shadowOffset = shadowOffset;
|
||||
}
|
||||
|
||||
RCT_CUSTOM_VIEW_PROPERTY(shadowOpacity, float, RCTView)
|
||||
|
@ -249,32 +228,18 @@ RCT_CUSTOM_VIEW_PROPERTY(shadowOpacity, float, RCTView)
|
|||
}
|
||||
shadow.shadowColor = [shadow.shadowColor colorWithAlphaComponent:[RCTConvert float:json]];
|
||||
view.shadow = shadow;
|
||||
|
||||
// float shadowOpacity = [RCTConvert float:json];
|
||||
// if (view.shadow == nil)
|
||||
// {
|
||||
// view.shadow = [NSShadow new];
|
||||
// }
|
||||
// view.shadow.shadowColor = [view.shadow.shadowColor colorWithAlphaComponent:shadowOpacity];
|
||||
}
|
||||
|
||||
RCT_CUSTOM_VIEW_PROPERTY(shadowRadius, CGFloat, RCTView)
|
||||
{
|
||||
NSShadow *shadow = [NSShadow new];
|
||||
if (view.shadow != nil)
|
||||
if (view.shadow == nil)
|
||||
{
|
||||
shadow.shadowOffset = view.shadow.shadowOffset;
|
||||
shadow.shadowColor = view.shadow.shadowColor;
|
||||
view.shadow = [NSShadow new];
|
||||
}
|
||||
shadow.shadowBlurRadius = [RCTConvert CGFloat:json];
|
||||
view.shadow = shadow;
|
||||
|
||||
// if (view.shadow == nil)
|
||||
// {
|
||||
// view.shadow = [NSShadow new];
|
||||
// }
|
||||
// view.shadow.shadowBlurRadius = [RCTConvert CGFloat:json];
|
||||
CGFloat shadowRadius = [RCTConvert CGFloat:json];
|
||||
view.shadow.shadowBlurRadius = shadowRadius;
|
||||
}
|
||||
|
||||
RCT_REMAP_VIEW_PROPERTY(needsOffscreenAlphaCompositing, layer.allowsGroupOpacity, BOOL)
|
||||
RCT_CUSTOM_VIEW_PROPERTY(overflow, YGOverflow, RCTView)
|
||||
{
|
||||
|
|
Загрузка…
Ссылка в новой задаче