1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- //
- // UIView+Ex.swift
- // KittensTravelNotes
- //
- // Created by 100Years on 2025/7/6.
- //
- public extension UIView {
- // 部分圆角(必须Frame已知)
- func makeCorner(_ corners: UIRectCorner, radius: CGFloat) {
- let path = UIBezierPath(roundedRect: bounds, byRoundingCorners: corners, cornerRadii: CGSize(width: radius, height: radius))
- let maskLayer = CAShapeLayer()
- maskLayer.frame = bounds
- maskLayer.path = path.cgPath
- layer.mask = maskLayer
- }
-
- /// 给 view 增加阴影
- /// - Parameters:
- /// - cornerRadius: 视图圆角
- /// - shadowColor: 阴影颜色
- /// - shadowOffset: 阴影偏移量
- /// - shadowRadius: 阴影扩散距离
- /// - shadowOpacity: 阴影透明度
- @discardableResult
- public func addShadow(shadowColor: CGColor?,
- shadowOffset: CGSize,
- shadowRadius: CGFloat,
- shadowOpacity: Float){
- layer.shadowColor = shadowColor
- layer.shadowOffset = shadowOffset
- layer.shadowOpacity = shadowOpacity
- layer.shadowRadius = shadowRadius
- }
-
- /// 增加渐变背景,需要先确定当前 view 的 frame
- /// - Parameters:
- /// - colors: 渐变背景颜色数组
- /// - startPoint: 渐变启示位置
- /// - endPoint: 渐变结束位置
- /// - layerSize: 指定 layer 的 size,否则和自己当前一样大
- public func addGradientBg(colors: [CGColor],
- startPoint: CGPoint = .zero,
- endPoint: CGPoint = CGPoint(x: 1, y: 1),
- layerSize: CGSize? = nil) {
- let gl = CAGradientLayer()
- gl.colors = colors
- gl.startPoint = startPoint
- gl.endPoint = endPoint
- gl.frame = CGRect(origin: .zero, size: layerSize ?? self.bounds.size)
- gl.zPosition = -1 // 将 gradientLayer 放在底层
- layer.insertSublayer(gl, at: 0)
- }
- }
- public extension UIView {
- func removeAllSubViews() {
- subviews.forEach { subview in
- subview.removeFromSuperview()
- }
- }
- }
|