-
[iOS|Swift] UIView 커스텀하기 (그림자)Swift 2022. 4. 22. 20:01728x90
UIView 그림자 생성하기
1. 그림자의 불투명도 지정하기
// Declaration var shadowOpacity: Float { get set }
testUIView.layer.shadowOpacity = 1
The value in this property must be in the range
0.0
(transparent) to1.0
(opaque).
The default value of this property is0.0
.불투명도는 0 ~ 1 사이의 값을 줄 수 있음. 기본값은 0.0임
2. 그림자의 위치 지정하기
// Declaration var shadowOffset: CGSize { get set }
testUIView.layer.shadowOffset = .zero
testUIView.layer.shadowOffset = CGSize(width: 50, height: 50)
3. 그림자의 흐림 지정하기
// Declaration var shadowRadius: CGFloat { get set }
testUIView.layer.shadowRadius = 10
4. 그림자의 색상 지정하기
// Declaration var shadowColor: CGColor? { get set }
testUIView.layer.shadowColor = UIColor.brown.cgColor
5. 그림자의 모양 커스텀하기
// Declaration var shadowPath: CGPath? { get set }
The default value of this property is
nil
- CGPath 사용
testUIView.layer.shadowOpacity = 1 testUIView.layer.shadowRadius = 5 testUIView.layer.shadowColor = UIColor.orange.cgColor let contactShadowSize: CGFloat = 20 let shadowPath = CGPath(ellipseIn: CGRect(x: -contactShadowSize, y: testUIView.bounds.height - (contactShadowSize * 0.4), width: testUIView.layer.bounds.width + contactShadowSize * 2, height: contactShadowSize), transform: nil) testUIView.layer.shadowPath = shadowPath
- UIBezierPath 사용
testUIView.layer.shadowOpacity = 1 testUIView.layer.shadowRadius = 1 testUIView.layer.shadowColor = UIColor.brown.cgColor let contactShadowSize: CGFloat = 20 let rect = CGRect(x: -contactShadowSize, y: testUIView.frame.height - (contactShadowSize * 0.4), width: testUIView.frame.width + contactShadowSize * 2, height: contactShadowSize) testUIView.layer.shadowPath = UIBezierPath(ovalIn: rect).cgPath
➕ masksToBounds
// Declaration var masksToBounds: Bool { get set }
The default value of this property is
false
.testUIView.layer.masksToBounds = false
- testUIView의 layer의 경계를 넘어서 그려질 수 있음
참고URL
https://developer.apple.com/documentation/quartzcore/calayer/1410771-shadowpath
https://medium.com/swlh/how-to-create-advanced-shadows-in-swift-ios-swift-guide-9d2844b653f8
'Swift' 카테고리의 다른 글
[iOS|Swift] storyboard 없이 코드로 UI 구현하기 (0) 2022.05.08 [iOS|Swift] UIView 커스텀하기 (라운드) (0) 2022.04.22 [iOS|Swift] UICollectionView Cell 크기 지정하기 (1) 2022.04.16 [Swift] Optional(옵셔널) (0) 2022.03.17 [Swift] 'Entry point (_main) undefined' 에러 (0) 2021.05.24