Commit 36e54d2b authored by David黄金龙's avatar David黄金龙

添加 首页 信息预加载功能

parent 119719e9
......@@ -418,3 +418,20 @@ extension YHHomePageViewController {
}
}
}
extension YHHomePageViewController {
func scrollViewDidScroll(_ scrollView: UIScrollView) {
let itemNumber = viewModel.preloadItemIndex // 你想要检查的item的位置,例如10
// 首先,计算IndexPath
let section = 0 // 假设只有一个section
let itemIndex = itemNumber - 1 // UICollectionView的item索引从0开始
let indexPathToCheck = IndexPath(item: itemIndex, section: section)
// 然后,检查这个IndexPath是否在当前可见的item列表中
if homeCollectView.indexPathsForVisibleItems.contains(indexPathToCheck) {
printLog("第\(itemNumber)个item已经展示出来了")
loadMoreData()
} else {
printLog("\(itemNumber)目标不在范围内")
}
}
}
......@@ -15,11 +15,16 @@ class YHHomePageViewModel : YHBaseViewModel {
var banners: [YHBannerModel]?
var classify: [YHHomeClassifyModel]?
var hkList: [YHHKEventModel]?
//首页相关参数
private var curPageIndex : Int = 1
private var page_Size : Int = 50
var preloadItemIndex : Int = 25
private var isRequestHomeNewsDataFlag : Bool = false
var totalCount : Int = 0
var hasMoreForHomeNews : Bool = true
// 搜索
let searchPageSize: Int = 20
}
......@@ -50,6 +55,22 @@ extension YHHomePageViewModel {
firstPageFlag true - 首次 false - 更多
*/
func getHomeNewsList(firstPageFlag : Bool,callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
if firstPageFlag == false {
guard hasMoreForHomeNews == true else {
printLog("无更多数据可请求")
return
}
}
guard isRequestHomeNewsDataFlag == false else {
printLog("正在进行请求")
return
}
isRequestHomeNewsDataFlag = true
var params: [String : Any] = ["page": curPageIndex,
"page_size": page_Size]
if firstPageFlag {
......@@ -62,6 +83,8 @@ extension YHHomePageViewModel {
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Common.consultApi
let _ = YHNetRequest.getRequest(url: strUrl,params: params) { [weak self] json, code in
guard let self = self else { return }
self.isRequestHomeNewsDataFlag = false
//1. json字符串 转 对象
if json.code == 200 {
let dic = json.data
......@@ -85,6 +108,8 @@ extension YHHomePageViewModel {
self.arrHomeNewsData?.append(contentsOf: result.data)
}
if result.data.count >= page_Size {
if let count = self.arrHomeNewsData?.count {
if count >= self.totalCount {
......@@ -97,14 +122,15 @@ extension YHHomePageViewModel {
self.hasMoreForHomeNews = false
}
preloadItemIndex = 25 + (curPageIndex - 1) * page_Size
callBackBlock(true, nil)
} else {
// self.arrHomeNewsData = []
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(false, error)
}
} failBlock: { err in
// self.arrHomeNewsData = []
self.isRequestHomeNewsDataFlag = false
callBackBlock(false,err)
}
}
......
......@@ -98,6 +98,13 @@ class YHServiceCenterMainViewController: YHBaseViewController {
noDataView.clickShowBtnClickBlock = {
YHServiceOrderAlertView.show()
}
noDataView.isHidden = false
nameBgImageView.isHidden = true
segmentedView.isHidden = true
listContainerView.isHidden = true
orderButton.isHidden = true
}
override func viewWillAppear(_ animated: Bool) {
......
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