如何为带有阴影的 UIView 赋予椭圆形状

Posted

技术标签:

【中文标题】如何为带有阴影的 UIView 赋予椭圆形状【英文标题】:How to give oval shape to UIView with shadow 【发布时间】:2020-06-19 09:36:58 【问题描述】:

如何在底部只有阴影的椭圆形uiview

【问题讨论】:

【参考方案1】:

您需要为此使用UIBezierPath。这是一个示例(只需要使用这些值):

   let layer = CAShapeLayer()
    layer.fillColor = UIColor.red.cgColor
    layer.shadowOffset = CGSize(width: 0, height: 2)
    layer.shadowRadius = 5
    layer.shadowColor = UIColor.black.cgColor
    layer.shadowOpacity = 0.5
    layer.shadowRadius = 2
    view.layer.addSublayer(layer)

    let path = UIBezierPath()
    path.move(to: .zero)
    path.addLine(to: CGPoint(x: view.frame.maxX, y: 0))
    path.addLine(to: CGPoint(x: view.frame.maxX, y: 50))
    path.addQuadCurve(to: CGPoint(x: 0, y: 50), controlPoint: CGPoint(x: view.frame.midX, y: 70))
    path.close()

    layer.path = path.cgPath

结果:

【讨论】:

以上是关于如何为带有阴影的 UIView 赋予椭圆形状的主要内容,如果未能解决你的问题,请参考以下文章

在android xml中获取透明椭圆形下方的阴影

使用 MFC,如何为带有圆角和阴影的 CEdit 控件设置样式?

如何为按钮提供阴影

如何在蒙面的 UIView 周围绘制阴影?

如何为小部件边框/阴影添加霓虹发光效果?

Plotly:如何为标准偏差制作具有多条线和阴影区域的图形?