Wenn Sie sich wegen der abgerundeten corners
vs. subviews
vs. masksToBounds
dann versuchen Sie es mit meiner Funktion:
- (UIView*)putView:(UIView*)view insideShadowWithColor:(UIColor*)color andRadius:(CGFloat)shadowRadius andOffset:(CGSize)shadowOffset andOpacity:(CGFloat)shadowOpacity
{
CGRect shadowFrame; // Modify this if needed
shadowFrame.size.width = 0.f;
shadowFrame.size.height = 0.f;
shadowFrame.origin.x = 0.f;
shadowFrame.origin.y = 0.f;
UIView * shadow = [[UIView alloc] initWithFrame:shadowFrame];
shadow.userInteractionEnabled = NO; // Modify this if needed
shadow.layer.shadowColor = color.CGColor;
shadow.layer.shadowOffset = shadowOffset;
shadow.layer.shadowRadius = shadowRadius;
shadow.layer.masksToBounds = NO;
shadow.clipsToBounds = NO;
shadow.layer.shadowOpacity = shadowOpacity;
[view.superview insertSubview:shadow belowSubview:view];
[shadow addSubview:view];
return shadow;
}
Egal, ob Ihre Ansicht abgerundete Ecken hat, egal, wie groß sie ist, egal, wie sie aussieht - es wird ein schöner Schatten gezeichnet.
Behalten Sie einfach den Rückgabewert der Funktion, damit Sie darauf verweisen können, wenn Sie die Tabelle entfernen wollen (oder verwenden Sie zum Beispiel insertSubview:aboveView:
)