Commit ba9cfe93 authored by David黄金龙's avatar David黄金龙

首页的 获取更多 获取首页逻辑

parent 232ca251
......@@ -32,7 +32,7 @@ class YHHomePageViewController: YHBaseViewController {
collectinoView.register(YHHomeCollectionViewCell.self, forCellWithReuseIdentifier:YHHomeCollectionViewCell.cellReuseIdentifier)
collectinoView.delegate = self
collectinoView.dataSource = self
collectinoView.bounces = false
// collectinoView.bounces = false
collectinoView.translatesAutoresizingMaskIntoConstraints = false
collectinoView.alwaysBounceVertical = true
return collectinoView
......@@ -55,30 +55,46 @@ class YHHomePageViewController: YHBaseViewController {
let view = YHHomeHeadView()
return view
}()
}
private extension YHHomePageViewController {
@objc func didSearchBarClicked() {
let vc = YHSearchInfomationVC()
self.navigationController?.pushViewController(vc)
}
func getData() {
viewModel.getHomeNewsList {[weak self] success, error in
loadFirstData()
viewModel.getHomeBanner(0) {[weak self] success, error in
guard let self = self else { return }
self.homeHeaderView.homeBannerView.dataArr = self.viewModel.banners ?? []
}
}
func loadMoreData() {
viewModel.getHomeNewsList(firstPageFlag : false) {[weak self] success, error in
guard let self = self else { return }
homeCollectView.es.stopLoadingMore()
self.homeCollectView.reloadData()
}
viewModel.getHomeBanner(0) {[weak self] success, error in
}
func loadFirstData() {
viewModel.getHomeNewsList(firstPageFlag : true) {[weak self] success, error in
guard let self = self else { return }
self.homeHeaderView.homeBannerView.dataArr = self.viewModel.banners ?? []
homeCollectView.es.stopPullToRefresh()
self.homeCollectView.reloadData()
}
}
}
private extension YHHomePageViewController {
func setupUI() {
gk_navigationBar.isHidden = true
view.backgroundColor = .white
NotificationCenter.default.addObserver(self, selector: #selector(homepageRefresh), name:YhConstant.YhNotification.refreshHomePageNotifiction, object: nil)
view.addSubview(searchView)
searchView.snp.makeConstraints { make in
make.top.equalTo(k_Height_safeAreaInsetsTop() + 6)
......@@ -97,15 +113,22 @@ private extension YHHomePageViewController {
homeCollectView.addSubview(homeHeaderView)
homeCollectView.contentInset = UIEdgeInsets(top: YHHomeHeadView.viewH, left: 0, bottom: 20, right: 0)
let tmpHeadView = homeCollectView.es.addPullToRefresh {
self.loadFirstData()
}
var r = tmpHeadView.frame
r.origin.y = r.origin.y - YHHomeHeadView.viewH
tmpHeadView.frame = r
homeCollectView.es.addInfiniteScrolling {
self.loadMoreData()
}
homeCollectView.reloadData()
}
func loadFirstItem() {
@objc func homepageRefresh() {
loadFirstData()
}
}
extension YHHomePageViewController: UICollectionViewDelegate, UICollectionViewDataSource {
......
......@@ -10,8 +10,7 @@ import UIKit
class YHHomePageViewModel : YHBaseViewModel {
//数据源
var configModel:YHConfigModel?
var configModel:YHConfigModel?//app相关配置
var arrHomeNewsData: [YHHomeListModel]?
var banners: [YHBannerModel]?
var classify: [YHHomeClassifyModel]?
......@@ -19,6 +18,7 @@ class YHHomePageViewModel : YHBaseViewModel {
//首页相关参数
private var curPageIndex : Int = 1
private var page_Size : Int = 10
private var totalCount : Int = 0
private var hasMoreForHomeNews : Bool = true
}
......@@ -44,9 +44,20 @@ extension YHHomePageViewModel {
}
}
func getHomeNewsList(callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
let params: [String : Any] = ["page": curPageIndex,
/*
firstPageFlag true - 首页 false - 更多
*/
func getHomeNewsList(firstPageFlag : Bool,callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
var params: [String : Any] = ["page": curPageIndex,
"page_size": page_Size]
if firstPageFlag {
params = ["page": curPageIndex,
"page_size": page_Size]
} else {
params = ["page": curPageIndex + 1,
"page_size": page_Size]
}
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Common.consult
let _ = YHNetRequest.getRequest(url: strUrl,params: params) { [weak self] json, code in
guard let self = self else { return }
......@@ -62,7 +73,22 @@ extension YHHomePageViewModel {
for item in result.data {
item.calHeightParam()
}
self.arrHomeNewsData = result.data
if firstPageFlag {
self.totalCount = result.total
self.arrHomeNewsData = result.data
} else {
self.arrHomeNewsData?.append(contentsOf: result.data)
}
if let count = self.arrHomeNewsData?.count {
if count == self.totalCount {
self.hasMoreForHomeNews = false
} else {
self.hasMoreForHomeNews = true
}
}
callBackBlock(true, nil)
} else {
self.arrHomeNewsData = []
......
......@@ -49,13 +49,6 @@ class YHHomeCollectionViewCell: UICollectionViewCell {
return imageV
}()
lazy var heartImageView:UIImageView = {
let imageV = UIImageView(image: UIImage(named: "home_grey_heart"))
imageV.contentMode = .scaleAspectFill
return imageV
}()
lazy var heartImageViewBtn : UIButton = {
let btn : UIButton = UIButton(type: .custom)
btn.setImage(UIImage(named: "home_grey_heart"), for: .normal)
......@@ -143,14 +136,6 @@ class YHHomeCollectionViewCell: UICollectionViewCell {
make.bottom.equalTo(-36)
}
numLable.text = listModel.collect_count.string
// if listModel.is_like {
// headImageView.image = UIImage(named: "home_red_heart")
// } else {
// headImageView.image = UIImage(named: "home_grey_heart")
// }
heartImageViewBtn.isSelected = listModel.is_like
}
......@@ -177,6 +162,8 @@ class YHHomeCollectionViewCell: UICollectionViewCell {
}
}
}
NotificationCenter.default.post(name:YhConstant.YhNotification.refreshHomePageNotifiction, object: nil)
} else {
let vc = UINavigationController(rootVC: YHPhoneLoginViewController())
vc.modalPresentationStyle = .custom
......
......@@ -49,9 +49,6 @@ class YHServiceTableFootView: UIView {
myCollectView.snp.makeConstraints { make in
make.top.left.right.bottom.equalToSuperview()
}
// self.myCollectView.es.addInfiniteScrolling {
// self.loadFakeData()
// }
}
}
......
......@@ -159,8 +159,10 @@ extension YhConstant {
//退出成功
public static let didLogoutSuccessNotifiction = Notification.Name(rawValue: "com.usleep.health.logout.success")
//token 过期
public static let tokenInvalidateNotifiction = Notification.Name(rawValue: "com.usleep.health.token.invalidate")
//首页刷新通知
public static let refreshHomePageNotifiction = Notification.Name(rawValue: "com.yinhe.homePage.refresh")
}
}
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