0
레이어와 그라디언트가있는 뷰에 그림자를 추가하려고합니다.레이어가있는 UIView에 그림자 추가
가1) 패스
let path = UIBezierPath()
path.move(to: CGPoint(x: myView.frame.minX, y: myView.frame.minY))
path.addLine(to: CGPoint(x: myView.frame.minX, y: myView.frame.maxY))
path.addLine(to: CGPoint(x: myView.frame.maxX, y: 171))
path.addLine(to: CGPoint(x: myView.frame.maxX, y: myView.frame.minY))
path.close()
2) 형상
let shape = CAShapeLayer()
shape.path = path.cgPath
3) 경사 및
let gradient = CAGradientLayer()
gradient.frame = myView.bounds
gradient.colors = [UIColor.red.cgColor, UIColor.blue.cgColor]
gradient.startPoint = CGPoint(x: 0, y: 0)
gradient.endPoint = CGPoint(x: 1, y: 1)
let shadow = CALayer()
shadow.shadowPath = path.cgPath
shadow.shadowColor = UIColor.black.cgColor
shadow.shadowOffset = CGSize.zero
shadow.shadowOpacity = 0.5
4 그림자) 입력 : 난 실현할 수 있었는지에 따라 내 계층의 하위 계층으로 모든 레이어
self.myView.layer.addSublayer(shape)
self.myView.layer.addSublayer(gradient)
self.myView.layer.addSublayer(shadow)
self.myView.layer.mask = shape
여기 시뮬레이터가 내게 보여주는 것은 무엇입니까? 무엇?!?! 그림자는보기가 아니라 아래에 배치됩니다 !!!
수정하려면 어떻게해야합니까? 내 마지막 목적은 그림자를보기 아래에 놓는 것입니다 (빨간색 선).
나는 그림자 반경을 지정하는 잊었지만 그림자는 아직 이미 maskToBound 전화를 시도했습니다 –
수행하여도 고정되지 않지만 작동하지 않았다 –
= false를 shadow.maskToBounds으로하려고 그렇게 –