UIView+Ext.swift 2.3 KB
//
//  UIView+Ext.swift
//  AoleiSports
//
//  Created by ilCode on 2024/6/11.
//

import UIKit

extension UIView {
    // 设置边框
    func border(borderColor: UIColor = .red, borderWidth: CGFloat = 1.0) {
        self.layer.borderWidth = borderWidth
        self.layer.borderColor = borderColor.cgColor
    }
    
    // 设置圆角
    func corners(radius: CGFloat) -> Void {
        self.layer.cornerRadius = radius
        self.clipsToBounds = true
    }
    
    // 分割线
    static func divider(color: UIColor = kDividerColor) -> UIView {
        let line = UIView()
        line.backgroundColor = color
        return line
    }
}

extension UIView {
    var x: CGFloat {
        get {
            return frame.origin.x
        }
        set(newVal) {
            var tmpFrame = frame
            tmpFrame.origin.x = newVal
            frame = tmpFrame
        }
    }
    var y: CGFloat {
        get {
            return frame.origin.y
        }
        set(newVal) {
            var tmpFrame = frame
            tmpFrame.origin.y = newVal
            frame = tmpFrame
        }
    }
    var width: CGFloat {
        get {
            return frame.size.width
        }
        set(newVal) {
            var tmpFrame = frame
            tmpFrame.size.width = newVal
            frame = tmpFrame
        }
    }
    var height: CGFloat {
        get {
            return frame.size.height
        }
        set(newVal) {
            var tmpFrame = frame
            tmpFrame.size.height = newVal
            frame = tmpFrame
        }
    }
    var origin : CGPoint {
        get {
            return frame.origin
        }
        set(newVal) {
            var tmpFrame = frame
            tmpFrame.origin = newVal
            frame = tmpFrame
        }
    }
    var size: CGSize {
        get {
            return frame.size
        }
        set(newVal) {
            var tmpFrame = frame
            tmpFrame.size = newVal
            frame = tmpFrame
        }
    }
}

extension UIView {
    func shakeAnimation() {
        let animation = CAKeyframeAnimation(keyPath: "position.x")
        animation.values = [0, 8, -8, 8, 0]
        animation.keyTimes = [0, 0.2, 0.4, 0.6, 1]
        animation.duration = 0.4
        animation.isAdditive = true
        layer.add(animation, forKey: "shake")
    }
}