@@ -17,7 +17,7 @@ class PPMusicImageShadow: UIView {
17
17
18
18
self . imageView? . contentMode = newValue
19
19
self . blurredImageView? . contentMode = newValue
20
-
20
+
21
21
} get {
22
22
return super. contentMode
23
23
}
@@ -46,7 +46,7 @@ class PPMusicImageShadow: UIView {
46
46
imageWidth = self . frame. size. width;
47
47
imageHeight = self . frame. size. height;
48
48
}
49
-
49
+
50
50
return CGSize ( width: imageWidth, height: imageHeight)
51
51
}
52
52
@@ -74,11 +74,14 @@ class PPMusicImageShadow: UIView {
74
74
75
75
var imageView : UIImageView !
76
76
var blurredImageView : UIImageView !
77
+ var blurWork : DispatchWorkItem ?
77
78
78
79
func calculateBlurredImage( ) {
80
+
81
+
79
82
#if !TARGET_INTERFACE_BUILDER
80
-
81
- DispatchQueue . global ( qos: DispatchQoS . QoSClass . userInteractive) . async {
83
+ blurWork ? . cancel ( )
84
+ blurWork = DispatchWorkItem ( qos: DispatchQoS . userInteractive, flags : DispatchWorkItemFlags . noQoS ) {
82
85
83
86
if let imageToblur = self . image{
84
87
@@ -101,25 +104,16 @@ class PPMusicImageShadow: UIView {
101
104
}
102
105
103
106
guard
104
- let resizedImage = containerImage. resized ( withPercentage: self . resizeConstant) ,
105
- let ciimage = CIImage . init ( image: resizedImage) ,
107
+ let resizedImage = containerImage. resized ( withPercentage: self . resizeConstant) ,
108
+ let ciimage = CIImage . init ( image: resizedImage) ,
106
109
let blurredImage = self . applyBlur ( ciimage: ciimage) else { return }
107
110
108
- let data1 = UIImageJPEGRepresentation ( resizedImage, 1.0 )
109
- let dir1 = NSHomeDirectory ( ) . appending ( " /Hellcont.jpg " )
110
- try ? data1? . write ( to: URL . init ( fileURLWithPath: dir1) )
111
- print ( " dir : \( dir1) " )
112
- let data = UIImageJPEGRepresentation ( blurredImage, 1.0 )
113
- let dir = NSHomeDirectory ( ) . appending ( " /Hello.jpg " )
114
- try ? data? . write ( to: URL . init ( fileURLWithPath: dir) )
115
- print ( " dir : \( dir) " )
116
-
117
111
DispatchQueue . main. async {
118
112
self . blurredImageView? . image = blurredImage
119
113
}
120
114
}
121
115
}
122
-
116
+ blurWork ? . perform ( )
123
117
124
118
#else
125
119
self . blurredImageView? . image = self . image
@@ -185,9 +179,8 @@ class PPMusicImageShadow: UIView {
185
179
override func layoutSubviews( ) {
186
180
super. layoutSubviews ( )
187
181
188
- self . calculateBlurredImage ( )
189
182
imageView? . frame = self . bounds
190
-
183
+
191
184
self . blurredImageView? . frame = self . bounds
192
185
self . blurredImageView? . frame. size = getNewImageSize ( ) . scaled ( by: shadowSizeConstant)
193
186
@@ -202,7 +195,6 @@ class PPMusicImageShadow: UIView {
202
195
mask. frame = self . blurredImageView!. bounds
203
196
//self.blurredImageView?.layer.mask = mask
204
197
self . blurredImageView? . layer. masksToBounds = false
205
-
206
198
}
207
199
208
200
override init ( frame: CGRect ) {
@@ -232,10 +224,10 @@ class PPMusicImageShadow: UIView {
232
224
233
225
imageView = UIImageView ( )
234
226
blurredImageView = UIImageView ( )
235
- self . calculateBlurredImage ( )
236
227
self . addSubview ( blurredImageView!)
237
228
self . addSubview ( imageView!)
238
229
self . imageView? . contentMode = self . contentMode
239
230
self . blurredImageView? . contentMode = self . contentMode
231
+ self . calculateBlurredImage ( )
240
232
}
241
233
}
0 commit comments