Skip to content

Commit 9481f92

Browse files
author
Jasper
committed
增加红包UI
1 parent 4eaa17d commit 9481f92

16 files changed

+1535
-67
lines changed

CYUtilProjectSwift/CYUtilProjectSwift/CYUtilProjectSwift.xcodeproj/project.pbxproj

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,22 @@
2525
A38580201DEFCFA800FF989F /* CYLineProgressBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = A385801F1DEFCFA800FF989F /* CYLineProgressBar.swift */; };
2626
A38580221DEFD1E900FF989F /* CYArcProgressBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = A38580211DEFD1E900FF989F /* CYArcProgressBar.swift */; };
2727
A38580241DEFF6E100FF989F /* CYCycleProgressBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = A38580231DEFF6E100FF989F /* CYCycleProgressBar.swift */; };
28+
A385A69F1ED138EA0022C2EB /* UIWindow+CYAlertWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = A385A69E1ED138EA0022C2EB /* UIWindow+CYAlertWindow.swift */; };
29+
A385A6A11ED13BD10022C2EB /* UIWindow+CYRedPacket.swift in Sources */ = {isa = PBXBuildFile; fileRef = A385A6A01ED13BD10022C2EB /* UIWindow+CYRedPacket.swift */; };
30+
A385A6A31ED13C220022C2EB /* CYRedPacketOpenView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A385A6A21ED13C220022C2EB /* CYRedPacketOpenView.swift */; };
31+
A385A6A51ED150C40022C2EB /* CYRedPacketDetailHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A385A6A41ED150C40022C2EB /* CYRedPacketDetailHeaderView.swift */; };
32+
A385A6A71ED1585B0022C2EB /* CYRedPacketDetailCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A385A6A61ED1585B0022C2EB /* CYRedPacketDetailCell.swift */; };
33+
A385A6A91ED168BE0022C2EB /* CYRedPacketDetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A385A6A81ED168BE0022C2EB /* CYRedPacketDetailViewController.swift */; };
34+
A385A6AC1ED16A8E0022C2EB /* CYRedPacketViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A385A6AB1ED16A8E0022C2EB /* CYRedPacketViewModel.swift */; };
35+
A385A6AE1ED16C240022C2EB /* CYRedPacketDrawViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A385A6AD1ED16C240022C2EB /* CYRedPacketDrawViewModel.swift */; };
2836
A3B700981E1B449C00823B7B /* CYProgressWebView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3B700971E1B449C00823B7B /* CYProgressWebView.swift */; };
2937
A3B7009B1E1B500B00823B7B /* ProgressWebTestViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3B7009A1E1B500B00823B7B /* ProgressWebTestViewController.swift */; };
38+
A3BA5F1C1E67ED8200B31B8C /* CYProgressWebViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3BA5F1B1E67ED8200B31B8C /* CYProgressWebViewController.swift */; };
3039
A3CCAF311D17A56000A40969 /* CYJSJSONParametersSerialization.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3CCAF301D17A56000A40969 /* CYJSJSONParametersSerialization.swift */; };
3140
A3CCAF331D17A57900A40969 /* CYJSParametersSerialization.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3CCAF321D17A57900A40969 /* CYJSParametersSerialization.swift */; };
3241
A3CCAF351D17A58900A40969 /* CYJSHTTPParametersSerialization.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3CCAF341D17A58900A40969 /* CYJSHTTPParametersSerialization.swift */; };
3342
A3CCAF371D17D6EE00A40969 /* CYAlertView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3CCAF361D17D6EE00A40969 /* CYAlertView.swift */; };
43+
A3DEB59E1E66C89F000B6001 /* CYWebViewProgress.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3DEB59D1E66C89F000B6001 /* CYWebViewProgress.swift */; };
3444
A3E2530A1CFD976F002F8E18 /* ObjectiveCTestObject.m in Sources */ = {isa = PBXBuildFile; fileRef = A3E253091CFD976F002F8E18 /* ObjectiveCTestObject.m */; };
3545
/* End PBXBuildFile section */
3646

