Ver Fonte

修复问题,简化代码

100Years há 3 meses atrás
pai
commit
2ed2675a54

+ 25 - 5
TSLiveWallpaper.xcodeproj/project.pbxproj

@@ -80,6 +80,7 @@
 		A84C239C2D1E3A4300B61B55 /* GPVideoClipperView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A84C23972D1E3A4300B61B55 /* GPVideoClipperView.swift */; };
 		A84C239D2D1E3A4300B61B55 /* GPVideoConfigMaker.swift in Sources */ = {isa = PBXBuildFile; fileRef = A84C23952D1E3A4300B61B55 /* GPVideoConfigMaker.swift */; };
 		A84C239F2D1E88CD00B61B55 /* TSFileManagerTool.swift in Sources */ = {isa = PBXBuildFile; fileRef = A84C239E2D1E88C500B61B55 /* TSFileManagerTool.swift */; };
+		A87833202D293EEC00E47F2C /* TSSimpleTableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A878331F2D293ED300E47F2C /* TSSimpleTableView.swift */; };
 		A8C4C01D2D2397B9003C46FC /* UIViewController+Ex.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8C4C01C2D2397B4003C46FC /* UIViewController+Ex.swift */; };
 		A8C4C0982D242154003C46FC /* LivePhoto.swift in Sources */ = {isa = PBXBuildFile; fileRef = A858EE162D1CF49B004B680F /* LivePhoto.swift */; };
 		A8C4C0A42D24218A003C46FC /* metadata.mov in Resources */ = {isa = PBXBuildFile; fileRef = A8C4C09E2D24218A003C46FC /* metadata.mov */; };
