UIView+Ext.swift
2.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
//
// 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")
}
}