@@ -55,12 +65,22 @@
5565
A385801F1DEFCFA800FF989F /* CYLineProgressBar.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CYLineProgressBar.swift; sourceTree = "<group>"; };
5666
A38580211DEFD1E900FF989F /* CYArcProgressBar.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CYArcProgressBar.swift; sourceTree = "<group>"; };
5767
A38580231DEFF6E100FF989F /* CYCycleProgressBar.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CYCycleProgressBar.swift; sourceTree = "<group>"; };
68+
A385A69E1ED138EA0022C2EB /* UIWindow+CYAlertWindow.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIWindow+CYAlertWindow.swift"; sourceTree = "<group>"; };
69+
A385A6A01ED13BD10022C2EB /* UIWindow+CYRedPacket.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIWindow+CYRedPacket.swift"; sourceTree = "<group>"; };
70+
A385A6A21ED13C220022C2EB /* CYRedPacketOpenView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CYRedPacketOpenView.swift; sourceTree = "<group>"; };
71+
A385A6A41ED150C40022C2EB /* CYRedPacketDetailHeaderView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CYRedPacketDetailHeaderView.swift; sourceTree = "<group>"; };
72+
A385A6A61ED1585B0022C2EB /* CYRedPacketDetailCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CYRedPacketDetailCell.swift; sourceTree = "<group>"; };
73+
A385A6A81ED168BE0022C2EB /* CYRedPacketDetailViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CYRedPacketDetailViewController.swift; sourceTree = "<group>"; };
74+
A385A6AB1ED16A8E0022C2EB /* CYRedPacketViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CYRedPacketViewModel.swift; sourceTree = "<group>"; };
75+
A385A6AD1ED16C240022C2EB /* CYRedPacketDrawViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CYRedPacketDrawViewModel.swift; sourceTree = "<group>"; };
5876
A3B700971E1B449C00823B7B /* CYProgressWebView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CYProgressWebView.swift; sourceTree = "<group>"; };
5977
A3B7009A1E1B500B00823B7B /* ProgressWebTestViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ProgressWebTestViewController.swift; sourceTree = "<group>"; };
78+
A3BA5F1B1E67ED8200B31B8C /* CYProgressWebViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CYProgressWebViewController.swift; sourceTree = "<group>"; };
6079
A3CCAF301D17A56000A40969 /* CYJSJSONParametersSerialization.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CYJSJSONParametersSerialization.swift; sourceTree = "<group>"; };
6180
A3CCAF321D17A57900A40969 /* CYJSParametersSerialization.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CYJSParametersSerialization.swift; sourceTree = "<group>"; };
6281
A3CCAF341D17A58900A40969 /* CYJSHTTPParametersSerialization.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CYJSHTTPParametersSerialization.swift; sourceTree = "<group>"; };
6382
A3CCAF361D17D6EE00A40969 /* CYAlertView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CYAlertView.swift; sourceTree = "<group>"; };
83+
A3DEB59D1E66C89F000B6001 /* CYWebViewProgress.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CYWebViewProgress.swift; sourceTree = "<group>"; };
6484
A3E253071CFD976F002F8E18 /* CYUtilProjectSwift-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "CYUtilProjectSwift-Bridging-Header.h"; sourceTree = "<group>"; };
6585
A3E253081CFD976F002F8E18 /* ObjectiveCTestObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ObjectiveCTestObject.h; sourceTree = "<group>"; };
6686
A3E253091CFD976F002F8E18 /* ObjectiveCTestObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjectiveCTestObject.m; sourceTree = "<group>"; };
@@ -114,6 +134,8 @@
114134
61091D6F1CDAFCB0008B7EA3 /* CYUtils */ = {
115135
isa = PBXGroup;
116136
children = (
137+
A385A69D1ED138CE0022C2EB /* CYAlertWindow */,
138+
A385A69C1ED138810022C2EB /* CYRedPacketUI */,
117139
A3B700961E1B446900823B7B /* CYProgressWeb */,
118140
A345C5F81DEBDE0A0094AF5A /* CYProgressUtils */,
119141
A33E4B391D069A9C001B0AB1 /* CYWebViewUtils */,
@@ -190,10 +212,42 @@
190212
path = CYProgressUtils;
191213
sourceTree = "<group>";
192214
};
215+
A385A69C1ED138810022C2EB /* CYRedPacketUI */ = {
216+
isa = PBXGroup;
217+
children = (
218+
A385A6AA1ED16A710022C2EB /* ViewModel */,
219+
A385A6A01ED13BD10022C2EB /* UIWindow+CYRedPacket.swift */,
220+
A385A6A21ED13C220022C2EB /* CYRedPacketOpenView.swift */,
221+
A385A6A41ED150C40022C2EB /* CYRedPacketDetailHeaderView.swift */,
222+
A385A6A61ED1585B0022C2EB /* CYRedPacketDetailCell.swift */,
223+
A385A6A81ED168BE0022C2EB /* CYRedPacketDetailViewController.swift */,
224+
);
225+
path = CYRedPacketUI;
226+
sourceTree = "<group>";
227+
};
228+
A385A69D1ED138CE0022C2EB /* CYAlertWindow */ = {
229+
isa = PBXGroup;
230+
children = (
231+
A385A69E1ED138EA0022C2EB /* UIWindow+CYAlertWindow.swift */,
232+
);
233+
path = CYAlertWindow;
234+
sourceTree = "<group>";
235+
};
236+
A385A6AA1ED16A710022C2EB /* ViewModel */ = {
237+
isa = PBXGroup;
238+
children = (
239+
A385A6AB1ED16A8E0022C2EB /* CYRedPacketViewModel.swift */,
240+
A385A6AD1ED16C240022C2EB /* CYRedPacketDrawViewModel.swift */,
241+
);
242+
path = ViewModel;
243+
sourceTree = "<group>";
244+
};
193245
A3B700961E1B446900823B7B /* CYProgressWeb */ = {
194246
isa = PBXGroup;
195247
children = (
196248
A3B700971E1B449C00823B7B /* CYProgressWebView.swift */,
249+
A3DEB59D1E66C89F000B6001 /* CYWebViewProgress.swift */,
250+
A3BA5F1B1E67ED8200B31B8C /* CYProgressWebViewController.swift */,
197251
);
198252
path = CYProgressWeb;
199253
sourceTree = "<group>";
@@ -291,7 +345,9 @@
291345
files = (
292346
A30EA3D21CFED40F006FEF23 /* CYAudioPlayUtils.swift in Sources */,
293347
A345C5FC1DEBDE2F0094AF5A /* CYBaseProgressBar.swift in Sources */,
348+
A385A6AE1ED16C240022C2EB /* CYRedPacketDrawViewModel.swift in Sources */,
294349
A33E4B3B1D069B0C001B0AB1 /* CYJSLocalRequestUtils.swift in Sources */,
350+
A385A6A91ED168BE0022C2EB /* CYRedPacketDetailViewController.swift in Sources */,
295351
61091D601CDAF8E4008B7EA3 /* ViewController.swift in Sources */,
296352
A38580221DEFD1E900FF989F /* CYArcProgressBar.swift in Sources */,
297353
A30EA3D41CFEE023006FEF23 /* CYAudioRecordUtils.swift in Sources */,
@@ -303,14 +359,22 @@
303359
A3CCAF331D17A57900A40969 /* CYJSParametersSerialization.swift in Sources */,
304360
61091D5E1CDAF8E4008B7EA3 /* AppDelegate.swift in Sources */,
305361
A306D5631CE330A8008341F3 /* CYAlertViewAction.swift in Sources */,
362+
A385A6A31ED13C220022C2EB /* CYRedPacketOpenView.swift in Sources */,
363+
A3DEB59E1E66C89F000B6001 /* CYWebViewProgress.swift in Sources */,
306364
A38580201DEFCFA800FF989F /* CYLineProgressBar.swift in Sources */,
307365
A3CCAF351D17A58900A40969 /* CYJSHTTPParametersSerialization.swift in Sources */,
366+
A385A6A11ED13BD10022C2EB /* UIWindow+CYRedPacket.swift in Sources */,
308367
A3CCAF371D17D6EE00A40969 /* CYAlertView.swift in Sources */,
309368
A33913D31CF4282700C8C147 /* Array+CYUtils.swift in Sources */,
310369
A3E2530A1CFD976F002F8E18 /* ObjectiveCTestObject.m in Sources */,
370+
A385A6A51ED150C40022C2EB /* CYRedPacketDetailHeaderView.swift in Sources */,
371+
A385A6AC1ED16A8E0022C2EB /* CYRedPacketViewModel.swift in Sources */,
311372
A33913CE1CF3EE4400C8C147 /* Dictionary+CYUtils.swift in Sources */,
312373
A3B700981E1B449C00823B7B /* CYProgressWebView.swift in Sources */,
374+
A385A6A71ED1585B0022C2EB /* CYRedPacketDetailCell.swift in Sources */,
375+
A3BA5F1C1E67ED8200B31B8C /* CYProgressWebViewController.swift in Sources */,
313376
A33E4B3D1D06ABDC001B0AB1 /* CYJSCommonActionRequestUtils.swift in Sources */,
377+
A385A69F1ED138EA0022C2EB /* UIWindow+CYAlertWindow.swift in Sources */,
314378
);
315379
runOnlyForDeploymentPostprocessing = 0;
316380
};

CYUtilProjectSwift/CYUtilProjectSwift/CYUtilProjectSwift/Test/ProgressWebTestViewController.swift

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,18 +12,29 @@ class ProgressWebTestViewController: UIViewController {
1212

1313
var progressWebView: CYProgressWebView?
1414

15+
override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
16+
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
17+
18+
self.extendedLayoutIncludesOpaqueBars = false
19+
self.edgesForExtendedLayout = []
20+
}
21+
22+
required init?(coder aDecoder: NSCoder) {
23+
fatalError("init(coder:) has not been implemented")
24+
}
25+
1526
override func loadView() {
1627
super.loadView()
1728

1829
progressWebView = CYProgressWebView(frame: self.view.bounds)
19-
self.view = progressWebView
30+
self.view.addSubview(progressWebView!)
2031
}
2132

2233
override func viewDidLoad() {
2334
super.viewDidLoad()
2435

2536
// Do any additional setup after loading the view.
26-
_ = progressWebView?.load(urlString: "https://www.xiaoniuapp.com")
37+
_ = progressWebView?.load(urlString: "https://m.xiaoniuapp.com")
2738
}
2839

2940
override func didReceiveMemoryWarning() {

CYUtilProjectSwift/CYUtilProjectSwift/CYUtilProjectSwift/ViewController.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ class ViewController: UITableViewController {
147147
if indexPath.section == 0 {
148148
if indexPath.row == 0 {
149149
// self.present(ProgressWebTestViewController(), animated: true, completion: nil)
150-
self.navigationController?.pushViewController(ProgressWebTestViewController(), animated: true)
150+
self.navigationController?.pushViewController(CYProgressWebViewController(rootUrl: URL(string: "https://m.baidu.com")!), animated: true)
151151
}
152152
}
153153
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
//
2+
// CYAlertWindow.swift
3+
// CYUtilProjectSwift
4+
//
5+
// Created by xn011644 on 21/05/2017.
6+
// Copyright © 2017 Jasper. All rights reserved.
7+
//
8+
9+
import UIKit
10+
11+
extension UIWindow {
12+
13+
func show_cyalert() {
14+
15+
self.backgroundColor = UIColor.clear
16+
self.windowLevel = UIWindowLevelStatusBar + 1
17+
self.isHidden = false
18+
self.makeKeyAndVisible()
19+
UIView.animate(withDuration: 0.3) {
20+
21+
self.backgroundColor = UIColor.black.withAlphaComponent(0.6)
22+
}
23+
}
24+
25+
func dismiss_cyalert() {
26+
27+
UIView.animate(withDuration: 0.3,
28+
animations: {
29+
30+
self.backgroundColor = UIColor.clear
31+
}) { (finished) in
32+
33+
self.resignKey()
34+
self.isHidden = true
35+
}
36+
}
37+
38+
}

CYUtilProjectSwift/CYUtilProjectSwift/CYUtils/CYProgressUtils/CYArcProgressBar.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ class CYArcProgressBar: CYBaseProgressBar {
4545
// compute total Angle
4646
totalAngle = endAngle - calculateStartAngle
4747
if totalAngle < 0 {
48-
totalAngle += 2 * M_PI
48+
totalAngle += 2 * .pi
4949
}
5050
super.init(barWidth: barWidth, frame: frame)
5151
}

CYUtilProjectSwift/CYUtilProjectSwift/CYUtils/CYProgressUtils/CYBaseProgressBar.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ class CYBaseProgressBar: UIView {
132132
func addAnimation() {
133133

134134
let animation = CABasicAnimation(keyPath: "strokeEnd")
135-
animation.fromValue = 0
135+
animation.fromValue = 0.5
136136
animation.toValue = 1
137137
animation.duration = 2.0
138138
completionLayer?.add(animation, forKey: nil)

0 commit comments

Comments
 (0)