我发现此链接是在Swift中完成的:What's the best way to add a drop shadow to my UIView
但是,当我使解决方案适应Xamarin时,没有阴影出现。
public override void ViewDidLayoutSubviews()
{
base.ViewDidLayoutSubviews();
UIBezierPath path = new UIBezierPath();
PreviousButton.Layer.MasksToBounds = false;
PreviousButton.Layer.ShadowColor = UIColor.Gray.CGColor;
PreviousButton.Layer.ShadowOffset = new CoreGraphics.CGSize(0f, 7f);
PreviousButton.Layer.ShadowOpacity = 1;
PreviousButton.Layer.ShadowPath = path.CGPath;
}
我正在使用自动版式。
原因:
您似乎忘记了设置路径的Rect
解决方案1:
您可以直接设置按钮的阴影
public override void ViewDidLayoutSubviews()
{
base.ViewDidLayoutSubviews();
PreviousButton.Layer.MasksToBounds = false;
PreviousButton.Layer.ShadowColor = UIColor.Gray.CGColor;
PreviousButton.Layer.ShadowOffset = new CoreGraphics.CGSize(0f, 7f);
PreviousButton.Layer.ShadowOpacity = 1;
}
解决方案2:如果确实要使用BezierPath,请设置它的矩形。
public override void ViewDidLayoutSubviews()
{
base.ViewDidLayoutSubviews();
UIBezierPath path = UIBezierPath.FromRect(PreviousButton.Bounds);
PreviousButton.Layer.MasksToBounds = false;
PreviousButton.Layer.ShadowColor = UIColor.Gray.CGColor;
PreviousButton.Layer.ShadowOffset = new CoreGraphics.CGSize(0f, 7f);
PreviousButton.Layer.ShadowOpacity = 1;
PreviousButton.Layer.ShadowPath = path.CGPath;
}