Commit c20e4191082cf32ec0044112b5057fc685ea463f

Authored by niudaojian
1 parent 3187f91b

首页导航栏

metaCode/Classes/Common/Base/CNLiveBaseTabBarViewController.swift
@@ -8,22 +8,44 @@ @@ -8,22 +8,44 @@
8 import Foundation 8 import Foundation
9 import UIKit 9 import UIKit
10 10
11 -class CNLiveBaseTabBarViewController:UITabBarController 11 +class CNTabBar:UITabBar{
  12 +
  13 + override var frame: CGRect {
  14 +
  15 + willSet
  16 + {
  17 +
  18 + }
  19 + //我们需要在age属性发生变化后,更新一下nickName这个属性
  20 + didSet
  21 + {
  22 + print("frame = ", frame)
  23 + print("完成")
  24 + }
  25 + }
  26 +}
  27 +
  28 +class CNLiveBaseTabBarViewController: UITabBarController
12 { 29 {
13 30
14 override func viewDidLoad() { 31 override func viewDidLoad() {
15 super.viewDidLoad() 32 super.viewDidLoad()
  33 + self.setValue(CNTabBar.init(), forKey: "tabBar")
  34 +
  35 + self.setUpTabBar()
  36 + self.setupBackgroup()
  37 +
16 } 38 }
17 39
18 override func viewWillAppear(_ animated: Bool) { 40 override func viewWillAppear(_ animated: Bool) {
19 super.viewWillAppear(animated) 41 super.viewWillAppear(animated)
20 - self.setUpTabBar()  
21 - self.setupBackgroup() 42 +
22 43
23 } 44 }
24 override func viewDidAppear(_ animated: Bool) { 45 override func viewDidAppear(_ animated: Bool) {
25 super.viewDidAppear(animated) 46 super.viewDidAppear(animated)
26 47
  48 +
27 } 49 }
28 // MARK: - 控制器的信息 50 // MARK: - 控制器的信息
29 func setUpTabBar() { 51 func setUpTabBar() {
metaCode/Classes/Extensions/UITabBar+CNBadge.swift
@@ -8,208 +8,208 @@ @@ -8,208 +8,208 @@
8 import Foundation 8 import Foundation
9 import UIKit 9 import UIKit
10 10
11 -extension UITabBar {  
12 - /**  
13 - tabbar tag  
14 - */  
15 - private var badgeTag:Int! {  
16 - get{  
17 - return 1000  
18 - }  
19 - set{  
20 -  
21 - }  
22 - }  
23 -  
24 - /**  
25 - 运行时对应的key值  
26 - */  
27 - private struct AssociatedKeys {  
28 - static var kBadgeSize:String! = "kBadgeSize"  
29 - static var kBadgeColor:String! = "kBadgeColor"  
30 - static var kBadgeImage:String! = "kBadgeImage"  
31 - static var kBadgePoint:String! = "kBadgePoint"  
32 - static var kBadgeValue:String! = "kBadgeValue"  
33 - }  
34 -  
35 -  
36 - // 小红点size  
37 - public var badgeSize:CGSize! {  
38 - get{  
39 - return objc_getAssociatedObject(self, &AssociatedKeys.kBadgeSize) as? CGSize  
40 - }  
41 - set{  
42 - objc_setAssociatedObject(self, &AssociatedKeys.kBadgeSize, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)  
43 - }  
44 - }  
45 -  
46 - // 小红点图片  
47 - public var badgeImage:UIImage! {  
48 - get{  
49 - return objc_getAssociatedObject(self, &AssociatedKeys.kBadgeImage) as? UIImage  
50 - }  
51 - set{  
52 - objc_setAssociatedObject(self, &AssociatedKeys.kBadgeImage, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)  
53 - }  
54 - }  
55 -  
56 - // 小红点颜色  
57 - public var badgeColor:UIColor! {  
58 - get{  
59 - return objc_getAssociatedObject(self, &AssociatedKeys.kBadgeColor) as? UIColor  
60 - }  
61 - set{  
62 - objc_setAssociatedObject(self, &AssociatedKeys.kBadgeColor, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)  
63 - }  
64 - }  
65 -  
66 - // 小红点的x、y值  
67 - public var badgePoint:CGPoint! {  
68 - get{  
69 - return objc_getAssociatedObject(self, &AssociatedKeys.kBadgePoint) as? CGPoint  
70 - }  
71 - set{  
72 - objc_setAssociatedObject(self, &AssociatedKeys.kBadgePoint, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)  
73 - }  
74 - }  
75 -  
76 - // 小红点的数字  
77 - public var badgeValue:String! {  
78 - get{  
79 - return objc_getAssociatedObject(self, &AssociatedKeys.kBadgeValue) as? String  
80 - }  
81 - set{  
82 - objc_setAssociatedObject(self, &AssociatedKeys.kBadgeValue, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)  
83 - }  
84 - }  
85 -  
86 - // MARK:-显示小红点  
87 - public func showBadgeOnItemIndex(index:Int){  
88 - // 移除  
89 - self.removeRedPointOnIndex(index: index, animation: false)  
90 -  
91 - // 防止是空的  
92 - if self.badgeColor == nil {  
93 - self.badgeColor = UIColor()  
94 - self.badgeColor = UIColor.red  
95 - }  
96 -  
97 - if self.badgePoint == nil {  
98 - self.badgePoint = CGPoint()  
99 - self.badgePoint = CGPoint.zero  
100 - }  
101 -  
102 - if self.badgeSize == nil {  
103 - self.badgeSize = CGSize.zero  
104 - }  
105 -  
106 - if self.badgeImage == nil {  
107 - self.badgeImage = UIImage()  
108 - }  
109 -  
110 - if self.badgeValue == nil {  
111 - self.badgeValue = String()  
112 - }  
113 -  
114 - // 小红点背景默认值大小设置  
115 - if __CGSizeEqualToSize(self.badgeSize, CGSize.zero) {  
116 - self.badgeSize = CGSize(width: 12, height: 12)  
117 - }  
118 -  
119 -  
120 - let badgeView = UIView()  
121 - badgeView.backgroundColor = self.badgeColor  
122 - badgeView.layer.cornerRadius = self.badgeSize.width / 2  
123 - badgeView.tag = badgeTag + 1  
124 -  
125 - let barButtonView = self.getBarButttonViewWithIndex(index: index)  
126 - //(图片的imageView)  
127 - var iconView = UIView()  
128 - for swappableImageView in barButtonView.subviews {  
129 -  
130 - if swappableImageView.isKind(of: UIImageView.self) {  
131 - iconView = swappableImageView  
132 - break  
133 - }  
134 -  
135 - }  
136 -  
137 - // 小红点背景默认值Point设置  
138 - if __CGPointEqualToPoint(self.badgePoint, CGPoint.zero) {  
139 - let iconViewSize = iconView.frame.size  
140 - badgeView.frame = CGRect(x: iconViewSize.width - self.badgeSize.width / 2, y: -self.badgeSize.width / 2, width: self.badgeSize.width, height: self.badgeSize.height)  
141 - }else{  
142 - badgeView.frame = CGRect(x: self.badgePoint.x, y: self.badgePoint.y, width: self.badgeSize.width, height: self.badgeSize.height)  
143 - }  
144 -  
145 - // 添加图片到小红点上  
146 - let imageview = UIImageView(frame: badgeView.bounds)  
147 - imageview.image = self.badgeImage  
148 - if self.badgeImage != nil {  
149 - self.backgroundColor = UIColor.red  
150 - }  
151 - badgeView.addSubview(imageview)  
152 -  
153 - if self.badgeValue != nil {  
154 - let badgeLabel = UILabel(frame: badgeView.bounds)  
155 - badgeLabel.text = self.badgeValue  
156 - badgeLabel.textAlignment = .center  
157 - badgeLabel.font = UIFont.systemFont(ofSize: 13)  
158 - badgeLabel.textColor = UIColor.white  
159 - badgeView.addSubview(badgeLabel)  
160 - }  
161 -  
162 - iconView.addSubview(badgeView)  
163 - }  
164 -  
165 - // MARK:-隐藏小红点  
166 - public func hiddenRedPointOnIndex(index:Int, animation:Bool){  
167 - self.removeRedPointOnIndex(index: index, animation: animation)  
168 - }  
169 -  
170 - private func removeRedPointOnIndex(index:Int, animation:Bool) {  
171 - let barButtonView = self.getBarButttonViewWithIndex(index: index)  
172 -  
173 - for swapView in barButtonView.subviews {  
174 -  
175 - if swapView.isKind(of: UIImageView.self) {  
176 -  
177 - for view1 in swapView.subviews {  
178 -  
179 - if view1.tag == (badgeTag + 1) {  
180 -  
181 - if animation {  
182 - UIView.animate(withDuration: 0.2, animations: {  
183 - view1.transform = CGAffineTransform(translationX: 2, y: 2)  
184 - view1.alpha = 0  
185 - }) { (finished) in  
186 - view1.removeFromSuperview()  
187 - }  
188 - }else{  
189 - view1.removeFromSuperview()  
190 - }  
191 -  
192 - }  
193 -  
194 - }  
195 -  
196 - }  
197 -  
198 - }  
199 -  
200 - }  
201 -  
202 - // 获取barButtonView  
203 - private func getBarButttonViewWithIndex(index:Int) -> UIView {  
204 -  
205 - if let itemss = self.items {  
206 - let item = itemss[index]  
207 - let barButtonView = item.value(forKey: "view")  
208 - return barButtonView as! UIView  
209 - }  
210 -  
211 - let vw = UIView()  
212 - return vw  
213 - }  
214 -  
215 -} 11 +//extension UITabBar {
  12 +// /**
  13 +// tabbar tag
  14 +// */
  15 +// private var badgeTag:Int! {
  16 +// get{
  17 +// return 1000
  18 +// }
  19 +// set{
  20 +//
  21 +// }
  22 +// }
  23 +//
  24 +// /**
  25 +// 运行时对应的key值
  26 +// */
  27 +// private struct AssociatedKeys {
  28 +// static var kBadgeSize:String! = "kBadgeSize"
  29 +// static var kBadgeColor:String! = "kBadgeColor"
  30 +// static var kBadgeImage:String! = "kBadgeImage"
  31 +// static var kBadgePoint:String! = "kBadgePoint"
  32 +// static var kBadgeValue:String! = "kBadgeValue"
  33 +// }
  34 +//
  35 +//
  36 +// // 小红点size
  37 +// public var badgeSize:CGSize! {
  38 +// get{
  39 +// return objc_getAssociatedObject(self, &AssociatedKeys.kBadgeSize) as? CGSize
  40 +// }
  41 +// set{
  42 +// objc_setAssociatedObject(self, &AssociatedKeys.kBadgeSize, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
  43 +// }
  44 +// }
  45 +//
  46 +// // 小红点图片
  47 +// public var badgeImage:UIImage! {
  48 +// get{
  49 +// return objc_getAssociatedObject(self, &AssociatedKeys.kBadgeImage) as? UIImage
  50 +// }
  51 +// set{
  52 +// objc_setAssociatedObject(self, &AssociatedKeys.kBadgeImage, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
  53 +// }
  54 +// }
  55 +//
  56 +// // 小红点颜色
  57 +// public var badgeColor:UIColor! {
  58 +// get{
  59 +// return objc_getAssociatedObject(self, &AssociatedKeys.kBadgeColor) as? UIColor
  60 +// }
  61 +// set{
  62 +// objc_setAssociatedObject(self, &AssociatedKeys.kBadgeColor, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
  63 +// }
  64 +// }
  65 +//
  66 +// // 小红点的x、y值
  67 +// public var badgePoint:CGPoint! {
  68 +// get{
  69 +// return objc_getAssociatedObject(self, &AssociatedKeys.kBadgePoint) as? CGPoint
  70 +// }
  71 +// set{
  72 +// objc_setAssociatedObject(self, &AssociatedKeys.kBadgePoint, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
  73 +// }
  74 +// }
  75 +//
  76 +// // 小红点的数字
  77 +// public var badgeValue:String! {
  78 +// get{
  79 +// return objc_getAssociatedObject(self, &AssociatedKeys.kBadgeValue) as? String
  80 +// }
  81 +// set{
  82 +// objc_setAssociatedObject(self, &AssociatedKeys.kBadgeValue, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
  83 +// }
  84 +// }
  85 +//
  86 +// // MARK:-显示小红点
  87 +// public func showBadgeOnItemIndex(index:Int){
  88 +// // 移除
  89 +// self.removeRedPointOnIndex(index: index, animation: false)
  90 +//
  91 +// // 防止是空的
  92 +// if self.badgeColor == nil {
  93 +// self.badgeColor = UIColor()
  94 +// self.badgeColor = UIColor.red
  95 +// }
  96 +//
  97 +// if self.badgePoint == nil {
  98 +// self.badgePoint = CGPoint()
  99 +// self.badgePoint = CGPoint.zero
  100 +// }
  101 +//
  102 +// if self.badgeSize == nil {
  103 +// self.badgeSize = CGSize.zero
  104 +// }
  105 +//
  106 +// if self.badgeImage == nil {
  107 +// self.badgeImage = UIImage()
  108 +// }
  109 +//
  110 +// if self.badgeValue == nil {
  111 +// self.badgeValue = String()
  112 +// }
  113 +//
  114 +// // 小红点背景默认值大小设置
  115 +// if __CGSizeEqualToSize(self.badgeSize, CGSize.zero) {
  116 +// self.badgeSize = CGSize(width: 12, height: 12)
  117 +// }
  118 +//
  119 +//
  120 +// let badgeView = UIView()
  121 +// badgeView.backgroundColor = self.badgeColor
  122 +// badgeView.layer.cornerRadius = self.badgeSize.width / 2
  123 +// badgeView.tag = badgeTag + 1
  124 +//
  125 +// let barButtonView = self.getBarButttonViewWithIndex(index: index)
  126 +// //(图片的imageView)
  127 +// var iconView = UIView()
  128 +// for swappableImageView in barButtonView.subviews {
  129 +//
  130 +// if swappableImageView.isKind(of: UIImageView.self) {
  131 +// iconView = swappableImageView
  132 +// break
  133 +// }
  134 +//
  135 +// }
  136 +//
  137 +// // 小红点背景默认值Point设置
  138 +// if __CGPointEqualToPoint(self.badgePoint, CGPoint.zero) {
  139 +// let iconViewSize = iconView.frame.size
  140 +// badgeView.frame = CGRect(x: iconViewSize.width - self.badgeSize.width / 2, y: -self.badgeSize.width / 2, width: self.badgeSize.width, height: self.badgeSize.height)
  141 +// }else{
  142 +// badgeView.frame = CGRect(x: self.badgePoint.x, y: self.badgePoint.y, width: self.badgeSize.width, height: self.badgeSize.height)
  143 +// }
  144 +//
  145 +// // 添加图片到小红点上
  146 +// let imageview = UIImageView(frame: badgeView.bounds)
  147 +// imageview.image = self.badgeImage
  148 +// if self.badgeImage != nil {
  149 +// self.backgroundColor = UIColor.red
  150 +// }
  151 +// badgeView.addSubview(imageview)
  152 +//
  153 +// if self.badgeValue != nil {
  154 +// let badgeLabel = UILabel(frame: badgeView.bounds)
  155 +// badgeLabel.text = self.badgeValue
  156 +// badgeLabel.textAlignment = .center
  157 +// badgeLabel.font = UIFont.systemFont(ofSize: 13)
  158 +// badgeLabel.textColor = UIColor.white
  159 +// badgeView.addSubview(badgeLabel)
  160 +// }
  161 +//
  162 +// iconView.addSubview(badgeView)
  163 +// }
  164 +//
  165 +// // MARK:-隐藏小红点
  166 +// public func hiddenRedPointOnIndex(index:Int, animation:Bool){
  167 +// self.removeRedPointOnIndex(index: index, animation: animation)
  168 +// }
  169 +//
  170 +// private func removeRedPointOnIndex(index:Int, animation:Bool) {
  171 +// let barButtonView = self.getBarButttonViewWithIndex(index: index)
  172 +//
  173 +// for swapView in barButtonView.subviews {
  174 +//
  175 +// if swapView.isKind(of: UIImageView.self) {
  176 +//
  177 +// for view1 in swapView.subviews {
  178 +//
  179 +// if view1.tag == (badgeTag + 1) {
  180 +//
  181 +// if animation {
  182 +// UIView.animate(withDuration: 0.2, animations: {
  183 +// view1.transform = CGAffineTransform(translationX: 2, y: 2)
  184 +// view1.alpha = 0
  185 +// }) { (finished) in
  186 +// view1.removeFromSuperview()
  187 +// }
  188 +// }else{
  189 +// view1.removeFromSuperview()
  190 +// }
  191 +//
  192 +// }
  193 +//
  194 +// }
  195 +//
  196 +// }
  197 +//
  198 +// }
  199 +//
  200 +// }
  201 +//
  202 +// // 获取barButtonView
  203 +// private func getBarButttonViewWithIndex(index:Int) -> UIView {
  204 +//
  205 +// if let itemss = self.items {
  206 +// let item = itemss[index]
  207 +// let barButtonView = item.value(forKey: "view")
  208 +// return barButtonView as! UIView
  209 +// }
  210 +//
  211 +// let vw = UIView()
  212 +// return vw
  213 +// }
  214 +//
  215 +//}
metaCode/Classes/Main/HomePage/Controller/CNMetaCodeHomePageController.swift
@@ -14,6 +14,8 @@ let Height: CGFloat = UIScreen.main.bounds.size.height @@ -14,6 +14,8 @@ let Height: CGFloat = UIScreen.main.bounds.size.height
14 14
15 class CNMetaCodeHomePageController:CNLiveBaseViewController, NewPagedFlowViewDelegate, NewPagedFlowViewDataSource, CNCustomIndexViewDelegate{ 15 class CNMetaCodeHomePageController:CNLiveBaseViewController, NewPagedFlowViewDelegate, NewPagedFlowViewDataSource, CNCustomIndexViewDelegate{
16 16
  17 +
  18 +
17 private var tabBarY:CGFloat = 0.0 19 private var tabBarY:CGFloat = 0.0
18 20
19 // MARK: - 懒加载 21 // MARK: - 懒加载
@@ -48,19 +50,31 @@ class CNMetaCodeHomePageController:CNLiveBaseViewController, NewPagedFlowViewDel @@ -48,19 +50,31 @@ class CNMetaCodeHomePageController:CNLiveBaseViewController, NewPagedFlowViewDel
48 50
49 self.tabBarY = (self.tabBarController?.tabBar.top)! 51 self.tabBarY = (self.tabBarController?.tabBar.top)!
50 52
51 - self.view.backgroundColor = KVCBackgroupColor  
52 53
53 for i in (0..<2) { 54 for i in (0..<2) {
54 self.dataArray.add("122") 55 self.dataArray.add("122")
55 } 56 }
56 57
57 self.setupUI() 58 self.setupUI()
  59 +
  60 +// self.tabBarController?.tabBar.top = self.tabBarY + KSreenHeight
  61 +
  62 + }
  63 + override func viewWillAppear(_ animated: Bool) {
  64 + super.viewWillAppear(animated)
  65 + }
  66 + override func viewDidAppear(_ animated: Bool) {
  67 + super.viewDidAppear(animated)
  68 + self.view.height = KSreenHeight
  69 +
  70 +
58 } 71 }
59 -  
60 // MARK: - 添加UI 72 // MARK: - 添加UI
61 func setupUI(){ 73 func setupUI(){
  74 + self.view.backgroundColor = KVCBackgroupColor
62 self.view.addSubview(self.pageFlowView) 75 self.view.addSubview(self.pageFlowView)
63 self.pageFlowView.reloadData() 76 self.pageFlowView.reloadData()
  77 +
64 } 78 }
65 79
66 // MARK: - NewPagedFlowView代理 80 // MARK: - NewPagedFlowView代理
@@ -89,9 +103,22 @@ class CNMetaCodeHomePageController:CNLiveBaseViewController, NewPagedFlowViewDel @@ -89,9 +103,22 @@ class CNMetaCodeHomePageController:CNLiveBaseViewController, NewPagedFlowViewDel
89 } 103 }
90 104
91 //MARK: - CNCustomIndexView 代理方法 105 //MARK: - CNCustomIndexView 代理方法
  106 + func customIndexViewWillBeiginScroll(scrollView: UIScrollView) {
  107 + self.view.height = KSreenHeight
  108 + }
92 func customIndexViewDidScroll(scrollView: UIScrollView) { 109 func customIndexViewDidScroll(scrollView: UIScrollView) {
93 let fabsOffset: CGFloat = abs(scrollView.contentOffset.y - KSreenHeight) 110 let fabsOffset: CGFloat = abs(scrollView.contentOffset.y - KSreenHeight)
94 self.tabBarController?.tabBar.top = self.tabBarY + fabsOffset 111 self.tabBarController?.tabBar.top = self.tabBarY + fabsOffset
  112 +// print("view 的frame ",self.view.frame)
  113 +
  114 +
  115 + }
  116 +
  117 +
  118 + func customIndexViewDidEndScroll(scrollView: UIScrollView) {
  119 + if scrollView.contentOffset.y == KSreenHeight {
  120 + self.view.height = self.tabBarY
  121 + }
95 } 122 }
96 123
97 } 124 }
metaCode/Classes/Main/HomePage/View/CNCustomIndexView.swift
@@ -7,13 +7,70 @@ @@ -7,13 +7,70 @@
7 7
8 import Foundation 8 import Foundation
9 9
  10 +typealias closeBlock = ()->Void;
  11 +
  12 +class CNCustomIndexTopView : UIView{
  13 + //关闭按钮事件回调
  14 + var closeAction: closeBlock?
  15 +
  16 + //MARK: - 懒加载
  17 + ///标题
  18 + lazy var titleLabel: UILabel = {
  19 + let titleLabel = UILabel.init(frame: CGRectMake(10, 0, 75, 35))
  20 + titleLabel.bottom = self.bottom - 5
  21 + titleLabel.textColor = .white
  22 + titleLabel.font = UIFont.systemFont(ofSize: 24, weight: .semibold)
  23 + return titleLabel
  24 + }()
  25 + ///关闭按钮
  26 + lazy var closeBtn: UIButton = {
  27 + let closeBtn = UIButton(type: .custom)
  28 + closeBtn.frame = CGRect(x: self.width - 30, y: 0, width: 30, height: 30)
  29 + closeBtn.centerY = self.titleLabel.centerY
  30 + closeBtn.setImage(UIImage(named: "homePage_close_icon"), for: .normal)
  31 + closeBtn.addTarget(self, action: #selector(closeBtnAction), for: .touchUpInside)
  32 + return closeBtn
  33 + }()
  34 + //MARK: - 初始化
  35 + override init(frame: CGRect) {
  36 + super.init(frame: frame)
  37 + self.initUI()
  38 + }
  39 +
  40 + required init?(coder: NSCoder) {
  41 + fatalError("init(coder:) has not been implemented")
  42 + }
  43 +
  44 + func initUI(){
  45 + self.addSubview(self.titleLabel)
  46 + self.addSubview(self.closeBtn)
  47 + }
  48 +
  49 + //MARK: - 公开方法
  50 + public func setTitleString(title:String)->Void{
  51 + self.titleLabel.text = title
  52 + }
  53 +
  54 + //MARK: - 事件
  55 + @objc func closeBtnAction(){
  56 + closeAction?()
  57 + }
  58 +}
  59 +
10 60
11 protocol CNCustomIndexViewDelegate:NSObjectProtocol{ 61 protocol CNCustomIndexViewDelegate:NSObjectProtocol{
12 - ///当前scrollView 发送滚动 62 + /// 当前scrollView 将要开始滚动
  63 + func customIndexViewWillBeiginScroll(scrollView :UIScrollView);
  64 + ///当前scrollView 滚动中
13 func customIndexViewDidScroll(scrollView :UIScrollView); 65 func customIndexViewDidScroll(scrollView :UIScrollView);
  66 + ///当前scrollView 已经结束滚动
  67 + func customIndexViewDidEndScroll(scrollView :UIScrollView);
  68 +
14 } 69 }
15 70
16 class CNCustomIndexView:PGIndexBannerSubiew, UIScrollViewDelegate, WJColorChangeDelegate{ 71 class CNCustomIndexView:PGIndexBannerSubiew, UIScrollViewDelegate, WJColorChangeDelegate{
  72 +
  73 +
17 74
18 var colorChange: WJColorChange! 75 var colorChange: WJColorChange!
19 76
@@ -89,14 +146,14 @@ class CNCustomIndexView:PGIndexBannerSubiew, UIScrollViewDelegate, WJColorChange @@ -89,14 +146,14 @@ class CNCustomIndexView:PGIndexBannerSubiew, UIScrollViewDelegate, WJColorChange
89 return payMoneyCodeView 146 return payMoneyCodeView
90 }() 147 }()
91 148
92 - ///底部付钱提前view 149 + ///上滑付钱提醒view
93 lazy var bottomPayMoneyRemindView: CNBottomPayMoneyRemindView = { 150 lazy var bottomPayMoneyRemindView: CNBottomPayMoneyRemindView = {
94 let W: CGFloat = UIScreen.main.bounds.width-100 151 let W: CGFloat = UIScreen.main.bounds.width-100
95 let bottomView = CNBottomPayMoneyRemindView.init(frame: CGRectMake(25, self.baseScrollView.height*2, W,W/2)) 152 let bottomView = CNBottomPayMoneyRemindView.init(frame: CGRectMake(25, self.baseScrollView.height*2, W,W/2))
96 bottomView.backgroundColor = UIColor.clear 153 bottomView.backgroundColor = UIColor.clear
97 return bottomView 154 return bottomView
98 }() 155 }()
99 - /// 顶部收钱提前view 156 + /// 下滑收钱提醒view
100 lazy var topCollectMoneyRemindView:CNTopCollectMoneyRemindView = { 157 lazy var topCollectMoneyRemindView:CNTopCollectMoneyRemindView = {
101 let W: CGFloat = UIScreen.main.bounds.width-100 158 let W: CGFloat = UIScreen.main.bounds.width-100
102 let topView = CNTopCollectMoneyRemindView.init(frame: CGRectMake(25, self.baseScrollView.height-W/2, W,W/2)) 159 let topView = CNTopCollectMoneyRemindView.init(frame: CGRectMake(25, self.baseScrollView.height-W/2, W,W/2))
@@ -104,6 +161,15 @@ class CNCustomIndexView:PGIndexBannerSubiew, UIScrollViewDelegate, WJColorChange @@ -104,6 +161,15 @@ class CNCustomIndexView:PGIndexBannerSubiew, UIScrollViewDelegate, WJColorChange
104 return topView 161 return topView
105 }() 162 }()
106 163
  164 + /// 顶部自定义导航
  165 + lazy var topNavView: CNCustomIndexTopView = {
  166 + let topNavView = CNCustomIndexTopView.init(frame: CGRect(x: 0, y: 0, width: self.width, height: KNavigationHeight))
  167 + topNavView.closeAction = {
  168 + print("点击了关闭按钮")
  169 + }
  170 + return topNavView
  171 + }()
  172 +
107 // MARK: - 初始化方法 173 // MARK: - 初始化方法
108 override init(frame: CGRect) { 174 override init(frame: CGRect) {
109 super.init(frame: frame) 175 super.init(frame: frame)
@@ -116,9 +182,11 @@ class CNCustomIndexView:PGIndexBannerSubiew, UIScrollViewDelegate, WJColorChange @@ -116,9 +182,11 @@ class CNCustomIndexView:PGIndexBannerSubiew, UIScrollViewDelegate, WJColorChange
116 182
117 // MARK: - 添加UI 183 // MARK: - 添加UI
118 func initUI(){ 184 func initUI(){
119 - self.addSubview(self.baseScrollView)  
120 - self.baseScrollView.addSubview(self.collectMoneyCodeView) 185 + self.addSubview(self.baseScrollView)
  186 + self.addSubview(self.topNavView)
  187 + self.topNavView.setTitleString(title: "志愿者")
121 188
  189 + self.baseScrollView.addSubview(self.collectMoneyCodeView)
122 self.baseScrollView.addSubview(self.mainView) 190 self.baseScrollView.addSubview(self.mainView)
123 self.baseScrollView.addSubview(self.payMoneyCodeView) 191 self.baseScrollView.addSubview(self.payMoneyCodeView)
124 self.baseScrollView.addSubview(self.bottomPayMoneyRemindView) 192 self.baseScrollView.addSubview(self.bottomPayMoneyRemindView)
@@ -148,6 +216,11 @@ class CNCustomIndexView:PGIndexBannerSubiew, UIScrollViewDelegate, WJColorChange @@ -148,6 +216,11 @@ class CNCustomIndexView:PGIndexBannerSubiew, UIScrollViewDelegate, WJColorChange
148 } 216 }
149 217
150 // MARK: - WJColorChange代理 218 // MARK: - WJColorChange代理
  219 + ///将要开始拖拽滚动
  220 + func wjColorScrollViewWillBeginDragging(_ scrollView: UIScrollView!) {
  221 + self.delegate?.customIndexViewWillBeiginScroll(scrollView: scrollView)
  222 + }
  223 +
151 ///WJColorChange 代理方法 滚动时候回调 传出当前的滚动视图 224 ///WJColorChange 代理方法 滚动时候回调 传出当前的滚动视图
152 func wjColorScrollViewScroll(_ scrollView: UIScrollView!) { 225 func wjColorScrollViewScroll(_ scrollView: UIScrollView!) {
153 226
@@ -218,6 +291,15 @@ class CNCustomIndexView:PGIndexBannerSubiew, UIScrollViewDelegate, WJColorChange @@ -218,6 +291,15 @@ class CNCustomIndexView:PGIndexBannerSubiew, UIScrollViewDelegate, WJColorChange
218 // self.mainView.scaledView(scale: scale) 291 // self.mainView.scaledView(scale: scale)
219 // } 292 // }
220 293
  294 + /**隐藏顶部导航**/
  295 + let topNavViewAlpha: CGFloat = 1.0 - (self.baseScrollView.height * 2 - currentOffset)/self.baseScrollView.height
  296 + if(topNavViewAlpha > 0){
  297 + self.topNavView.alpha = topNavViewAlpha/2
  298 + }
  299 + else{
  300 + self.topNavView.alpha = 0
  301 + }
  302 +
221 303
222 delegate?.customIndexViewDidScroll(scrollView: self.baseScrollView) 304 delegate?.customIndexViewDidScroll(scrollView: self.baseScrollView)
223 305
@@ -240,6 +322,7 @@ class CNCustomIndexView:PGIndexBannerSubiew, UIScrollViewDelegate, WJColorChange @@ -240,6 +322,7 @@ class CNCustomIndexView:PGIndexBannerSubiew, UIScrollViewDelegate, WJColorChange
240 self.superScrollView?.isScrollEnabled = false 322 self.superScrollView?.isScrollEnabled = false
241 } 323 }
242 324
  325 + self.delegate?.customIndexViewDidEndScroll(scrollView: scrollView)
243 } 326 }
244 327
245 } 328 }
metaCode/Classes/Main/HomePage/View/CNMainView.swift
@@ -105,7 +105,7 @@ class CNBackMainView : UIView{ @@ -105,7 +105,7 @@ class CNBackMainView : UIView{
105 bottomBackBtn.setTitleColor(UIColor("#333333"), for: .normal) 105 bottomBackBtn.setTitleColor(UIColor("#333333"), for: .normal)
106 bottomBackBtn.setImage(UIImage(named: "homePage_backBtn_icon"), for: .normal) 106 bottomBackBtn.setImage(UIImage(named: "homePage_backBtn_icon"), for: .normal)
107 bottomBackBtn.imageEdgeInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 8) 107 bottomBackBtn.imageEdgeInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 8)
108 - bottomBackBtn.titleLabel?.font = UIFont(name: "KohinoorTelugu-Regular", size: 15) 108 + bottomBackBtn.titleLabel?.font = UIFont.systemFont(ofSize: 15, weight: .regular)
109 109
110 bottomBackBtn.addTarget(self, action: #selector(tapAction), for: .touchUpInside) 110 bottomBackBtn.addTarget(self, action: #selector(tapAction), for: .touchUpInside)
111 return bottomBackBtn 111 return bottomBackBtn
metaCode/Classes/Main/LoginPage/Controller/CNLiveLoginViewController.swift
@@ -181,7 +181,7 @@ class CNLiveLoginViewController : CNLiveBaseViewController, UITextViewDelegate { @@ -181,7 +181,7 @@ class CNLiveLoginViewController : CNLiveBaseViewController, UITextViewDelegate {
181 selectButton.snp.makeConstraints { make in 181 selectButton.snp.makeConstraints { make in
182 make.bottom.equalTo(view.snp.bottom).offset(-50) 182 make.bottom.equalTo(view.snp.bottom).offset(-50)
183 make.left.equalTo(view.snp.left).offset(30) 183 make.left.equalTo(view.snp.left).offset(30)
184 - make.hei.equalTo(15) 184 + make.height.equalTo(15)
185 } 185 }
186 186
187 let attributedString = NSMutableAttributedString(string: "我已阅读并同意《APP用户服务协议》《个人信息保护政策》", 187 let attributedString = NSMutableAttributedString(string: "我已阅读并同意《APP用户服务协议》《个人信息保护政策》",
metaCode/Classes/Vendors/WJColorChange.h
@@ -10,7 +10,11 @@ @@ -10,7 +10,11 @@
10 10
11 11
12 @protocol WJColorChangeDelegate <NSObject> 12 @protocol WJColorChangeDelegate <NSObject>
13 - 13 +/**
  14 + 将要开始拖拽滚动
  15 + @param scrollView 滚动视图
  16 + */
  17 +- (void)WJColorScrollViewWillBeginDragging:(UIScrollView *)scrollView;
14 18
15 /** 19 /**
16 滚动时候回调 传出当前的滚动视图 20 滚动时候回调 传出当前的滚动视图
metaCode/Classes/Vendors/WJColorChange.m
@@ -123,8 +123,13 @@ @@ -123,8 +123,13 @@
123 - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView 123 - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
124 { 124 {
125 _startOffsetY = scrollView.contentOffset.y; 125 _startOffsetY = scrollView.contentOffset.y;
  126 + if ([self.delegate respondsToSelector:@selector(WJColorScrollViewWillBeginDragging:)]) {
  127 +
  128 + [self.delegate WJColorScrollViewWillBeginDragging:scrollView];
  129 + }
126 } 130 }
127 131
  132 +
128 - (void)scrollViewDidScroll:(UIScrollView *)scrollView { 133 - (void)scrollViewDidScroll:(UIScrollView *)scrollView {
129 134
130 135
metaCode/Supporting Files/Assets.xcassets/Home/homePage_close_icon.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "filename" : "关闭@2x.png",
  9 + "idiom" : "universal",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "filename" : "关闭@3x.png",
  14 + "idiom" : "universal",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "author" : "xcode",
  20 + "version" : 1
  21 + }
  22 +}
metaCode/Supporting Files/Assets.xcassets/Home/homePage_close_icon.imageset/关闭@2x.png 0 → 100644

422 Bytes

metaCode/Supporting Files/Assets.xcassets/Home/homePage_close_icon.imageset/关闭@3x.png 0 → 100644

693 Bytes