Commit 0b152c38 authored by David黄金龙's avatar David黄金龙

首页 UI修改

parent 352fd929
...@@ -38,7 +38,6 @@ ...@@ -38,7 +38,6 @@
043D2C8A2C0EEF3F00172438 /* YHOrderSearchViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 043D2C892C0EEF3F00172438 /* YHOrderSearchViewController.swift */; }; 043D2C8A2C0EEF3F00172438 /* YHOrderSearchViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 043D2C892C0EEF3F00172438 /* YHOrderSearchViewController.swift */; };
043D2C8C2C0F037B00172438 /* YHServiceOrderSearchViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 043D2C8B2C0F037B00172438 /* YHServiceOrderSearchViewModel.swift */; }; 043D2C8C2C0F037B00172438 /* YHServiceOrderSearchViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 043D2C8B2C0F037B00172438 /* YHServiceOrderSearchViewModel.swift */; };
044378A42BFC848C001F95AE /* loginBkg.mov in Resources */ = {isa = PBXBuildFile; fileRef = 044378A32BFC848C001F95AE /* loginBkg.mov */; }; 044378A42BFC848C001F95AE /* loginBkg.mov in Resources */ = {isa = PBXBuildFile; fileRef = 044378A32BFC848C001F95AE /* loginBkg.mov */; };
044413FD2BC386DA00784A14 /* YHServiceViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044413FC2BC386DA00784A14 /* YHServiceViewController.swift */; };
044413FF2BC391F000784A14 /* YHServiceListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044413FE2BC391F000784A14 /* YHServiceListViewController.swift */; }; 044413FF2BC391F000784A14 /* YHServiceListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044413FE2BC391F000784A14 /* YHServiceListViewController.swift */; };
044414012BC3979800784A14 /* YHServerHKLifeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044414002BC3979800784A14 /* YHServerHKLifeViewController.swift */; }; 044414012BC3979800784A14 /* YHServerHKLifeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044414002BC3979800784A14 /* YHServerHKLifeViewController.swift */; };
044414032BC39B8D00784A14 /* YHServerTableHeadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044414022BC39B8D00784A14 /* YHServerTableHeadView.swift */; }; 044414032BC39B8D00784A14 /* YHServerTableHeadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044414022BC39B8D00784A14 /* YHServerTableHeadView.swift */; };
...@@ -619,7 +618,6 @@ ...@@ -619,7 +618,6 @@
043D2C892C0EEF3F00172438 /* YHOrderSearchViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHOrderSearchViewController.swift; sourceTree = "<group>"; }; 043D2C892C0EEF3F00172438 /* YHOrderSearchViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHOrderSearchViewController.swift; sourceTree = "<group>"; };
043D2C8B2C0F037B00172438 /* YHServiceOrderSearchViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHServiceOrderSearchViewModel.swift; sourceTree = "<group>"; }; 043D2C8B2C0F037B00172438 /* YHServiceOrderSearchViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHServiceOrderSearchViewModel.swift; sourceTree = "<group>"; };
044378A32BFC848C001F95AE /* loginBkg.mov */ = {isa = PBXFileReference; lastKnownFileType = video.quicktime; path = loginBkg.mov; sourceTree = "<group>"; }; 044378A32BFC848C001F95AE /* loginBkg.mov */ = {isa = PBXFileReference; lastKnownFileType = video.quicktime; path = loginBkg.mov; sourceTree = "<group>"; };
044413FC2BC386DA00784A14 /* YHServiceViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHServiceViewController.swift; sourceTree = "<group>"; };
044413FE2BC391F000784A14 /* YHServiceListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHServiceListViewController.swift; sourceTree = "<group>"; }; 044413FE2BC391F000784A14 /* YHServiceListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHServiceListViewController.swift; sourceTree = "<group>"; };
044414002BC3979800784A14 /* YHServerHKLifeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHServerHKLifeViewController.swift; sourceTree = "<group>"; }; 044414002BC3979800784A14 /* YHServerHKLifeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHServerHKLifeViewController.swift; sourceTree = "<group>"; };
044414022BC39B8D00784A14 /* YHServerTableHeadView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHServerTableHeadView.swift; sourceTree = "<group>"; }; 044414022BC39B8D00784A14 /* YHServerTableHeadView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHServerTableHeadView.swift; sourceTree = "<group>"; };
...@@ -2824,7 +2822,6 @@ ...@@ -2824,7 +2822,6 @@
A5ACE9192B4564F7002C94D2 /* YHServiceCenterMainViewController.swift */, A5ACE9192B4564F7002C94D2 /* YHServiceCenterMainViewController.swift */,
04E41DE72BD240570077EAE3 /* YHOrderDetailViewController.swift */, 04E41DE72BD240570077EAE3 /* YHOrderDetailViewController.swift */,
048787D42BCE880B0036E221 /* YHServiceOrderListViewController.swift */, 048787D42BCE880B0036E221 /* YHServiceOrderListViewController.swift */,
044413FC2BC386DA00784A14 /* YHServiceViewController.swift */,
04F5F85F2C1944D5004A463C /* YHHKCenterViewController.swift */, 04F5F85F2C1944D5004A463C /* YHHKCenterViewController.swift */,
044413FE2BC391F000784A14 /* YHServiceListViewController.swift */, 044413FE2BC391F000784A14 /* YHServiceListViewController.swift */,
04F5F8612C1945C0004A463C /* YHHKIdentityCardViewController.swift */, 04F5F8612C1945C0004A463C /* YHHKIdentityCardViewController.swift */,
...@@ -3642,7 +3639,6 @@ ...@@ -3642,7 +3639,6 @@
045EEE822B9F171A0022A143 /* YHPersonInfoIdentityCardModel.swift in Sources */, 045EEE822B9F171A0022A143 /* YHPersonInfoIdentityCardModel.swift in Sources */,
045EEE952B9F171A0022A143 /* YHPreviewInfoCertificateInformationItemsView.swift in Sources */, 045EEE952B9F171A0022A143 /* YHPreviewInfoCertificateInformationItemsView.swift in Sources */,
044D0C042C2180B700C5CF5E /* YHInformationAuthorizationStepTwoViewController.swift in Sources */, 044D0C042C2180B700C5CF5E /* YHInformationAuthorizationStepTwoViewController.swift in Sources */,
044413FD2BC386DA00784A14 /* YHServiceViewController.swift in Sources */,
045EEEBB2B9F171A0022A143 /* YHWorkIntroductionTableViewCell.swift in Sources */, 045EEEBB2B9F171A0022A143 /* YHWorkIntroductionTableViewCell.swift in Sources */,
045EEEED2B9F171A0022A143 /* YHParentInfoVC.swift in Sources */, 045EEEED2B9F171A0022A143 /* YHParentInfoVC.swift in Sources */,
04A7BC912B6B7B89000E8D47 /* YHTwoOptionAlertView.swift in Sources */, 04A7BC912B6B7B89000E8D47 /* YHTwoOptionAlertView.swift in Sources */,
......
...@@ -160,7 +160,8 @@ extension AppDelegate { ...@@ -160,7 +160,8 @@ extension AppDelegate {
func setupRootVCWithTabBar() { func setupRootVCWithTabBar() {
// gk_navigationBar.isHidden = false // gk_navigationBar.isHidden = false
let tabBarController = YHTabBarViewController() let tabBarController = YHTabBarViewController()
let homeVC = YHHomePageViewController() // let homeVC = YHHomePageViewController() //for test hjl
let homeVC = YHHomeHoldViewPageViewController()
tabBarController.delegate = homeVC tabBarController.delegate = homeVC
let v0 = YHNavigationController(rootVC:homeVC) let v0 = YHNavigationController(rootVC:homeVC)
let v1 = YHNavigationController(rootVC:YHServiceCenterMainViewController()) let v1 = YHNavigationController(rootVC:YHServiceCenterMainViewController())
......
...@@ -9,9 +9,9 @@ ...@@ -9,9 +9,9 @@
import UIKit import UIKit
import JXSegmentedView import JXSegmentedView
//MARK: - 生命周期函数 及变量
class YHHomeHoldViewPageViewController: YHBaseViewController { class YHHomeHoldViewPageViewController: YHBaseViewController {
var defaltIndex: Int = 0
let friendViewModel = YHMatchUserViewModel()
let arrItemTitles = ["推荐","身份","生活"] let arrItemTitles = ["推荐","身份","生活"]
var arrItemVCs : [YHBaseViewController] = [] var arrItemVCs : [YHBaseViewController] = []
...@@ -39,9 +39,10 @@ class YHHomeHoldViewPageViewController: YHBaseViewController { ...@@ -39,9 +39,10 @@ class YHHomeHoldViewPageViewController: YHBaseViewController {
return dataSource return dataSource
}() }()
lazy var bgImgV:UIImageView = { //首页内容ViewController
let bg = UIImageView(image: UIImage(named: "people_match_bg")) lazy var homePageVC: YHHomePageViewController = {
return bg let vc = YHHomePageViewController()
return vc
}() }()
//分类title 所对应的VC //分类title 所对应的VC
...@@ -51,49 +52,27 @@ class YHHomeHoldViewPageViewController: YHBaseViewController { ...@@ -51,49 +52,27 @@ class YHHomeHoldViewPageViewController: YHBaseViewController {
return view return view
}() }()
lazy var friendsBtn:UIButton = { var tapTimestamp : CFAbsoluteTime = -10.0
let btn = UIButton()
btn.setImage(UIImage(named: "people_friends_btn"), for: .normal)
btn.setTitle("好友", for: .normal)
btn.setTitleColor(UIColor.white, for: .normal)
btn.iconInLeft(spacing: 4.0)
btn.titleLabel?.font = UIFont.PFSC_R(ofSize:15)
btn.YH_clickEdgeInsets = UIEdgeInsets(top: 20, left: 20, bottom: 20, right: 20)
btn.addTarget(self, action: #selector(didFriendsBtnClicked), for: .touchUpInside)
return btn
}()
let unreadHeight = 16.0
lazy var unreadLabel:UILabel = {
let label = UILabel()
label.textColor = .white
label.textAlignment = .center
label.backgroundColor = .failColor
label.font = .PFSC_M(ofSize: 10)
label.layer.cornerRadius = unreadHeight/2.0
label.clipsToBounds = true
label.isHidden = true
return label
}()
var unreadCount:Int = 0 {
didSet {
self.updateUnreadCount(self.unreadCount)
}
}
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
setupUI() setupUI()
} }
override func viewWillAppear(_ animated: Bool) { override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated) super.viewWillAppear(animated)
requestFriendRequest()
//处于第一个item的时候,才允许屏幕边缘手势返回 //处于第一个item的时候,才允许屏幕边缘手势返回
navigationController?.interactivePopGestureRecognizer?.isEnabled = (segmentedView.selectedIndex == 0) navigationController?.interactivePopGestureRecognizer?.isEnabled = (segmentedView.selectedIndex == 0)
YHOSSManager.share.getOSSID()
getTotalUnreadMsgCount()
updateDefaultSearchKeyWord()
requestAppNewVersion()
} }
override func viewWillDisappear(_ animated: Bool) { override func viewWillDisappear(_ animated: Bool) {
...@@ -106,70 +85,166 @@ class YHHomeHoldViewPageViewController: YHBaseViewController { ...@@ -106,70 +85,166 @@ class YHHomeHoldViewPageViewController: YHBaseViewController {
override func viewDidLayoutSubviews() { override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews() super.viewDidLayoutSubviews()
segmentedView.frame = CGRect(x: 0, y: k_Height_safeAreaInsetsTop(), width: view.bounds.size.width, height: 48) let offy = k_Height_safeAreaInsetsTop() + 6 + YHHomeSearchView.viewH + 6
listContainerView.frame = CGRect(x: 0, y: k_Height_safeAreaInsetsTop() + 48, width: view.bounds.size.width, height: view.bounds.size.height - 48 - k_Height_safeAreaInsetsTop()) segmentedView.frame = CGRect(x: 0, y: offy, width: view.bounds.size.width, height: 48)
let offy1 = offy + 48 + 8
listContainerView.frame = CGRect(x: 0, y: offy1, width: view.bounds.size.width, height: view.bounds.size.height - offy1 - k_Height_TabBar)
// listContainerView.backgroundColor = .red//for test hjl
// homePageVC.homeCollectView.backgroundColor = .yellow//for test hjl
// homePageVC.view.backgroundColor = .purple//for test hjl
} }
lazy var searchView: YHHomeSearchView = {
let view = YHHomeSearchView()
let tap = UITapGestureRecognizer(target: self, action: #selector(didSearchBarClicked))
view.addGestureRecognizer(tap)
return view
}()
lazy var msgUnreadView:YHMessageBellView = {
let view = YHMessageBellView.bellView()
return view
}()
lazy var msgViewModel:YHMsgViewModel = {
let vm = YHMsgViewModel()
return vm
}()
} }
//内部函数 //MARK: - 内部函数
extension YHHomeHoldViewPageViewController { extension YHHomeHoldViewPageViewController {
func updateUnreadCount(_ count : Int) { @objc func didRefreshMessageCount() {
self.unreadLabel.isHidden = (count <= 0) getTotalUnreadMsgCount()
if 0 < count && count < 100 {
self.unreadLabel.text = "\(count)"
} else if count >= 100 {
self.unreadLabel.text = "99+"
} }
var width = unreadHeight
var leftMargin = -8 func requestAppNewVersion() {
if 10 <= count && count < 100 { if YHConfigManager.shared.loadNewDataFlag == false {
width = 22.0 YHConfigManager.shared.loadConfigData {
} else if count >= 100 { [weak self] in
width = 30.0 guard let self = self else { return }
leftMargin = -14 self.showNewVersionAlertView()
} }
self.unreadLabel.snp.updateConstraints { make in } else {
make.width.equalTo(width) showNewVersionAlertView()
make.left.equalTo(self.friendsBtn.snp.right).offset(leftMargin)
} }
} }
@objc func didBackBtnClicked() { func showNewVersionAlertView() {
self.navigationController?.popViewController(animated: true) let isNeedShowAlert = YHAppVersionManager.shared.needShowAlertViewOfSuggestVersionUpdate()
if isNeedShowAlert {
if let configModel = YHConfigManager.shared.reqVM.configModel {
let alertView = YHFindAppNewVersionView.alertView(version: configModel.max_version)
let arr = configModel.suggest_updating_msg.components(separatedBy: "$")
alertView.updateContentArray(arr)
alertView.show()
}
}
} }
@objc func didFriendsBtnClicked() { // 请求未读消息总数
@objc func getTotalUnreadMsgCount() {
if !YHLoginManager.shared.isLogin() { if !YHLoginManager.shared.isLogin() {
YHOneKeyLoginManager.shared.oneKeyLogin()
return return
} }
let vc = YHMyGoodFriendsVC()
self.msgViewModel.requestTotalUnreadMsgCount {
[weak self] success, error in
guard let self = self else { return }
DispatchQueue.main.async {
self.msgUnreadView.unreadCount = self.msgViewModel.unreadTotalCount
}
}
}
@objc func clearUnreadBadge() {
DispatchQueue.main.async {
self.msgUnreadView.unreadCount = 0
}
}
@objc func loginSuccess() {
homePageVC.getData()
}
@objc func logoutSuccess() {
self.msgUnreadView.unreadCount = 0
homePageVC.getData()
}
@objc func revMsg() {
homePageVC.requestOrder()
}
func updateDefaultSearchKeyWord() {
var placeHolder = "香港身份"
if isHaveLocalSearchRecords() {
let latestValidSearchWord = getLatestValidSearchWord()
if !latestValidSearchWord.isEmpty {
placeHolder = latestValidSearchWord
}
}
searchView.placeHolder = placeHolder
}
@objc func didSearchBarClicked() {
let vc = YHSearchInfomationVC()
vc.searchPlaceHolder = searchView.placeHolder
printLog("placeHolder: \(searchView.placeHolder)")
self.navigationController?.pushViewController(vc) self.navigationController?.pushViewController(vc)
} }
func setupUI() { func setupUI() {
gk_navBarAlpha = 0
gk_navigationBar.isHidden = false
gk_navigationBar.isHidden = true gk_navigationBar.isHidden = true
self.view.backgroundColor = .white view.backgroundColor = .white
self.view.addSubview(bgImgV)
self.bgImgV.snp.makeConstraints { make in NotificationCenter.default.addObserver(self, selector: #selector(loginSuccess), name: YhConstant.YhNotification.didLoginSuccessNotifiction, object: nil)
make.edges.equalToSuperview()
}
NotificationCenter.default.addObserver(self, selector: #selector(logoutSuccess), name: YhConstant.YhNotification.didLogoutSuccessNotifiction, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(goActivityVC), name: YhConstant.YhNotification.goActivityVCNotifiction, object: nil) NotificationCenter.default.addObserver(self, selector: #selector(revMsg), name: YhConstant.YhNotification.didRevMsgNotifiction, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(clearUnreadBadge), name: YhConstant.YhNotification.didMarkAllMessagesReadedNotifiction, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(didRefreshMessageCount), name: YhConstant.YhNotification.didRequestUnreadMsgTotalCountNotification, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(goConnectionVC), name: YhConstant.YhNotification.goConnectionVCNotifiction, object: nil)
for i in 0..<arrItemTitles.count { for i in 0..<arrItemTitles.count {
if i != 0 { if i == 0 {
let vc = YHActivityListViewController() //首页
let vc = homePageVC
arrItemVCs.append(vc) arrItemVCs.append(vc)
} else { } else if i == 1 {
let vc = YHMatchUserViewController() //身份
let vc = YHServiceListViewController()
arrItemVCs.append(vc) arrItemVCs.append(vc)
} else if i == 2 {
//生活
let vc = YHServerHKLifeViewController()
arrItemVCs.append(vc)
}
} }
view.addSubview(searchView)
searchView.snp.makeConstraints { make in
make.top.equalTo(k_Height_safeAreaInsetsTop() + 6)
make.left.equalTo(20)
make.height.equalTo(YHHomeSearchView.viewH)
}
view.addSubview(msgUnreadView)
msgUnreadView.snp.makeConstraints { make in
make.width.equalTo(YHMessageBellView.width)
make.height.equalTo(YHMessageBellView.height)
make.left.equalTo(searchView.snp.right)
make.right.equalToSuperview()
make.centerY.equalTo(searchView)
} }
//segmentedViewDataSource一定要通过属性强持有!!!!!!!!! //segmentedViewDataSource一定要通过属性强持有!!!!!!!!!
...@@ -179,95 +254,27 @@ extension YHHomeHoldViewPageViewController { ...@@ -179,95 +254,27 @@ extension YHHomeHoldViewPageViewController {
segmentedView.listContainer = listContainerView segmentedView.listContainer = listContainerView
view.addSubview(listContainerView) view.addSubview(listContainerView)
//分类Title //分类Title
segmentedView.dataSource = segmentedDataSource segmentedView.dataSource = segmentedDataSource
segmentedView.delegate = self segmentedView.delegate = self
//配置指示器
let indicator = JXSegmentedIndicatorLineView()
indicator.indicatorWidth = 16
indicator.indicatorHeight = 2
indicator.indicatorCornerRadius = 0.0
indicator.indicatorColor = UIColor.white
segmentedView.indicators = [indicator]
segmentedView.defaultSelectedIndex = defaltIndex
self.view.addSubview(friendsBtn)
friendsBtn.snp.makeConstraints { make in
make.width.equalTo(54.0)
make.height.equalTo(21)
make.right.equalTo(-20)
make.top.equalTo(12+k_Height_safeAreaInsetsTop())
} }
self.friendsBtn.addSubview(self.unreadLabel)
self.unreadLabel.snp.makeConstraints { make in
make.width.height.equalTo(unreadHeight)
make.left.equalTo(self.friendsBtn.snp.right).offset(-8)
make.top.equalTo(self.friendsBtn.snp.top).offset(-8)
}
}
func requestFriendRequest() {
if YHLoginManager.shared.isLogin() {
self.friendViewModel.getMyFriendList { success, error in
let unreadCount = self.friendViewModel.friendListModel.applyFriends.count
self.unreadCount = unreadCount
self.friendsBtn.isHidden = self.segmentedView.selectedIndex != 0
}
} else {
self.unreadCount = 0
}
}
@objc func goActivityVC() {
segmentedView.selectItemAt(index: 1)
}
@objc func goConnectionVC() {
segmentedView.selectItemAt(index: 0)
}
func jumpToItemIndex(itemIndex : Int) { func jumpToItemIndex(itemIndex : Int) {
self.segmentedView.selectItemAt(index: itemIndex) self.segmentedView.selectItemAt(index: itemIndex)
} }
} }
//JXSegmentedViewDelegate //MARK: - JXSegmentedViewDelegate
extension YHHomeHoldViewPageViewController: JXSegmentedViewDelegate { extension YHHomeHoldViewPageViewController: JXSegmentedViewDelegate {
func segmentedView(_ segmentedView: JXSegmentedView, didSelectedItemAt index: Int) { func segmentedView(_ segmentedView: JXSegmentedView, didSelectedItemAt index: Int) {
navigationController?.interactivePopGestureRecognizer?.isEnabled = (segmentedView.selectedIndex == 0) navigationController?.interactivePopGestureRecognizer?.isEnabled = (segmentedView.selectedIndex == 0)
// if segmentedView.selectedIndex == 0 {
// bgImgV.isHidden = false
// friendsBtn.isHidden = false
// segmentedDataSource.titleNormalColor = UIColor(hex: 0xFFFFFF, alpha: 0.6)
// segmentedDataSource.titleSelectedColor = .white
// let indicator = JXSegmentedIndicatorLineView()
// indicator.indicatorWidth = 16
// indicator.indicatorHeight = 2
// indicator.indicatorCornerRadius = 0.0
// indicator.indicatorColor = UIColor.white
// segmentedView.indicators = [indicator]
// } else {
// bgImgV.isHidden = true
// friendsBtn.isHidden = true
// segmentedDataSource.titleNormalColor = UIColor.yhGreyColor
// segmentedDataSource.titleSelectedColor = UIColor.mainTextColor
// let indicator = JXSegmentedIndicatorLineView()
// indicator.indicatorWidth = 16
// indicator.indicatorHeight = 2
// indicator.indicatorCornerRadius = 0.0
// indicator.indicatorColor = UIColor.brandMainColor
// segmentedView.indicators = [indicator]
// }
// segmentedView.dataSource = segmentedDataSource
self.segmentedView.reloadDataWithoutListContainer() self.segmentedView.reloadDataWithoutListContainer()
} }
} }
//JXSegmentedListContainerViewDataSource //MARK: - JXSegmentedListContainerViewDataSource
extension YHHomeHoldViewPageViewController: JXSegmentedListContainerViewDataSource { extension YHHomeHoldViewPageViewController: JXSegmentedListContainerViewDataSource {
func numberOfLists(in listContainerView: JXSegmentedListContainerView) -> Int { func numberOfLists(in listContainerView: JXSegmentedListContainerView) -> Int {
if let titleDataSource = segmentedView.dataSource as? JXSegmentedBaseDataSource { if let titleDataSource = segmentedView.dataSource as? JXSegmentedBaseDataSource {
...@@ -280,3 +287,40 @@ extension YHHomeHoldViewPageViewController: JXSegmentedListContainerViewDataSour ...@@ -280,3 +287,40 @@ extension YHHomeHoldViewPageViewController: JXSegmentedListContainerViewDataSour
return arrItemVCs[index] as! JXSegmentedListContainerViewListDelegate return arrItemVCs[index] as! JXSegmentedListContainerViewListDelegate
} }
} }
//MARK: - UITabBarControllerDelegate
extension YHHomeHoldViewPageViewController : UITabBarControllerDelegate {
func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) {
let doubleTapInterval : CGFloat = 0.3
if tabBarController.selectedIndex == 0 {
let timestamp = CFAbsoluteTimeGetCurrent()
printLog(timestamp - self.tapTimestamp)
if timestamp - self.tapTimestamp < doubleTapInterval {
homePageVC.goTop()
}
self.tapTimestamp = timestamp
}
}
func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
guard let index = tabBarController.viewControllers?.firstIndex(of: viewController) else {
return false
}
if index == 1 {
if YHLoginManager.shared.isLogin() {
return true
} else {
YHOneKeyLoginManager.shared.oneKeyLogin()
YHLoginManager.shared.loginSuccessActionBlock = {[weak self] in
guard self != nil else { return }
tabBarController.selectedIndex = index
YHLoginManager.shared.loginSuccessActionBlock = nil
}
return false
}
}
return true
}
}
...@@ -10,10 +10,10 @@ import UIKit ...@@ -10,10 +10,10 @@ import UIKit
import ESPullToRefresh import ESPullToRefresh
import GKNavigationBarSwift import GKNavigationBarSwift
import SmartCodable import SmartCodable
import JXSegmentedView
let kShowAlertOfSuggestLatestVersion = "show_alert_suggest_latest_version"
class YHHomePageViewController: YHBaseViewController { class YHHomePageViewController: YHBaseViewController {
lazy var viewModel : YHHomePageViewModel = { lazy var viewModel : YHHomePageViewModel = {
let viewModel = YHHomePageViewModel() let viewModel = YHHomePageViewModel()
return viewModel return viewModel
...@@ -22,6 +22,7 @@ class YHHomePageViewController: YHBaseViewController { ...@@ -22,6 +22,7 @@ class YHHomePageViewController: YHBaseViewController {
let msgViewModel: YHMsgViewModel = YHMsgViewModel() let msgViewModel: YHMsgViewModel = YHMsgViewModel()
let serviceCenterMainReqVM : YHServiceCenterMainViewModel = YHServiceCenterMainViewModel() let serviceCenterMainReqVM : YHServiceCenterMainViewModel = YHServiceCenterMainViewModel()
var homeHeaderViewHeight = YHHomeHeadView.fixViewH var homeHeaderViewHeight = YHHomeHeadView.fixViewH
var needReloadDataFlag : Bool = false var needReloadDataFlag : Bool = false
...@@ -45,7 +46,6 @@ class YHHomePageViewController: YHBaseViewController { ...@@ -45,7 +46,6 @@ class YHHomePageViewController: YHBaseViewController {
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
//0、 //0、
setupUI() setupUI()
...@@ -56,17 +56,13 @@ class YHHomePageViewController: YHBaseViewController { ...@@ -56,17 +56,13 @@ class YHHomePageViewController: YHBaseViewController {
getData() getData()
} }
@objc func didRefreshMessageCount() {
getTotalUnreadMsgCount()
}
override func viewWillAppear(_ animated: Bool) { override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated) super.viewWillAppear(animated)
requestAppNewVersion() // requestAppNewVersion()
//获取OSS密钥 //获取OSS密钥
YHOSSManager.share.getOSSID() // YHOSSManager.share.getOSSID()
updateDefaultSearchKeyWord() // updateDefaultSearchKeyWord()
getTotalUnreadMsgCount() // getTotalUnreadMsgCount()
if needReloadDataFlag { if needReloadDataFlag {
needReloadDataFlag = false needReloadDataFlag = false
...@@ -74,69 +70,37 @@ class YHHomePageViewController: YHBaseViewController { ...@@ -74,69 +70,37 @@ class YHHomePageViewController: YHBaseViewController {
} }
} }
lazy var searchView: YHHomeSearchView = { // lazy var searchView: YHHomeSearchView = {
let view = YHHomeSearchView() // let view = YHHomeSearchView()
let tap = UITapGestureRecognizer(target: self, action: #selector(didSearchBarClicked)) // let tap = UITapGestureRecognizer(target: self, action: #selector(didSearchBarClicked))
view.addGestureRecognizer(tap) // view.addGestureRecognizer(tap)
return view // return view
}() // }()
//
lazy var msgUnreadView:YHMessageBellView = { // lazy var msgUnreadView:YHMessageBellView = {
let view = YHMessageBellView.bellView() // let view = YHMessageBellView.bellView()
return view // return view
}() // }()
lazy var homeHeaderView: YHHomeHeadView = { lazy var homeHeaderView: YHHomeHeadView = {
let view = YHHomeHeadView() let view = YHHomeHeadView()
return view return view
}() }()
var tapTimestamp : CFAbsoluteTime = -10.0 // var tapTimestamp : CFAbsoluteTime = -10.0
}
func updateDefaultSearchKeyWord() {
var placeHolder = "香港身份"
if isHaveLocalSearchRecords() {
let latestValidSearchWord = getLatestValidSearchWord()
if !latestValidSearchWord.isEmpty {
placeHolder = latestValidSearchWord
}
}
searchView.placeHolder = placeHolder
}
// 请求订单数据
func requestOrder() {
if YHLoginManager.shared.isLogin() == false {
return
}
self.serviceCenterMainReqVM.getContactList {
[weak self] success, error in
guard let self = self else { return }
let isShow = self.serviceCenterMainReqVM.arrContactList.count > 0
if isShow {
self.viewModel.getBasicInfoForSigner { success, error in
if success {
self.homeHeaderView.orderTipsView.dataModelForBasicInfo = self.viewModel.signerModel
} else {
}
self.viewModel.getLastTwoMessagesForSigner { success, error in
if success {
self.homeHeaderView.orderTipsView.arrLastTwoMessage = self.viewModel.arrLastTwoMessages
self.homeHeaderView.updateSubViewsConstraints()
} else {
} private extension YHHomePageViewController {
self.showOrderTipsView(isShow) // func updateDefaultSearchKeyWord() {
} // var placeHolder = "香港身份"
} // if isHaveLocalSearchRecords() {
} else { // let latestValidSearchWord = getLatestValidSearchWord()
self.showOrderTipsView(isShow) // if !latestValidSearchWord.isEmpty {
} // placeHolder = latestValidSearchWord
} // }
} // }
//// searchView.placeHolder = placeHolder
// }
// 是否展示订单提示视图 // 是否展示订单提示视图
func showOrderTipsView(_ show:Bool) { func showOrderTipsView(_ show:Bool) {
...@@ -172,9 +136,11 @@ class YHHomePageViewController: YHBaseViewController { ...@@ -172,9 +136,11 @@ class YHHomePageViewController: YHBaseViewController {
} }
self.homeCollectView.reloadData() self.homeCollectView.reloadData()
} }
}
private extension YHHomePageViewController { // @objc func didRefreshMessageCount() {
// getTotalUnreadMsgCount()
// }
func addDefaultData() { func addDefaultData() {
homeHeaderView.homeBannerView.dataArr = getCacheDataForBanner() homeHeaderView.homeBannerView.dataArr = getCacheDataForBanner()
getCacheDataForHomeNewsData() getCacheDataForHomeNewsData()
...@@ -184,17 +150,14 @@ private extension YHHomePageViewController { ...@@ -184,17 +150,14 @@ private extension YHHomePageViewController {
needReloadDataFlag = true needReloadDataFlag = true
} }
@objc func didSearchBarClicked() { // @objc func didSearchBarClicked() {
let vc = YHSearchInfomationVC() // let vc = YHSearchInfomationVC()
vc.searchPlaceHolder = searchView.placeHolder // vc.searchPlaceHolder = searchView.placeHolder
printLog("placeHolder: \(searchView.placeHolder)") // printLog("placeHolder: \(searchView.placeHolder)")
self.navigationController?.pushViewController(vc) // self.navigationController?.pushViewController(vc)
} // }
func getData() {
loadFirstData()
getHomeBannerData()
}
//获取缓存的 banner数据 //获取缓存的 banner数据
func getCacheDataForBanner() -> [YHBannerModel] { func getCacheDataForBanner() -> [YHBannerModel] {
...@@ -312,44 +275,46 @@ private extension YHHomePageViewController { ...@@ -312,44 +275,46 @@ private extension YHHomePageViewController {
} }
func setupUI() { func setupUI() {
gk_navigationBar.isHidden = false // gk_navigationBar.isHidden = false
gk_navigationBar.isHidden = true // gk_navigationBar.isHidden = true
view.backgroundColor = .white // view.backgroundColor = .white
NotificationCenter.default.addObserver(self, selector: #selector(loginSuccess), name: YhConstant.YhNotification.didLoginSuccessNotifiction, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(logoutSuccess), name: YhConstant.YhNotification.didLogoutSuccessNotifiction, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(revMsg), name: YhConstant.YhNotification.didRevMsgNotifiction, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(clearUnreadBadge), name: YhConstant.YhNotification.didMarkAllMessagesReadedNotifiction, object: nil)
// NotificationCenter.default.addObserver(self, selector: #selector(loginSuccess), name: YhConstant.YhNotification.didLoginSuccessNotifiction, object: nil)
//
// NotificationCenter.default.addObserver(self, selector: #selector(logoutSuccess), name: YhConstant.YhNotification.didLogoutSuccessNotifiction, object: nil)
//
// NotificationCenter.default.addObserver(self, selector: #selector(revMsg), name: YhConstant.YhNotification.didRevMsgNotifiction, object: nil)
//
// NotificationCenter.default.addObserver(self, selector: #selector(clearUnreadBadge), name: YhConstant.YhNotification.didMarkAllMessagesReadedNotifiction, object: nil)
//
//
NotificationCenter.default.addObserver(self, selector: #selector(clickMsgitem), name: YhConstant.YhNotification.clickHomeMsgNotifiction, object: nil) NotificationCenter.default.addObserver(self, selector: #selector(clickMsgitem), name: YhConstant.YhNotification.clickHomeMsgNotifiction, object: nil)
//
// NotificationCenter.default.addObserver(self, selector: #selector(didRefreshMessageCount), name: YhConstant.YhNotification.didRequestUnreadMsgTotalCountNotification, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(didRefreshMessageCount), name: YhConstant.YhNotification.didRequestUnreadMsgTotalCountNotification, object: nil) // view.addSubview(searchView)
// searchView.snp.makeConstraints { make in
view.addSubview(searchView) // make.top.equalTo(k_Height_safeAreaInsetsTop() + 6)
searchView.snp.makeConstraints { make in // make.left.equalTo(20)
make.top.equalTo(k_Height_safeAreaInsetsTop() + 6) // make.height.equalTo(YHHomeSearchView.viewH)
make.left.equalTo(20) // }
make.height.equalTo(YHHomeSearchView.viewH) //
} // view.addSubview(msgUnreadView)
// msgUnreadView.snp.makeConstraints { make in
view.addSubview(msgUnreadView) // make.width.equalTo(YHMessageBellView.width)
msgUnreadView.snp.makeConstraints { make in // make.height.equalTo(YHMessageBellView.height)
make.width.equalTo(YHMessageBellView.width) // make.left.equalTo(searchView.snp.right)
make.height.equalTo(YHMessageBellView.height) // make.right.equalToSuperview()
make.left.equalTo(searchView.snp.right) // make.centerY.equalTo(searchView)
make.right.equalToSuperview() // }
make.centerY.equalTo(searchView)
}
view.addSubview(homeCollectView) view.addSubview(homeCollectView)
homeCollectView.snp.makeConstraints { make in homeCollectView.snp.makeConstraints { make in
make.left.right.equalToSuperview() make.left.right.equalToSuperview()
make.top.equalTo(searchView.snp.bottom).offset(20) // make.top.equalTo(searchView.snp.bottom).offset(20)
make.bottom.equalToSuperview().offset(-k_Height_TabBar) make.top.equalToSuperview()
// make.bottom.equalToSuperview().offset(-k_Height_TabBar)
make.bottom.equalToSuperview()
} }
homeHeaderView.frame = CGRect(x: 20, y: -YHHomeHeadView.fixViewH, width: KScreenWidth - 40, height: YHHomeHeadView.fixViewH) homeHeaderView.frame = CGRect(x: 20, y: -YHHomeHeadView.fixViewH, width: KScreenWidth - 40, height: YHHomeHeadView.fixViewH)
...@@ -372,19 +337,55 @@ private extension YHHomePageViewController { ...@@ -372,19 +337,55 @@ private extension YHHomePageViewController {
self.loadMoreData() self.loadMoreData()
} }
} }
}
@objc func loginSuccess() { //MARK: - public方法
getData() extension YHHomePageViewController {
func goTop() {
self.homeCollectView.setContentOffset(CGPoint(x: 0, y: -homeHeaderViewHeight), animated: true)
} }
@objc func logoutSuccess() {
self.msgUnreadView.unreadCount = 0 func getData() {
getData() loadFirstData()
getHomeBannerData()
} }
@objc func revMsg() {
requestOrder() // 请求订单数据
func requestOrder() {
if YHLoginManager.shared.isLogin() == false {
return
} }
self.serviceCenterMainReqVM.getContactList {
[weak self] success, error in
guard let self = self else { return }
let isShow = self.serviceCenterMainReqVM.arrContactList.count > 0
if isShow {
self.viewModel.getBasicInfoForSigner { success, error in
if success {
self.homeHeaderView.orderTipsView.dataModelForBasicInfo = self.viewModel.signerModel
} else {
}
self.viewModel.getLastTwoMessagesForSigner { success, error in
if success {
self.homeHeaderView.orderTipsView.arrLastTwoMessage = self.viewModel.arrLastTwoMessages
self.homeHeaderView.updateSubViewsConstraints()
} else {
}
self.showOrderTipsView(isShow)
}
}
} else {
self.showOrderTipsView(isShow)
}
}
}
} }
extension YHHomePageViewController: UICollectionViewDelegate, UICollectionViewDataSource { extension YHHomePageViewController: UICollectionViewDelegate, UICollectionViewDataSource {
...@@ -440,96 +441,96 @@ extension YHHomePageViewController : CollectionViewWaterfallLayoutDelegate { ...@@ -440,96 +441,96 @@ extension YHHomePageViewController : CollectionViewWaterfallLayoutDelegate {
} }
} }
extension YHHomePageViewController : UITabBarControllerDelegate { //extension YHHomePageViewController : UITabBarControllerDelegate {
//
func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) { // func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) {
let doubleTapInterval : CGFloat = 0.3 // let doubleTapInterval : CGFloat = 0.3
//
if tabBarController.selectedIndex == 0 { // if tabBarController.selectedIndex == 0 {
let timestamp = CFAbsoluteTimeGetCurrent() // let timestamp = CFAbsoluteTimeGetCurrent()
printLog(timestamp - self.tapTimestamp) // printLog(timestamp - self.tapTimestamp)
if timestamp - self.tapTimestamp < doubleTapInterval { // if timestamp - self.tapTimestamp < doubleTapInterval {
self.homeCollectView.setContentOffset(CGPoint(x: 0, y: -homeHeaderViewHeight), animated: true) // self.homeCollectView.setContentOffset(CGPoint(x: 0, y: -homeHeaderViewHeight), animated: true)
}
self.tapTimestamp = timestamp
}
// else if tabBarController.selectedIndex == 2 {
// // 点击消息tab 清空应用icon未读数
// UIApplication.shared.applicationIconBadgeNumber = 0
// } // }
} // self.tapTimestamp = timestamp
//
// }
func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool { //// else if tabBarController.selectedIndex == 2 {
guard let index = tabBarController.viewControllers?.firstIndex(of: viewController) else { //// // 点击消息tab 清空应用icon未读数
return false //// UIApplication.shared.applicationIconBadgeNumber = 0
} //// }
if index == 1 { // }
if YHLoginManager.shared.isLogin() { //
return true //
} else { // func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
YHOneKeyLoginManager.shared.oneKeyLogin() // guard let index = tabBarController.viewControllers?.firstIndex(of: viewController) else {
YHLoginManager.shared.loginSuccessActionBlock = {[weak self] in // return false
guard self != nil else { return } // }
tabBarController.selectedIndex = index // if index == 1 {
YHLoginManager.shared.loginSuccessActionBlock = nil // if YHLoginManager.shared.isLogin() {
} // return true
return false // } else {
} // YHOneKeyLoginManager.shared.oneKeyLogin()
} // YHLoginManager.shared.loginSuccessActionBlock = {[weak self] in
return true // guard self != nil else { return }
} // tabBarController.selectedIndex = index
} // YHLoginManager.shared.loginSuccessActionBlock = nil
// }
// return false
// }
// }
// return true
// }
//}
extension YHHomePageViewController { extension YHHomePageViewController {
func requestAppNewVersion() { // func requestAppNewVersion() {
if YHConfigManager.shared.loadNewDataFlag == false { // if YHConfigManager.shared.loadNewDataFlag == false {
YHConfigManager.shared.loadConfigData { // YHConfigManager.shared.loadConfigData {
[weak self] in // [weak self] in
guard let self = self else { return } // guard let self = self else { return }
self.showNewVersionAlertView() // self.showNewVersionAlertView()
} // }
} else { // } else {
showNewVersionAlertView() // showNewVersionAlertView()
} // }
} // }
//
func showNewVersionAlertView() { // func showNewVersionAlertView() {
let isNeedShowAlert = YHAppVersionManager.shared.needShowAlertViewOfSuggestVersionUpdate() // let isNeedShowAlert = YHAppVersionManager.shared.needShowAlertViewOfSuggestVersionUpdate()
if isNeedShowAlert { // if isNeedShowAlert {
if let configModel = YHConfigManager.shared.reqVM.configModel { // if let configModel = YHConfigManager.shared.reqVM.configModel {
let alertView = YHFindAppNewVersionView.alertView(version: configModel.max_version) // let alertView = YHFindAppNewVersionView.alertView(version: configModel.max_version)
let arr = configModel.suggest_updating_msg.components(separatedBy: "$") // let arr = configModel.suggest_updating_msg.components(separatedBy: "$")
alertView.updateContentArray(arr) // alertView.updateContentArray(arr)
alertView.show() // alertView.show()
} // }
} // }
} // }
} }
extension YHHomePageViewController { extension YHHomePageViewController {
// 请求未读消息总数 // 请求未读消息总数
@objc func getTotalUnreadMsgCount() { // @objc func getTotalUnreadMsgCount() {
if !YHLoginManager.shared.isLogin() { // if !YHLoginManager.shared.isLogin() {
return // return
} // }
//
self.msgViewModel.requestTotalUnreadMsgCount { // self.msgViewModel.requestTotalUnreadMsgCount {
[weak self] success, error in // [weak self] success, error in
guard let self = self else { return } // guard let self = self else { return }
DispatchQueue.main.async { // DispatchQueue.main.async {
self.msgUnreadView.unreadCount = self.msgViewModel.unreadTotalCount // self.msgUnreadView.unreadCount = self.msgViewModel.unreadTotalCount
} // }
} // }
} // }
//
@objc func clearUnreadBadge() { // @objc func clearUnreadBadge() {
DispatchQueue.main.async { // DispatchQueue.main.async {
self.msgUnreadView.unreadCount = 0 // self.msgUnreadView.unreadCount = 0
} // }
} // }
func scrollViewDidScroll(_ scrollView: UIScrollView) { func scrollViewDidScroll(_ scrollView: UIScrollView) {
...@@ -547,3 +548,11 @@ extension YHHomePageViewController { ...@@ -547,3 +548,11 @@ extension YHHomePageViewController {
} }
} }
} }
//JXSegmentedListContainerViewListDelegate
extension YHHomePageViewController: JXSegmentedListContainerViewListDelegate {
func listView() -> UIView {
return view
}
}
...@@ -173,7 +173,8 @@ private extension YHStartPageViewController { ...@@ -173,7 +173,8 @@ private extension YHStartPageViewController {
func setupRootVC() { func setupRootVC() {
gk_navigationBar.isHidden = false gk_navigationBar.isHidden = false
let tabBarController = YHTabBarViewController() let tabBarController = YHTabBarViewController()
let homeVC = YHHomePageViewController() // let homeVC = YHHomePageViewController()
let homeVC = YHHomeHoldViewPageViewController()
tabBarController.delegate = homeVC tabBarController.delegate = homeVC
let v0 = YHNavigationController(rootVC:homeVC) let v0 = YHNavigationController(rootVC:homeVC)
let v1 = YHNavigationController(rootVC:YHServiceCenterMainViewController()) let v1 = YHNavigationController(rootVC:YHServiceCenterMainViewController())
......
...@@ -208,6 +208,8 @@ extension YHServiceListViewController : CollectionViewWaterfallLayoutDelegate { ...@@ -208,6 +208,8 @@ extension YHServiceListViewController : CollectionViewWaterfallLayoutDelegate {
} }
} }
//JXSegmentedListContainerViewListDelegate
extension YHServiceListViewController: JXSegmentedListContainerViewListDelegate { extension YHServiceListViewController: JXSegmentedListContainerViewListDelegate {
func listView() -> UIView { func listView() -> UIView {
return view return view
......
//
// YHServiceViewController.swift
// galaxy
//
// Created by EDY on 2024/4/8.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
import JXSegmentedView
class YHServiceViewController: YHBaseViewController, UIGestureRecognizerDelegate {
var defaltIndex: Int = 0
let arrItemTitles = ["香港身份","香港生活"]
var arrItemVCs : [YHBaseViewController] = []
var segmentedView : JXSegmentedView = JXSegmentedView(frame: CGRect(x: 0, y: k_Height_safeAreaInsetsTop(), width: KScreenWidth, height: 48))
lazy var segmentedDataSource: JXSegmentedBaseDataSource = {
let dataSource = JXSegmentedTitleDataSource()
dataSource.isTitleColorGradientEnabled = true
dataSource.titles = arrItemTitles
dataSource.titleNormalFont = UIFont.PFSC_M(ofSize: 15)
dataSource.titleNormalColor = .labelTextColor2
dataSource.titleSelectedFont = UIFont.PFSC_M(ofSize: 18)
dataSource.titleSelectedColor = .mainTextColor
dataSource.isItemSpacingAverageEnabled = false
dataSource.itemWidth = JXSegmentedViewAutomaticDimension
dataSource.itemSpacing = 90
return dataSource
}()
lazy var navBar: UIView = {
let bar = UIView()
let backBtn = UIButton()
backBtn.setImage(UIImage(named: "back_icon"), for: .normal)
backBtn.addTarget(self, action: #selector(didBackBtnClicked), for: .touchUpInside)
backBtn.YH_clickEdgeInsets = UIEdgeInsets(top: 20, left: 20, bottom: 20, right: 20)
bar.addSubview(backBtn)
backBtn.snp.makeConstraints { make in
make.width.height.equalTo(21)
make.centerY.equalToSuperview()
make.left.equalToSuperview().offset(16)
}
return bar
}()
//分类title 所对应的VC
lazy var listContainerView: JXSegmentedListContainerView! = {
return JXSegmentedListContainerView(dataSource: self, type: .scrollView)
}()
@objc func didBackBtnClicked() {
self.navigationController?.popViewController(animated: true)
}
override func viewDidLoad() {
super.viewDidLoad()
gk_navBarAlpha = 0
gk_navigationBar.isHidden = true
view.backgroundColor = .white
for i in 0..<arrItemTitles.count {
if i == 0 {
let vc = YHServiceListViewController()
arrItemVCs.append(vc)
} else {
let vc = YHServerHKLifeViewController()
arrItemVCs.append(vc)
}
}
//segmentedViewDataSource一定要通过属性强持有!!!!!!!!!
segmentedView.dataSource = segmentedDataSource
segmentedView.collectionView.backgroundColor = .white
view.addSubview(segmentedView)
segmentedView.listContainer = listContainerView
view.addSubview(listContainerView)
//分类Title
segmentedView.dataSource = segmentedDataSource
segmentedView.delegate = self
//配置指示器
let indicator = JXSegmentedIndicatorLineView()
indicator.indicatorWidth = 16
indicator.indicatorColor = UIColor.brandMainColor
segmentedView.indicators = [indicator]
segmentedView.backgroundColor = UIColor(red: 0.95, green: 0.95, blue: 0.95, alpha: 1)
view.addSubview(navBar)
navBar.snp.makeConstraints { make in
make.left.equalToSuperview()
// make.top.equalToSuperview().offset(k_Height_statusBar())
make.height.equalTo(k_Height_NavContentBar)
make.width.equalTo(47)
make.centerY.equalTo(segmentedView.snp.centerY)
}
segmentedView.defaultSelectedIndex = defaltIndex
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
//处于第一个item的时候,才允许屏幕边缘手势返回
navigationController?.interactivePopGestureRecognizer?.isEnabled = (segmentedView.selectedIndex == 0)
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
//离开页面的时候,需要恢复屏幕边缘手势,不能影响其他页面
navigationController?.interactivePopGestureRecognizer?.isEnabled = true
}
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
segmentedView.frame = CGRect(x: 0, y: k_Height_safeAreaInsetsTop(), width: view.bounds.size.width, height: 48)
listContainerView.frame = CGRect(x: 0, y: k_Height_safeAreaInsetsTop() + 48, width: view.bounds.size.width, height: view.bounds.size.height - 48 - k_Height_safeAreaInsetsTop())
}
}
extension YHServiceViewController: JXSegmentedViewDelegate {
func segmentedView(_ segmentedView: JXSegmentedView, didSelectedItemAt index: Int) {
navigationController?.interactivePopGestureRecognizer?.isEnabled = (segmentedView.selectedIndex == 0)
}
}
extension YHServiceViewController {
func jumpToItemIndex(itemIndex : Int) {
self.segmentedView.selectItemAt(index: itemIndex)
}
}
extension YHServiceViewController: JXSegmentedListContainerViewDataSource {
func numberOfLists(in listContainerView: JXSegmentedListContainerView) -> Int {
if let titleDataSource = segmentedView.dataSource as? JXSegmentedBaseDataSource {
return titleDataSource.dataSource.count
}
return 0
}
func listContainerView(_ listContainerView: JXSegmentedListContainerView, initListAt index: Int) -> JXSegmentedListContainerViewListDelegate {
return arrItemVCs[index] as! JXSegmentedListContainerViewListDelegate
}
}
...@@ -54,7 +54,7 @@ class YHAppVersionManager { ...@@ -54,7 +54,7 @@ class YHAppVersionManager {
func needShowAlertViewOfSuggestVersionUpdate() -> Bool { func needShowAlertViewOfSuggestVersionUpdate() -> Bool {
var isShow = false var isShow = false
if let configModel = YHConfigManager.shared.reqVM.configModel, configModel.suggest_updating == true { if let configModel = YHConfigManager.shared.reqVM.configModel, configModel.suggest_updating == true {
if let alertLatestVersion = UserDefaults.standard.object(forKey: kShowAlertOfSuggestLatestVersion) as? String { if let alertLatestVersion = UserDefaults.standard.object(forKey: YhConstant.kShowAlertOfSuggestLatestVersion) as? String {
if !configModel.max_version.isEmpty, configModel.max_version != alertLatestVersion { if !configModel.max_version.isEmpty, configModel.max_version != alertLatestVersion {
isShow = true isShow = true
} }
...@@ -81,7 +81,7 @@ class YHAppVersionManager { ...@@ -81,7 +81,7 @@ class YHAppVersionManager {
// 保存显示过的最新建议升级弹窗的app版本 // 保存显示过的最新建议升级弹窗的app版本
func saveShowLatestUpdateVersion () { func saveShowLatestUpdateVersion () {
if let configModel = YHConfigManager.shared.reqVM.configModel { if let configModel = YHConfigManager.shared.reqVM.configModel {
UserDefaults.standard.set(configModel.max_version, forKey: kShowAlertOfSuggestLatestVersion) UserDefaults.standard.set(configModel.max_version, forKey: YhConstant.kShowAlertOfSuggestLatestVersion)
UserDefaults.standard.synchronize() UserDefaults.standard.synchronize()
} }
} }
......
...@@ -162,10 +162,7 @@ func goToMessagePage() { ...@@ -162,10 +162,7 @@ func goToMessagePage() {
} }
// MARK: - 常量定义
class YhConstant { class YhConstant {
// MARK: - 登录信息 // MARK: - 登录信息
static let KLoginedInfoKey = "KLoginedInfoKey" static let KLoginedInfoKey = "KLoginedInfoKey"
...@@ -173,6 +170,9 @@ class YhConstant { ...@@ -173,6 +170,9 @@ class YhConstant {
//登录后的用户信息 //登录后的用户信息
static let kLoginUserInfo = "loginUserInfo" static let kLoginUserInfo = "loginUserInfo"
static let kShowAlertOfSuggestLatestVersion = "show_alert_suggest_latest_version"
} }
extension YhConstant { extension YhConstant {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment