如何在Xamarin.iOS中向UIView添加阴影?

问题描述 投票:0回答:1

我发现此链接是在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;
}

我正在使用自动版式。

xamarin.ios shadow
1个回答
0
投票

原因:

您似乎忘记了设置路径的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;   
}
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.