@@ -176,6 +177,7 @@
 		A84C23982D1E3A4300B61B55 /* GPVideoClipperController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GPVideoClipperController.swift; sourceTree = "<group>"; };
 		A84C239E2D1E88C500B61B55 /* TSFileManagerTool.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TSFileManagerTool.swift; sourceTree = "<group>"; };
 		A858EE162D1CF49B004B680F /* LivePhoto.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LivePhoto.swift; sourceTree = "<group>"; };
+		A878331F2D293ED300E47F2C /* TSSimpleTableView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TSSimpleTableView.swift; sourceTree = "<group>"; };
 		A8C4C01C2D2397B4003C46FC /* UIViewController+Ex.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIViewController+Ex.swift"; sourceTree = "<group>"; };
 		A8C4C0992D24218A003C46FC /* AVAssetExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AVAssetExtension.swift; sourceTree = "<group>"; };
 		A8C4C09A2D24218A003C46FC /* Converter4Image.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Converter4Image.swift; sourceTree = "<group>"; };
@@ -234,6 +236,7 @@
 		A81CA4662D156A8100A3AAC8 /* Common */ = {
 			isa = PBXGroup;
 			children = (
+				A878331D2D293E9300E47F2C /* View */,
 				A858EE182D1CF635004B680F /* ThirdParty */,
 				A81CA4882D15840F00A3AAC8 /* Tool */,
 				A81CA4752D15778800A3AAC8 /* Ex */,
@@ -272,7 +275,6 @@
 				A8C4C01C2D2397B4003C46FC /* UIViewController+Ex.swift */,
 				A8477C982D2291F100DF0B93 /* UserDefault+Ex.swift */,
 				A81F5B4E2D19673500740085 /* AVAsset+Ex.swift */,
-				A81F5B312D18FA2E00740085 /* Component */,
 				A81CA4B72D16A6B600A3AAC8 /* View+Ex.swift */,
 				A81CA4AF2D1694C200A3AAC8 /* Date+Ex.swift */,
 				A81CA4A52D16914C00A3AAC8 /* Dictionary+Ex.swift */,
@@ -423,7 +425,7 @@
 			path = Font;
 			sourceTree = "<group>";
 		};
-		A81F5B312D18FA2E00740085 /* Component */ = {
+		A81F5B312D18FA2E00740085 /* UICollectionView+Component */ = {
 			isa = PBXGroup;
 			children = (
 				A81F5B2A2D18F9C600740085 /* UICollectionView+More.swift */,
@@ -431,7 +433,7 @@
 				A81F5B2F2D18FA2E00740085 /* Component.swift */,
 				A81F5B302D18FA2E00740085 /* CommonSectionComponent.swift */,
 			);
-			path = Component;
+			path = "UICollectionView+Component";
 			sourceTree = "<group>";
 		};
 		A81F5B3A2D19085F00740085 /* TSRandomWallpaperView */ = {
@@ -556,6 +558,23 @@
 			path = ThirdParty;
 			sourceTree = "<group>";
 		};
+		A878331D2D293E9300E47F2C /* View */ = {
+			isa = PBXGroup;
+			children = (
+				A878331E2D293EB700E47F2C /* UITableView+TSItemModel */,
+				A81F5B312D18FA2E00740085 /* UICollectionView+Component */,
+			);
+			path = View;
+			sourceTree = "<group>";
+		};
+		A878331E2D293EB700E47F2C /* UITableView+TSItemModel */ = {
+			isa = PBXGroup;
+			children = (
+				A878331F2D293ED300E47F2C /* TSSimpleTableView.swift */,
+			);
+			path = "UITableView+TSItemModel";
+			sourceTree = "<group>";
+		};
 		A8C4C0A12D24218A003C46FC /* Util */ = {
 			isa = PBXGroup;
 			children = (
@@ -746,6 +765,7 @@
 				A8477C992D2291F800DF0B93 /* UserDefault+Ex.swift in Sources */,
 				A8C4C0EF2D27BFF7003C46FC /* TSNetworkTool.swift in Sources */,
 				A81CA46E2D156C7000A3AAC8 /* GlobalImports.swift in Sources */,
+				A87833202D293EEC00E47F2C /* TSSimpleTableView.swift in Sources */,
 				A81F5B4D2D1965F800740085 /* UIImage+Ex.swift in Sources */,
 				A81CA4832D157F5C00A3AAC8 /* UIImageView+Ex.swift in Sources */,
 				A81F5B322D18FA2E00740085 /* Component.swift in Sources */,
@@ -863,7 +883,7 @@
 				INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
 				INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen;
 				INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait;
-				IPHONEOS_DEPLOYMENT_TARGET = 14.0;
+				IPHONEOS_DEPLOYMENT_TARGET = 15.6;
 				LD_RUNPATH_SEARCH_PATHS = (
 					"$(inherited)",
 					"@executable_path/Frameworks",
@@ -902,7 +922,7 @@
 				INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
 				INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen;
 				INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait;
-				IPHONEOS_DEPLOYMENT_TARGET = 14.0;
+				IPHONEOS_DEPLOYMENT_TARGET = 15.6;
 				LD_RUNPATH_SEARCH_PATHS = (
 					"$(inherited)",
 					"@executable_path/Frameworks",

+ 2 - 2
TSLiveWallpaper/Business/TSMineVC/TSMineCell.swift

@@ -5,7 +5,7 @@
 //  Created by 100Years on 2024/12/20.
 //
 
-class TSMineCell: TSBaseTabViewCell {
+class TSMineCell: TSSimpleTableViewCell {
 
     lazy var leftLab: UILabel = {
         return UILabel.createLabel(font: .font(size: 16),textColor: .white)
@@ -19,7 +19,7 @@ class TSMineCell: TSBaseTabViewCell {
         return UIImageView.createRightArrow()
     }()
     
-    var itemModel:TSBasicItemModel = TSBasicItemModel(){
+    override var itemModel:TSBasicItemModel{
         didSet{
             leftLab.text = itemModel.leftTitle
             rightLab.text = itemModel.rightString

+ 13 - 49
TSLiveWallpaper/Business/TSMineVC/TSMineVC.swift

@@ -5,14 +5,8 @@
 //  Created by 100Years on 2024/12/20.
 //
 
-class TSMineVC: TSBaseVC, UITableViewDataSource, UITableViewDelegate {
+class TSMineVC: TSBaseVC {
 
-    lazy var tableView:UITableView = {
-        let tableView = UITableView()
-        tableView.initBaseTableView(reuseClass: ["TSMineCell"], isUseMJRefresh: false, delegate: self)
-        return tableView
-    }()
-    
     lazy var navBarView: TSBaseNavContentBarView = {
         let navBarView = TSBaseNavContentBarView()
         let titleImageView = UIImageView.createImageView(imageName: "nav_title_setting",contentMode: .scaleToFill)
@@ -22,10 +16,18 @@ class TSMineVC: TSBaseVC, UITableViewDataSource, UITableViewDelegate {
             make.centerY.equalToSuperview()
             make.left.equalTo(16)
         }
-
         return navBarView
     }()
     
+    
+    lazy var simpleTableView:TSSimpleTableView = {
+        let simpleTableView = TSSimpleTableView()
+        simpleTableView.reuseClass = ["TSMineCell"]
+        simpleTableView.dataArray = dataArray
+        return simpleTableView
+    }()
+    
+    
     lazy var dataArray:[TSBasicSectionModel] = {
         var dataArray = [TSBasicSectionModel]()
         let sectionModel = TSBasicSectionModel()
@@ -122,10 +124,7 @@ class TSMineVC: TSBaseVC, UITableViewDataSource, UITableViewDelegate {
             height: 80,
             rectCorner:.allCorners,
             tapBlock: {[weak self] itemModel, index, view  in
-//                guard let self = self else { return }
-//                let vc = TSAboutUsVC()
-//                vc.hidesBottomBarWhenPushed = true
-//                navigationController?.pushViewController(vc, animated: true)
+
             }))
         
         return dataArray
@@ -141,46 +140,11 @@ class TSMineVC: TSBaseVC, UITableViewDataSource, UITableViewDelegate {
             make.edges.equalToSuperview()
         }
         
-        contentView.addSubview(tableView)
-        tableView.snp.makeConstraints { make in
+        contentView.addSubview(simpleTableView.tableView)
+        simpleTableView.tableView.snp.makeConstraints { make in
             make.leading.equalTo(16)
             make.trailing.equalTo(-16)
             make.top.bottom.equalTo(0)
         }
     }
 }
-
-extension TSMineVC {
-    
-    func numberOfSections(in tableView: UITableView) -> Int {
-        return dataArray.count
-    }
-    
-    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
-        if let sectionModel = dataArray.safeObj(At: section){
-            return sectionModel.itemsArray.count
-        }
-        return 0
-    }
-    
-    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
-        if let sectionModel = dataArray.safeObj(At: indexPath.section),let itemModel = sectionModel.itemsArray.safeObj(At: indexPath.row){
-            return itemModel.height
-        }
-        return 0
-    }
-    
-    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
-        let cell = tableView.dequeueReusableCell(withIdentifier: "TSMineCell") as! TSMineCell
-        if let sectionModel = dataArray.safeObj(At: indexPath.section),let itemModel = sectionModel.itemsArray.safeObj(At: indexPath.row){
-            cell.itemModel = itemModel
-        }
-        return cell
-    }
-    
-    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
-        if let sectionModel = dataArray.safeObj(At: indexPath.section),let itemModel = sectionModel.itemsArray.safeObj(At: indexPath.row){
-            itemModel.tapBlock?(itemModel,indexPath.row,nil)
-        }
-    }
-}

+ 4 - 0
TSLiveWallpaper/Common/Ex/UITableView+Ex.swift

@@ -151,6 +151,10 @@ extension UITableView {
         self.delegate = delegate
         self.dataSource = delegate
 
+        registerCellClass(cellIds: cellIds)
+    }
+    
+    func registerCellClass(cellIds:[String]) {
         cellIds.forEach { cellId in
             if let cellClass = cellId.toClass() {
                 self.register(cellClass, forCellReuseIdentifier: cellId)

+ 0 - 1
TSLiveWallpaper/Common/Tool/TSCommonTool/TSCommonTool.swift

@@ -226,7 +226,6 @@ func kExecuteOnMainThread(_ block: @escaping () -> Void) {
 func kPresentModalVC(target:UIViewController,modelVC:UIViewController,style:UIModalPresentationStyle = .overFullScreen){
     let navi = TSBaseNavigationC(rootViewController: modelVC)
     navi.modalPresentationStyle = style
-    navi.isNavigationBarHidden = true
     target.present(navi, animated: true)
 }
 

+ 0 - 0
TSLiveWallpaper/Common/Ex/Component/CollectionViewComponent.swift → TSLiveWallpaper/Common/View/UICollectionView+Component/CollectionViewComponent.swift


+ 0 - 0
TSLiveWallpaper/Common/Ex/Component/CommonSectionComponent.swift → TSLiveWallpaper/Common/View/UICollectionView+Component/CommonSectionComponent.swift


+ 0 - 0
TSLiveWallpaper/Common/Ex/Component/Component.swift → TSLiveWallpaper/Common/View/UICollectionView+Component/Component.swift


+ 0 - 0
TSLiveWallpaper/Common/Ex/Component/UICollectionView+More.swift → TSLiveWallpaper/Common/View/UICollectionView+Component/UICollectionView+More.swift


+ 76 - 0
TSLiveWallpaper/Common/View/UITableView+TSItemModel/TSSimpleTableView.swift

@@ -0,0 +1,76 @@
+//
+//  TSTableView.swift
+//  TSLiveWallpaper
+//
+//  Created by 100Years on 2025/1/4.
+//
+
+
+
+class TSSimpleTableView : NSObject{
+
+    lazy var tableView:UITableView = {
+        let tableView = UITableView()
+        tableView.initBaseTableView(reuseClass: reuseClass, isUseMJRefresh: false, delegate: self)
+        return tableView
+    }()
+    
+    var reuseClass:[String] = [] {
+        didSet{
+            tableView.registerCellClass(cellIds: reuseClass)
+        }
+    }
+    
+    var dataArray:[TSBasicSectionModel] = [TSBasicSectionModel](){
+        didSet{
+            tableView.reloadData()
+        }
+    }
+
+}
+
+
+extension TSSimpleTableView : UITableViewDataSource, UITableViewDelegate {
+    
+    func numberOfSections(in tableView: UITableView) -> Int {
+        return dataArray.count
+    }
+    
+    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+        if let sectionModel = dataArray.safeObj(At: section){
+            return sectionModel.itemsArray.count
+        }
+        return 0
+    }
+    
+    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
+        if let sectionModel = dataArray.safeObj(At: indexPath.section),let itemModel = sectionModel.itemsArray.safeObj(At: indexPath.row){
+            return itemModel.height
+        }
+        return 0
+    }
+    
+    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+        let cell = tableView.dequeueReusableCell(withIdentifier: "TSMineCell")!
+        
+        if let cell = cell as? TSSimpleTableViewCell {
+            if let sectionModel = dataArray.safeObj(At: indexPath.section),let itemModel = sectionModel.itemsArray.safeObj(At: indexPath.row){
+                cell.itemModel = itemModel
+            }
+        }
+        
+        return cell
+    }
+    
+    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
+        if let sectionModel = dataArray.safeObj(At: indexPath.section),let itemModel = sectionModel.itemsArray.safeObj(At: indexPath.row){
+            itemModel.tapBlock?(itemModel,indexPath.row,nil)
+        }
+    }
+}
+
+
+class TSSimpleTableViewCell: TSBaseTabViewCell {
+    var itemModel:TSBasicItemModel = TSBasicItemModel()
+ 
+}

+ 76 - 0
TSLiveWallpaper/Common/View/UITableView+TSItemModel/TSTableView.swift

@@ -0,0 +1,76 @@
+//
+//  TSTableView.swift
+//  TSLiveWallpaper
+//
+//  Created by 100Years on 2025/1/4.
+//
+
+
+
+class TSSimpleTableView : NSObject{
+
+    lazy var tableView:UITableView = {
+        let tableView = UITableView()
+        tableView.initBaseTableView(reuseClass: reuseClass, isUseMJRefresh: false, delegate: self)
+        return tableView
+    }()
+    
+    var reuseClass:[String] = [] {
+        didSet{
+            tableView.registerCellClass(cellIds: reuseClass)
+        }
+    }
+    
+    var dataArray:[TSBasicSectionModel] = [TSBasicSectionModel](){
+        didSet{
+            tableView.reloadData()
+        }
+    }
+
+}
+
+
+extension TSSimpleTableView : UITableViewDataSource, UITableViewDelegate {
+    
+    func numberOfSections(in tableView: UITableView) -> Int {
+        return dataArray.count
+    }
+    
+    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+        if let sectionModel = dataArray.safeObj(At: section){
+            return sectionModel.itemsArray.count
+        }
+        return 0
+    }
+    
+    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
+        if let sectionModel = dataArray.safeObj(At: indexPath.section),let itemModel = sectionModel.itemsArray.safeObj(At: indexPath.row){
+            return itemModel.height
+        }
+        return 0
+    }
+    
+    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+        let cell = tableView.dequeueReusableCell(withIdentifier: "TSMineCell")!
+        
+        if let cell = cell as? TSSimpleTableViewCell {
+            if let sectionModel = dataArray.safeObj(At: indexPath.section),let itemModel = sectionModel.itemsArray.safeObj(At: indexPath.row){
+                cell.itemModel = itemModel
+            }
+        }
+        
+        return cell
+    }
+    
+    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
+        if let sectionModel = dataArray.safeObj(At: indexPath.section),let itemModel = sectionModel.itemsArray.safeObj(At: indexPath.row){
+            itemModel.tapBlock?(itemModel,indexPath.row,nil)
+        }
+    }
+}
+
+
+class TSSimpleTableViewCell: TSBaseTabViewCell {
+    var itemModel:TSBasicItemModel = TSBasicItemModel()
+ 
+}