QSLGuideController.swift 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. //
  2. // QSLGuideController.swift
  3. // QuickSearchLocation
  4. //
  5. // Created by Destiny on 2024/12/9.
  6. //
  7. import UIKit
  8. import GKCycleScrollView
  9. import Alamofire
  10. class QSLGuideController: QSLBaseController {
  11. // var currentPage
  12. func checkIDFA(){
  13. QSLBaseManager.shared.initIDFA()
  14. }
  15. lazy var cycleScrollView: GKCycleScrollView = {
  16. let cycleScrollView = GKCycleScrollView()
  17. cycleScrollView.dataSource = self
  18. cycleScrollView.delegate = self
  19. cycleScrollView.isAutoScroll = false
  20. cycleScrollView.isInfiniteLoop = false
  21. cycleScrollView.isChangeAlpha = false
  22. cycleScrollView.pageControl = pageControl
  23. return cycleScrollView
  24. }()
  25. lazy var pageControl: GKPageControl = {
  26. let pageControl = GKPageControl()
  27. pageControl.style = .rectangle
  28. pageControl.dotHeight = 4.rpx
  29. pageControl.dotWidth = 20.rpx
  30. pageControl.dotMargin = 4.rpx
  31. pageControl.pageIndicatorTintColor = .hexStringColor(hexString: "#EEEEEE")
  32. pageControl.currentPageIndicatorTintColor = QSLColor.themeMainColor
  33. return pageControl
  34. }()
  35. lazy var nextButton: UIButton = {
  36. let btn = UIButton()
  37. btn.gradientBackgroundColor(color1: .hexStringColor(hexString: "#15CBA1"), color2: .hexStringColor(hexString: "#1FE0BA"), width: 280.rpx, height: 44.rpx, direction: .horizontal)
  38. btn.title("下一步")
  39. btn.mediumFont(16)
  40. btn.textColor(.white)
  41. btn.addRadius(radius: 22.rpx)
  42. btn.addTarget(self, action: #selector(nextBtnAction), for: .touchUpInside)
  43. return btn
  44. }()
  45. override func viewDidLoad() {
  46. super.viewDidLoad()
  47. NetworkReachabilityManager.default?.startListening(onUpdatePerforming: { status in
  48. if(status != .notReachable){
  49. print("checkIDFA")
  50. self.checkIDFA()
  51. NetworkReachabilityManager.default?.stopListening()
  52. }
  53. })
  54. self.view.addSubview(cycleScrollView)
  55. cycleScrollView.snp.makeConstraints { make in
  56. make.left.equalTo(40.rpx)
  57. make.right.equalTo(-40.rpx)
  58. make.height.equalTo(368.rpx)
  59. make.top.equalTo(QSLConst.qsl_kStatusBarFrameH + 72.rpx)
  60. }
  61. self.view.addSubview(pageControl)
  62. pageControl.snp.makeConstraints { make in
  63. make.size.equalTo(CGSize(width: 68.rpx, height: 4.rpx))
  64. make.centerX.equalToSuperview()
  65. make.top.equalTo(cycleScrollView.snp.bottom).offset(17.rpx)
  66. }
  67. self.view.addSubview(nextButton)
  68. nextButton.snp.makeConstraints { make in
  69. make.size.equalTo(CGSize(width: 280.rpx, height: 44.rpx))
  70. make.centerX.equalToSuperview()
  71. make.top.equalTo(pageControl.snp.bottom).offset(50.rpx)
  72. }
  73. cycleScrollView.reloadData()
  74. }
  75. // 点击下一步按钮
  76. @objc func nextBtnAction() {
  77. switch cycleScrollView.currentSelectIndex {
  78. case 0:
  79. QSEventHandle.eventPush(eventName: QSLGravityConst.guide_first_click)
  80. break
  81. case 1:
  82. QSEventHandle.eventPush(eventName: QSLGravityConst.guide_second_click)
  83. break
  84. case 2:
  85. QSEventHandle.eventPush(eventName: QSLGravityConst.guide_third_click)
  86. break
  87. default:
  88. break
  89. }
  90. if cycleScrollView.currentSelectIndex == 2 {
  91. if let sceneDelegate = UIApplication.shared.connectedScenes.first?.delegate as? SceneDelegate {
  92. sceneDelegate.window?.rootViewController = CustomTabBarController()
  93. sceneDelegate.window?.makeKeyAndVisible()
  94. }
  95. } else {
  96. cycleScrollView.scrollToCell(at: cycleScrollView.currentSelectIndex + 1, animated: true)
  97. }
  98. }
  99. }
  100. extension QSLGuideController: GKCycleScrollViewDataSource, GKCycleScrollViewDelegate {
  101. func numberOfCells(in cycleScrollView: GKCycleScrollView!) -> Int {
  102. return 3
  103. }
  104. func cycleScrollView(_ cycleScrollView: GKCycleScrollView!, cellForViewAt index: Int) -> GKCycleScrollViewCell! {
  105. if let cell = cycleScrollView.dequeueReusableCell() {
  106. cell.imageView.image = UIImage(named: "guide_pic_\(index + 1)")
  107. return cell
  108. }
  109. let cell = GKCycleScrollViewCell()
  110. cell.imageView.image = UIImage(named: "guide_pic_\(index + 1)")
  111. return cell
  112. }
  113. func cycleScrollView(_ cycleScrollView: GKCycleScrollView!, didScrollCellTo index: Int) {
  114. switch index {
  115. case 0:
  116. QSEventHandle.eventPush(eventName: QSLGravityConst.guide_first_show)
  117. break
  118. case 1:
  119. QSEventHandle.eventPush(eventName: QSLGravityConst.guide_second_show)
  120. break
  121. case 2:
  122. QSEventHandle.eventPush(eventName: QSLGravityConst.guide_third_show)
  123. break
  124. default:
  125. break
  126. }
  127. }
  128. }