Ios 拼贴应用程序的自定义UIView

Ios 拼贴应用程序的自定义UIView,ios,iphone,swift,uiview,calayer,Ios,Iphone,Swift,Uiview,Calayer,我正在开发一个拼贴应用程序,我已经成功地构建了简单的拼贴,但现在我被困在如何构建复杂风格的拼贴上,如下图所示 如何创建自定义视图,如图中所示,我已尝试使用Beizerpath,并使用Beizerpath的路径对视图应用遮罩,但在将遮罩应用于视图时,我无法向层添加阴影。任何帮助都将不胜感激。我如何才能在图像中准确地创建阴影背后的视图类型?要求某人确切地告诉您如何实现应用程序的功能不适合此网站 使用CAShapeLayers并设置其各种阴影属性(如阴影不透明度、阴影半径、阴影偏移量、阴影颜色和阴影

我正在开发一个拼贴应用程序,我已经成功地构建了简单的拼贴,但现在我被困在如何构建复杂风格的拼贴上,如下图所示


如何创建自定义视图,如图中所示,我已尝试使用Beizerpath,并使用Beizerpath的路径对视图应用遮罩,但在将遮罩应用于视图时,我无法向层添加阴影。任何帮助都将不胜感激。我如何才能在图像中准确地创建阴影背后的视图类型?

要求某人确切地告诉您如何实现应用程序的功能不适合此网站

使用CAShapeLayers并设置其各种阴影属性(如阴影不透明度、阴影半径、阴影偏移量、阴影颜色和阴影路径)来查看阴影

   import UIKit

class ViewController: UIViewController {

    @IBOutlet var image1: UIImageView!  // your image outlet
    override func viewDidLoad() {


super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func viewDidAppear(_ animated: Bool) {



          let trianglePath = UIBezierPath()
        trianglePath.move(to: CGPoint(x: 0, y: image1.frame.size.height - 60))
        trianglePath.addLine(to: CGPoint(x:0, y: image1.frame.size.height))
        trianglePath.addLine(to: CGPoint(x: image1.frame.size.width, y: image1.frame.size.height))
        trianglePath.close()
        let path = UIBezierPath(rect: view.bounds)

        path.append(trianglePath)


        let maskLayer = CAShapeLayer()
        maskLayer.frame = image1.bounds

        maskLayer.fillRule = kCAFillRuleEvenOdd

        maskLayer.path = path.cgPath

        image1.layer.mask = maskLayer



    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}
还有更多的形状