| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284 |
- //
- // QSLFriendAddAlertView.swift
- // QuickSearchLocation
- //
- // Created by mac on 2024/4/12.
- //
- import UIKit
- class QSLFriendAddAlertView: UIView {
-
- var viewController: UIViewController?
-
- var clickClosure: (() -> Void)?
-
- lazy var addBgView: UIView = {
-
- let view = UIView()
- view.backgroundColor = UIColor.hexStringColor(hexString: "#000000", alpha: 0.5)
- view.alpha = 0
-
- let tap = UITapGestureRecognizer(target: self, action: #selector(removeView))
- view.addGestureRecognizer(tap)
- return view
- }()
-
- lazy var addContentView: UIView = {
-
- let view = UIView(frame: CGRect(x: 0, y: 0, width: QSLConst.qsl_kScreenW, height: QSLConst.qsl_kScreenH - 100))
- view.backgroundColor = .white
- view.addCorner(conrners: [.topLeft, .topRight], radius: 20)
- return view
- }()
-
- lazy var addCloseButton: UIButton = {
-
- let button = UIButton(type: .custom)
- button.image(UIImage(named: "public_btn_close_AAA"))
- button.addTarget(self, action: #selector(removeView), for: .touchUpInside)
- return button
- }()
-
- lazy var addBgImageView: UIImageView = {
-
- let imageView = UIImageView()
- imageView.image = UIImage(named: "friends_add_bg")
- return imageView
- }()
-
- lazy var addMainView: UIView = {
-
- let scale = 1080.0 / 860.0
- let topBgHeight = qsl_kScreenW / scale
- let mainViewHeight = qsl_kScreenH - topBgHeight - 50.0
-
- let view = UIView(frame: CGRect(x: 0, y: topBgHeight - 50, width: qsl_kScreenW, height: mainViewHeight))
- view.backgroundColor = .white
-
- let aPath = UIBezierPath()
- aPath.lineWidth = 1.0
- aPath.lineCapStyle = .round
- aPath.lineJoinStyle = .round
-
- aPath.move(to: CGPoint(x: 0, y: 20))
- aPath.addQuadCurve(to: CGPoint(x: qsl_kScreenW, y: 20), controlPoint: CGPoint(x: qsl_kScreenW / 2, y: -20))
- aPath.addLine(to: CGPoint(x: qsl_kScreenW, y: mainViewHeight))
- aPath.addLine(to: CGPoint(x: 0, y: mainViewHeight))
- aPath.addLine(to: CGPoint(x: 0, y: 20))
-
- let maskLayer = CAShapeLayer()
- maskLayer.frame = view.bounds
- maskLayer.path = aPath.cgPath
-
- view.layer.mask = maskLayer
-
- return view
- }()
-
- lazy var addMainTitleLabel: UILabel = {
-
- let label = UILabel()
- label.mediumFont(20)
- label.textColor = QSLColor.textColor_333
- label.text = "添加好友"
- return label
- }()
-
- lazy var addMainSubTitleLabel: UILabel = {
-
- let label = UILabel()
- label.font(13)
- label.textColor = QSLColor.Color_888
- label.text = "查看实时定位,开启轨迹守护"
- return label
- }()
-
- lazy var addMainPhoneView: UIView = {
-
- let view = UIView()
- view.backgroundColor = QSLColor.backGroundColor
- view.addRadius(radius: 6)
- return view
- }()
-
- lazy var addMainPhoneTextField: UITextField = {
-
- let textF = UITextField()
- textF.font = UIFont.textF(16)
- textF.textColor = QSLColor.textColor_333
- textF.keyboardType = .phonePad
- textF.textAlignment = .left
- textF.maxTextNumber = 11
-
- textF.setPlaceholderAttribute(font: UIFont.textF(16), color: QSLColor.textColor_AAA)
- textF.placeholder = "输入手机号码 查看定位"
-
- return textF
- }()
-
- lazy var addMainAddrBookBtn: UIButton = {
-
- let button = UIButton(type: .custom)
- button.font(16)
- button.textColor(QSLColor.textColor_333)
- button.title("通讯录")
- return button
- }()
-
- lazy var lineIcon: UIImageView = {
-
- let _lineIcon = UIImageView()
- _lineIcon.image = UIImage.image(color: UIColor.hexStringColor(hexString: "#AAAAAA", alpha: 0.4), size: CGSize(width: 1, height: 24))
- return _lineIcon
- }()
-
- lazy var addMainSearchBtn: UIButton = {
-
- let button = UIButton.normal()
- button.title("立即添加")
- button.addRadius(radius: 22)
- button.isEnabled = false
- return button
- }()
-
- lazy var addMainTipsLabel: UILabel = {
-
- let label = UILabel()
-
- label.numberOfLines = 0
- label.textAlignment = .center
-
- label.font(12)
- label.textColor = QSLColor.textColor_D1
- label.text = "温馨提示:文本在线配置内容,直接使用添加好友文本配置接口。"
- return label
- }()
-
- class func show(vc: UIViewController, clickClosure: @escaping () -> Void) {
-
- let window = QSLFriendAddAlertView(frame: CGRect(x: 0, y: 0, width: QSLConst.qsl_kScreenW, height: QSLConst.qsl_kScreenH))
- window.viewController = vc
- window.clickClosure = clickClosure
- vc.view.addSubview(window)
- UIView.animate(withDuration: 0.4, delay: 0, usingSpringWithDamping: 0.95, initialSpringVelocity: 0.05) {
- window.addBgView.alpha = 1
- window.addContentView.qsl_y = 100
- }
- }
-
- override init(frame: CGRect) {
- super.init(frame: frame)
- self.setUpUI()
- }
-
- required init?(coder: NSCoder) {
- fatalError("init(coder:) has not been implemented")
- }
-
- // 关闭本view
- @objc func removeView() {
-
- UIView.animate(withDuration: 0.4, delay: 0, usingSpringWithDamping: 0.95, initialSpringVelocity: 0.05) { [weak self] in
- self?.addBgView.alpha = 0
- self?.addContentView.qsl_y = QSLConst.qsl_kScreenH
- } completion: { [weak self] finished in
- self?.removeFromSuperview()
- }
- }
-
- }
- extension QSLFriendAddAlertView {
-
- func setUpUI() {
-
- self.backgroundColor = .clear
-
- addSubview(addBgView)
- addSubview(addContentView)
-
- addContentView.addSubview(addBgImageView)
- addContentView.addSubview(addCloseButton)
- addContentView.addSubview(addMainView)
-
- addMainView.addSubview(addMainTitleLabel)
- addMainView.addSubview(addMainSubTitleLabel)
- addMainView.addSubview(addMainPhoneView)
-
- addMainPhoneView.addSubview(addMainAddrBookBtn)
- addMainPhoneView.addSubview(lineIcon)
- addMainPhoneView.addSubview(addMainPhoneTextField)
-
- addMainView.addSubview(addMainSearchBtn)
- addMainView.addSubview(addMainTipsLabel)
-
- addBgView.snp.makeConstraints { make in
- make.edges.equalTo(0)
- }
-
- addContentView.snp.makeConstraints { make in
- make.top.equalTo(100)
- make.left.right.bottom.equalTo(0)
- }
- addContentView.qsl_y = qsl_kScreenH
-
- let scale = 1080.0 / 860.0
- let topBgHeight = qsl_kScreenW / scale
- addBgImageView.snp.makeConstraints { make in
- make.left.top.right.equalTo(0)
- make.height.equalTo(topBgHeight)
- }
-
- addCloseButton.snp.makeConstraints { make in
- make.size.equalTo(CGSize(width: 24, height: 24))
- make.top.equalTo(16)
- make.right.equalTo(-20)
- }
-
- addMainTitleLabel.snp.makeConstraints { make in
- make.top.equalTo(56)
- make.centerX.equalTo(addMainView.snp.centerX)
- }
-
- addMainSubTitleLabel.snp.makeConstraints { make in
- make.top.equalTo(addMainTitleLabel.snp.bottom).offset(2)
- make.centerX.equalTo(addMainView.snp.centerX)
- }
-
- addMainPhoneView.snp.makeConstraints { make in
- make.left.equalTo(24)
- make.right.equalTo(-24)
- make.height.equalTo(56)
- make.top.equalTo(addMainSubTitleLabel.snp.bottom).offset(20)
- }
-
- addMainAddrBookBtn.snp.makeConstraints { make in
- make.top.bottom.right.equalTo(0)
- make.width.equalTo(72)
- }
-
- lineIcon.snp.makeConstraints { make in
- make.right.equalTo(addMainAddrBookBtn.snp.left)
- make.centerY.equalTo(addMainPhoneView.snp.centerY)
- }
-
- addMainPhoneTextField.snp.makeConstraints { make in
- make.left.equalTo(16)
- make.right.equalTo(lineIcon.qsl_left).offset(-16)
- make.top.bottom.equalTo(0)
- }
-
- addMainSearchBtn.snp.makeConstraints { make in
- make.size.equalTo(CGSize(width: 200, height: 44))
- make.top.equalTo(addMainPhoneView.snp.bottom).offset(36)
- make.centerX.equalTo(snp.centerX)
- }
-
- addMainTipsLabel.snp.makeConstraints { make in
- make.left.equalTo(60)
- make.right.equalTo(-60)
- make.bottom.equalTo(-QSLConst.qsl_kTabbarBottom - 20)
- }
- }
- }
|