ASDisplayNode 的子类不能加阴影?
The subclasses of ASDisplayNode can not add the shadow?
子类的ASDisplayNode不能加阴影?
_cancleOrderNode = [[ASButtonNode alloc] init];
[_cancleOrderNode setTitle:@"取消预约" withFont:EBOSystemFont(17) withColor:[UIColor whiteColor] forState:(ASControlStateNormal)];
_cancleOrderNode.backgroundColor = RGBCOLORV(0x1b7efe);
_cancleOrderNode.preferredFrameSize = CGSizeMake(100, 40);
_cancleOrderNode.cornerRadius = 5;
[self addShadowView:_cancleOrderNode
withShadowColor:RGBCOLORV(0xd6dae0)
withShadowOffSet:(CGSizeMake(5, 12))
withShadowOpacity:0.7];
[self addSubnode:_cancleOrderNode];
// 添加阴影
- (void)addShadowView:(ASDisplayNode *)targetNode withShadowColor:(UIColor *)shadowColor withShadowOffSet:(CGSize)shadowOffSet withShadowOpacity:(CGFloat)shadowOpacity{
UIBezierPath *shadowPath = [UIBezierPath bezierPathWithRect:targetNode.bounds];
targetNode.layer.masksToBounds = NO;
targetNode.layer.shadowColor = shadowColor.CGColor;
targetNode.layer.shadowOffset = shadowOffSet;
targetNode.layer.shadowOpacity = shadowOpacity;
targetNode.layer.shadowPath = shadowPath.CGPath;
}
但是没有成功,谁能帮帮我?
是的,当我删除
UIBezierPath *shadowPath = [UIBezierPath bezierPathWithRect:targetNode.bounds];
和
targetNode.layer.shadowPath = shadowPath.CGPath;
效果不错
子类的ASDisplayNode不能加阴影?
_cancleOrderNode = [[ASButtonNode alloc] init];
[_cancleOrderNode setTitle:@"取消预约" withFont:EBOSystemFont(17) withColor:[UIColor whiteColor] forState:(ASControlStateNormal)];
_cancleOrderNode.backgroundColor = RGBCOLORV(0x1b7efe);
_cancleOrderNode.preferredFrameSize = CGSizeMake(100, 40);
_cancleOrderNode.cornerRadius = 5;
[self addShadowView:_cancleOrderNode
withShadowColor:RGBCOLORV(0xd6dae0)
withShadowOffSet:(CGSizeMake(5, 12))
withShadowOpacity:0.7];
[self addSubnode:_cancleOrderNode];
// 添加阴影
- (void)addShadowView:(ASDisplayNode *)targetNode withShadowColor:(UIColor *)shadowColor withShadowOffSet:(CGSize)shadowOffSet withShadowOpacity:(CGFloat)shadowOpacity{
UIBezierPath *shadowPath = [UIBezierPath bezierPathWithRect:targetNode.bounds];
targetNode.layer.masksToBounds = NO;
targetNode.layer.shadowColor = shadowColor.CGColor;
targetNode.layer.shadowOffset = shadowOffSet;
targetNode.layer.shadowOpacity = shadowOpacity;
targetNode.layer.shadowPath = shadowPath.CGPath;
}
但是没有成功,谁能帮帮我?
是的,当我删除
UIBezierPath *shadowPath = [UIBezierPath bezierPathWithRect:targetNode.bounds];
和
targetNode.layer.shadowPath = shadowPath.CGPath;
效果不错