From 3d8ce4866799bea7e66699acdeb86b60b0ba033c Mon Sep 17 00:00:00 2001 From: 无故事王国 <841720330@qq.com> Date: 星期一, 03 六月 2024 19:51:06 +0800 Subject: [PATCH] add --- DolphinEnglishLearnStudent/Moudle/Home/View/AwardListView.swift | 28 +++++++++++++++++++++++++--- 1 files changed, 25 insertions(+), 3 deletions(-) diff --git a/DolphinEnglishLearnStudent/Moudle/Home/View/AwardListView.swift b/DolphinEnglishLearnStudent/Moudle/Home/View/AwardListView.swift index 3086483..62af126 100644 --- a/DolphinEnglishLearnStudent/Moudle/Home/View/AwardListView.swift +++ b/DolphinEnglishLearnStudent/Moudle/Home/View/AwardListView.swift @@ -11,6 +11,8 @@ @IBOutlet weak var collectionView: UICollectionView! @IBOutlet weak var view_container: UIView! + private var items = [RecommendModel]() + private var clickClouse:((RecommendModel)->Void)! override func awakeFromNib() { super.awakeFromNib() self.alpha = 0 @@ -22,8 +24,13 @@ layoutIfNeeded() } - static func show(clouse:@escaping ()->Void){ + static func show(items:[RecommendModel],clouse:@escaping (RecommendModel)->Void){ + + if items.count == 0{return} + let awardListView = AwardListView.jq_loadNibView() + awardListView.items = items + awardListView.clickClouse = clouse sceneDelegate?.window?.addSubview(awardListView) awardListView.frame = sceneDelegate?.window?.frame ?? .zero @@ -31,6 +38,8 @@ awardListView.alpha = 1 awardListView.view_container.transform = .init(translationX: 1.0, y: 1.0) awardListView.layoutIfNeeded() + }completion: { _ in + awardListView.collectionView.reloadData() } } @@ -45,23 +54,36 @@ } extension AwardListView:UICollectionViewDelegate{ + func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { + + UIView.animate(withDuration: 0.4) { + self.alpha = 0 + self.view_container.transform = .init(scaleX: 0.1, y: 0.1) + } completion: { _ in + self.removeFromSuperview() + let item = self.items[indexPath.row] + self.clickClouse(item) + } + } } extension AwardListView:UICollectionViewDataSource{ func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { + let item = items[indexPath.row] let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "_AwardListCCell", for: indexPath) as! AwardListCCell + cell.setModel(item) return cell } func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { - return 6 + return items.count } } extension AwardListView:UICollectionViewDelegateFlowLayout{ func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { - let w = (self.jq_width - 74 - 190) / 3.0 + let w = (JQ_ScreenW - 37 * 2 - 144 * 2 - 44 * 2) / 3.0 return CGSize(width: w, height: w * 1.552) } -- Gitblit v1.7.1