From 31f371d2a19f524ba5715019e8422afcdb73950a Mon Sep 17 00:00:00 2001 From: wenlei Date: Sat, 9 Mar 2024 13:40:02 +0800 Subject: [PATCH] add contactView --- .../IndieMusic.xcodeproj/project.pbxproj | 8 +- .../IndieMusic/Application/Navigator.swift | 3 + .../Common/PresentationController.swift | 10 +- IndieMusic/IndieMusic/Configs/Configs.swift | 1 + .../Modules/Player/PlayerView.swift | 2 + .../Setting/ContactViewController.swift | 183 ++++++++++++++++++ .../Setting/ThanksViewController.swift | 5 +- .../Assets.xcassets/Contact/Contents.json | 6 + .../Contact/contact_qr.imageset/Contents.json | 21 ++ .../contact_qr.imageset/contact_qr.png | Bin 0 -> 42644 bytes 10 files changed, 233 insertions(+), 6 deletions(-) create mode 100644 IndieMusic/IndieMusic/Modules/Setting/ContactViewController.swift create mode 100644 IndieMusic/IndieMusic/Resources/Assets.xcassets/Contact/Contents.json create mode 100644 IndieMusic/IndieMusic/Resources/Assets.xcassets/Contact/contact_qr.imageset/Contents.json create mode 100644 IndieMusic/IndieMusic/Resources/Assets.xcassets/Contact/contact_qr.imageset/contact_qr.png diff --git a/IndieMusic/IndieMusic.xcodeproj/project.pbxproj b/IndieMusic/IndieMusic.xcodeproj/project.pbxproj index f2e4244..2d8c8d1 100644 --- a/IndieMusic/IndieMusic.xcodeproj/project.pbxproj +++ b/IndieMusic/IndieMusic.xcodeproj/project.pbxproj @@ -110,6 +110,7 @@ 7773EBF82B8A0A8E0054CFE6 /* RefreshFooter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7773EBF72B8A0A8E0054CFE6 /* RefreshFooter.swift */; }; 7773EBFA2B8B3D4D0054CFE6 /* CircularIndicatorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7773EBF92B8B3D4D0054CFE6 /* CircularIndicatorView.swift */; }; 7773EBFC2B8B7C2C0054CFE6 /* ScrollableNavBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7773EBFB2B8B7C2C0054CFE6 /* ScrollableNavBar.swift */; }; + 77754A7D2B9C0755007534FF /* ContactViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77754A7C2B9C0755007534FF /* ContactViewController.swift */; }; 778638942B4D123D00B00AF9 /* CommentDetailViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 778638932B4D123D00B00AF9 /* CommentDetailViewModel.swift */; }; 778B8A212AF8E36D0034AFD4 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 778B8A202AF8E36D0034AFD4 /* AppDelegate.swift */; }; 778B8A232AF8E36D0034AFD4 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 778B8A222AF8E36D0034AFD4 /* SceneDelegate.swift */; }; @@ -392,6 +393,7 @@ 7773EBF72B8A0A8E0054CFE6 /* RefreshFooter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RefreshFooter.swift; sourceTree = ""; }; 7773EBF92B8B3D4D0054CFE6 /* CircularIndicatorView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CircularIndicatorView.swift; sourceTree = ""; }; 7773EBFB2B8B7C2C0054CFE6 /* ScrollableNavBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScrollableNavBar.swift; sourceTree = ""; }; + 77754A7C2B9C0755007534FF /* ContactViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactViewController.swift; sourceTree = ""; }; 778638932B4D123D00B00AF9 /* CommentDetailViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommentDetailViewModel.swift; sourceTree = ""; }; 778B8A1D2AF8E36D0034AFD4 /* IndieMusic.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = IndieMusic.app; sourceTree = BUILT_PRODUCTS_DIR; }; 778B8A202AF8E36D0034AFD4 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; @@ -1088,6 +1090,7 @@ 77A659DE2B51023100B408C3 /* TestViewController.swift */, 7773EBFB2B8B7C2C0054CFE6 /* ScrollableNavBar.swift */, 770FC4082B95929E0023DE28 /* VersionViewController.swift */, + 77754A7C2B9C0755007534FF /* ContactViewController.swift */, ); path = Setting; sourceTree = ""; @@ -1513,6 +1516,7 @@ 77C9B9C62B4B81890006C83F /* Timing.swift in Sources */, 77C9B9EB2B4BE7E50006C83F /* Comment.swift in Sources */, 778B8A832AF8ECE50034AFD4 /* HomeViewController.swift in Sources */, + 77754A7D2B9C0755007534FF /* ContactViewController.swift in Sources */, 77C9B9CA2B4B90D40006C83F /* PhotoConfirmViewController.swift in Sources */, 77C9C08A2B884017000A277B /* PersonalSongViewController.swift in Sources */, 778B8ABE2AF8ED280034AFD4 /* ViewModel.swift in Sources */, @@ -1896,7 +1900,7 @@ ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES; CLANG_ENABLE_MODULES = YES; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 8; + CURRENT_PROJECT_VERSION = 9; DEVELOPMENT_TEAM = AY569L2R6W; ENABLE_USER_SCRIPT_SANDBOXING = NO; GENERATE_INFOPLIST_FILE = YES; @@ -1937,7 +1941,7 @@ ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES; CLANG_ENABLE_MODULES = YES; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 8; + CURRENT_PROJECT_VERSION = 9; DEVELOPMENT_TEAM = AY569L2R6W; ENABLE_USER_SCRIPT_SANDBOXING = NO; GENERATE_INFOPLIST_FILE = YES; diff --git a/IndieMusic/IndieMusic/Application/Navigator.swift b/IndieMusic/IndieMusic/Application/Navigator.swift index 9c86d5d..87e88a4 100644 --- a/IndieMusic/IndieMusic/Application/Navigator.swift +++ b/IndieMusic/IndieMusic/Application/Navigator.swift @@ -69,6 +69,7 @@ class Navigator { case player(viewModel: PlayerViewModel) case commentableWeb(viewModel: CommentableWebViewModel) case version(viewMode: VersionViewModel) + case contact case alert case test @@ -192,6 +193,8 @@ class Navigator { case .version(let viewModel): let version = VersionViewController.init(viewModel: viewModel, navigator: self) return version + case .contact: + return ContactViewController.init(viewModel: nil, navigator: self) case .alert: return AlertViewController.init() diff --git a/IndieMusic/IndieMusic/Common/PresentationController.swift b/IndieMusic/IndieMusic/Common/PresentationController.swift index 83906ab..5701e60 100644 --- a/IndieMusic/IndieMusic/Common/PresentationController.swift +++ b/IndieMusic/IndieMusic/Common/PresentationController.swift @@ -236,10 +236,14 @@ class CardPresentationController: PresentationController, UIGestureRecognizerDel self?.containerView?.backgroundColor = UIColor.black.withAlphaComponent(0.8) }, completion: nil) - let tapGesture = UITapGestureRecognizer.init(target: self, action: #selector(dismiss)) - tapGesture.delegate = self + + if isTapDismiss { + let tapGesture = UITapGestureRecognizer.init(target: self, action: #selector(dismiss)) + tapGesture.delegate = self - self.containerView?.addGestureRecognizer(tapGesture) + self.containerView?.addGestureRecognizer(tapGesture) + + } } } diff --git a/IndieMusic/IndieMusic/Configs/Configs.swift b/IndieMusic/IndieMusic/Configs/Configs.swift index 33daacb..ed83412 100644 --- a/IndieMusic/IndieMusic/Configs/Configs.swift +++ b/IndieMusic/IndieMusic/Configs/Configs.swift @@ -31,6 +31,7 @@ struct Configs { static let universalLink = "" static let bundleIdentifier = "cn.indie.queyue" static let wechatURL = "https://api.weixin.qq.com" + static let wechatContact = "indier" } diff --git a/IndieMusic/IndieMusic/Modules/Player/PlayerView.swift b/IndieMusic/IndieMusic/Modules/Player/PlayerView.swift index fc6292b..8c88c11 100644 --- a/IndieMusic/IndieMusic/Modules/Player/PlayerView.swift +++ b/IndieMusic/IndieMusic/Modules/Player/PlayerView.swift @@ -895,6 +895,8 @@ class PlayerSlider: UIView { } func formatTimeForDisplay(seconds: TimeInterval) -> String { + guard !seconds.isNaN else { return "00:00"} + let hours = Int(seconds) / 3600 let minutes = Int(seconds) % 3600 / 60 let seconds = Int(seconds) % 60 diff --git a/IndieMusic/IndieMusic/Modules/Setting/ContactViewController.swift b/IndieMusic/IndieMusic/Modules/Setting/ContactViewController.swift new file mode 100644 index 0000000..2badcea --- /dev/null +++ b/IndieMusic/IndieMusic/Modules/Setting/ContactViewController.swift @@ -0,0 +1,183 @@ +// +// ContactViewController.swift +// IndieMusic +// +// Created by WenLei on 2024/3/9. +// + +import UIKit + +class ContactViewController: ViewController { + let contactView: ContactView = { + let contactView = ContactView.init() + + return contactView + }() + + + + + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + } + + override func makeUI() { + view.addSubview(contactView) + } + + override func bindViewModel() { + super.bindViewModel() + + contactView.cancelButton.rx.tap.subscribe { _ in + self.navigator.dismiss(sender: self) + }.disposed(by: rx.disposeBag) + + contactView.confirmButton.rx.tap.subscribe { _ in + self.navigator.dismiss(sender: self) + + UIPasteboard.general.string = Configs.App.wechatContact + + }.disposed(by: rx.disposeBag) + + } + + + override func viewDidLayoutSubviews() { + super.viewDidLayoutSubviews() + + contactView.snp.makeConstraints { make in + make.centerX.equalTo(view) + make.centerY.equalTo(view) + make.left.equalTo(view).offset(46) + make.right.equalTo(view).offset(-46) + } + } +} + +extension ContactViewController: UIViewControllerTransitioningDelegate { + func presentationController(forPresented presented: UIViewController, presenting: UIViewController?, source: UIViewController) -> UIPresentationController? { + + let carePresentationVC = CardPresentationController.init(presentedViewController: presented, presenting: presenting) + carePresentationVC.viewType = .tips(true) + + return carePresentationVC + } +} + + + +class ContactView: UIView { + let titleLabel: UILabel = { + let titleLabel = UILabel.init() + titleLabel.font = UIFont.systemFont(ofSize: 20, weight: .medium) + titleLabel.textColor = .primaryText() + titleLabel.text = "添加微信联系我们" + + return titleLabel + }() + + let tipsLabel: UILabel = { + let tipsLabel = UILabel.init() + tipsLabel.textColor = .tertiaryText() + tipsLabel.font = UIFont.systemFont(ofSize: 12) + tipsLabel.text = "微信号:indier" + + return tipsLabel + }() + + let qrCodeView: UIImageView = { + let qrCodeView = UIImageView.init() + qrCodeView.image = UIImage.init(named: "contact_qr") + + return qrCodeView + }() + + let cancelButton: UIButton = { + let cancelButton = UIButton.init() + cancelButton.titleLabel?.font = UIFont.systemFont(ofSize: 15) + cancelButton.backgroundColor = .init(hex: 0x000000, alpha: 0.05) + cancelButton.layer.cornerRadius = 22 + cancelButton.layer.masksToBounds = true + cancelButton.setTitle("取消", for: .normal) + cancelButton.setTitleColor(.secondaryText(), for: .normal) + + return cancelButton + }() + + let confirmButton: UIButton = { + let confirmButton = UIButton.init() + confirmButton.titleLabel?.font = UIFont.systemFont(ofSize: 15, weight: .medium) + confirmButton.setTitle("复制微信", for: .normal) + confirmButton.setTitleColor(.white, for: .normal) + confirmButton.layer.cornerRadius = 22 + confirmButton.layer.masksToBounds = true + confirmButton.backgroundColor = .primary() + + return confirmButton + }() + + + override init(frame: CGRect) { + super.init(frame: frame) + + makeUI() + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + func makeUI() { + backgroundColor = .white + layer.cornerRadius = 12 + layer.masksToBounds = true + + addSubview(titleLabel) + addSubview(tipsLabel) + addSubview(qrCodeView) + addSubview(cancelButton) + addSubview(confirmButton) + + } + + override func layoutSubviews() { + super.layoutSubviews() + + titleLabel.snp.makeConstraints { make in + make.centerX.equalTo(self) + make.top.equalTo(self).offset(24) + } + + tipsLabel.snp.makeConstraints { make in + make.centerX.equalTo(self) + make.top.equalTo(titleLabel.snp.bottom).offset(3) + } + + qrCodeView.snp.makeConstraints { make in + make.top.equalTo(tipsLabel.snp.bottom).offset(9) + make.size.equalTo(CGSize.init(width: 142, height: 142)) + make.centerX.equalTo(self) + } + + cancelButton.snp.makeConstraints { make in + make.left.equalTo(self).offset(18) + make.right.equalTo(self.snp.centerX).offset(-6) + make.height.equalTo(44) + make.top.equalTo(qrCodeView.snp.bottom).offset(28) + make.bottom.equalTo(self).offset(-24) + } + + confirmButton.snp.makeConstraints { make in + make.right.equalTo(self).offset(-18) + make.top.equalTo(qrCodeView.snp.bottom).offset(28) + make.height.equalTo(44) + make.left.equalTo(self.snp.centerX).offset(6) + make.bottom.equalTo(self).offset(-24) + + } + } + + +} diff --git a/IndieMusic/IndieMusic/Modules/Setting/ThanksViewController.swift b/IndieMusic/IndieMusic/Modules/Setting/ThanksViewController.swift index 8046a11..558dc8c 100644 --- a/IndieMusic/IndieMusic/Modules/Setting/ThanksViewController.swift +++ b/IndieMusic/IndieMusic/Modules/Setting/ThanksViewController.swift @@ -111,7 +111,10 @@ class ThanksViewController: ViewController, UIScrollViewDelegate { }.disposed(by: rx.disposeBag) - + thanksBottomView.button.rx.tap.subscribe { [weak self] _ in + self?.navigator.show(segue: .contact, sender: self, transition: .navigationPresent(type: .tips(true))) + }.disposed(by: rx.disposeBag) + } diff --git a/IndieMusic/IndieMusic/Resources/Assets.xcassets/Contact/Contents.json b/IndieMusic/IndieMusic/Resources/Assets.xcassets/Contact/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/IndieMusic/IndieMusic/Resources/Assets.xcassets/Contact/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/IndieMusic/IndieMusic/Resources/Assets.xcassets/Contact/contact_qr.imageset/Contents.json b/IndieMusic/IndieMusic/Resources/Assets.xcassets/Contact/contact_qr.imageset/Contents.json new file mode 100644 index 0000000..bcd6883 --- /dev/null +++ b/IndieMusic/IndieMusic/Resources/Assets.xcassets/Contact/contact_qr.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "contact_qr.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/IndieMusic/IndieMusic/Resources/Assets.xcassets/Contact/contact_qr.imageset/contact_qr.png b/IndieMusic/IndieMusic/Resources/Assets.xcassets/Contact/contact_qr.imageset/contact_qr.png new file mode 100644 index 0000000000000000000000000000000000000000..30bee15a7e7e4cf88e617a20a84df72ee68922ee GIT binary patch literal 42644 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