BrokerDriver.xcodeproj/project.pbxproj
@@ -18,6 +18,16 @@ 138DA4D829F6305600A71FE7 /* Colors+Exception.swift in Sources */ = {isa = PBXBuildFile; fileRef = 138DA4D029F6305600A71FE7 /* Colors+Exception.swift */; }; 138DA4D929F6305600A71FE7 /* LoginVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 138DA4D329F6305600A71FE7 /* LoginVC.swift */; }; 138DA4DA29F6305600A71FE7 /* LoginVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 138DA4D429F6305600A71FE7 /* LoginVC.xib */; }; 13941CDF29F6901D00AB569F /* BaseTableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13941CDE29F6901D00AB569F /* BaseTableView.swift */; }; 139F0F7329F65497007D9EA4 /* ForgotPwdVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 139F0F7129F65497007D9EA4 /* ForgotPwdVC.swift */; }; 139F0F7429F65497007D9EA4 /* ForgotPwdVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 139F0F7229F65497007D9EA4 /* ForgotPwdVC.xib */; }; 139F0F7829F6589F007D9EA4 /* HomeVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 139F0F7729F6589F007D9EA4 /* HomeVC.swift */; }; 139F0F7A29F66EB7007D9EA4 /* HomeHeaderVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 139F0F7929F66EB7007D9EA4 /* HomeHeaderVC.swift */; }; 139F0F7C29F67091007D9EA4 /* HomeMenuVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 139F0F7B29F67091007D9EA4 /* HomeMenuVC.swift */; }; 139F0F7E29F6713A007D9EA4 /* HomePageVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 139F0F7D29F6713A007D9EA4 /* HomePageVC.swift */; }; 139F0F8229F689F9007D9EA4 /* HomeItemTCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 139F0F8029F689F9007D9EA4 /* HomeItemTCell.swift */; }; 139F0F8329F689F9007D9EA4 /* HomeItemTCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 139F0F8129F689F9007D9EA4 /* HomeItemTCell.xib */; }; 139F0F8529F68B90007D9EA4 /* BaseTCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 139F0F8429F68B90007D9EA4 /* BaseTCell.swift */; }; 656E15B4DAA88146F5E490CA /* Pods_BrokerDriver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8E99D0F4A48F512570D96537 /* Pods_BrokerDriver.framework */; }; /* End PBXBuildFile section */ @@ -35,6 +45,16 @@ 138DA4D029F6305600A71FE7 /* Colors+Exception.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Colors+Exception.swift"; sourceTree = "<group>"; }; 138DA4D329F6305600A71FE7 /* LoginVC.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoginVC.swift; sourceTree = "<group>"; }; 138DA4D429F6305600A71FE7 /* LoginVC.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LoginVC.xib; sourceTree = "<group>"; }; 13941CDE29F6901D00AB569F /* BaseTableView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BaseTableView.swift; sourceTree = "<group>"; }; 139F0F7129F65497007D9EA4 /* ForgotPwdVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ForgotPwdVC.swift; sourceTree = "<group>"; }; 139F0F7229F65497007D9EA4 /* ForgotPwdVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ForgotPwdVC.xib; sourceTree = "<group>"; }; 139F0F7729F6589F007D9EA4 /* HomeVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeVC.swift; sourceTree = "<group>"; }; 139F0F7929F66EB7007D9EA4 /* HomeHeaderVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeHeaderVC.swift; sourceTree = "<group>"; }; 139F0F7B29F67091007D9EA4 /* HomeMenuVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeMenuVC.swift; sourceTree = "<group>"; }; 139F0F7D29F6713A007D9EA4 /* HomePageVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomePageVC.swift; sourceTree = "<group>"; }; 139F0F8029F689F9007D9EA4 /* HomeItemTCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeItemTCell.swift; sourceTree = "<group>"; }; 139F0F8129F689F9007D9EA4 /* HomeItemTCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = HomeItemTCell.xib; sourceTree = "<group>"; }; 139F0F8429F68B90007D9EA4 /* BaseTCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BaseTCell.swift; sourceTree = "<group>"; }; 33DCC1D819EF0A04257FB4A8 /* Pods-BrokerDriver.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BrokerDriver.release.xcconfig"; path = "Target Support Files/Pods-BrokerDriver/Pods-BrokerDriver.release.xcconfig"; sourceTree = "<group>"; }; 36C7396011423ADA377B2856 /* Pods-BrokerDriver.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BrokerDriver.debug.xcconfig"; path = "Target Support Files/Pods-BrokerDriver/Pods-BrokerDriver.debug.xcconfig"; sourceTree = "<group>"; }; 8E99D0F4A48F512570D96537 /* Pods_BrokerDriver.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_BrokerDriver.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -73,16 +93,17 @@ 138DA4B629F62F9500A71FE7 /* BrokerDriver */ = { isa = PBXGroup; children = ( 138DA4B729F62F9500A71FE7 /* AppDelegate.swift */, 138DA4C029F62F9700A71FE7 /* Assets.xcassets */, 138DA4CC29F6305600A71FE7 /* Base */, 138DA4CB29F6305600A71FE7 /* Def.swift */, 138DA4CF29F6305600A71FE7 /* Exception */, 138DA4D129F6305600A71FE7 /* Login */, 138DA4B729F62F9500A71FE7 /* AppDelegate.swift */, 138DA4B929F62F9500A71FE7 /* SceneDelegate.swift */, 138DA4BD29F62F9500A71FE7 /* Main.storyboard */, 138DA4C029F62F9700A71FE7 /* Assets.xcassets */, 138DA4C229F62F9700A71FE7 /* LaunchScreen.storyboard */, 139F0F7529F65880007D9EA4 /* Home */, 138DA4C529F62F9700A71FE7 /* Info.plist */, 138DA4C229F62F9700A71FE7 /* LaunchScreen.storyboard */, 138DA4D129F6305600A71FE7 /* Login */, 138DA4BD29F62F9500A71FE7 /* Main.storyboard */, 138DA4B929F62F9500A71FE7 /* SceneDelegate.swift */, ); path = BrokerDriver; sourceTree = "<group>"; @@ -92,6 +113,8 @@ children = ( 138DA4CD29F6305600A71FE7 /* BaseViewController.swift */, 138DA4CE29F6305600A71FE7 /* BaseNavigationController.swift */, 139F0F8429F68B90007D9EA4 /* BaseTCell.swift */, 13941CDE29F6901D00AB569F /* BaseTableView.swift */, ); path = Base; sourceTree = "<group>"; @@ -117,8 +140,39 @@ children = ( 138DA4D329F6305600A71FE7 /* LoginVC.swift */, 138DA4D429F6305600A71FE7 /* LoginVC.xib */, 139F0F7129F65497007D9EA4 /* ForgotPwdVC.swift */, 139F0F7229F65497007D9EA4 /* ForgotPwdVC.xib */, ); path = VC; sourceTree = "<group>"; }; 139F0F7529F65880007D9EA4 /* Home */ = { isa = PBXGroup; children = ( 139F0F7F29F689DE007D9EA4 /* TCell */, 139F0F7629F65886007D9EA4 /* VC */, ); path = Home; sourceTree = "<group>"; }; 139F0F7629F65886007D9EA4 /* VC */ = { isa = PBXGroup; children = ( 139F0F7729F6589F007D9EA4 /* HomeVC.swift */, 139F0F7929F66EB7007D9EA4 /* HomeHeaderVC.swift */, 139F0F7B29F67091007D9EA4 /* HomeMenuVC.swift */, 139F0F7D29F6713A007D9EA4 /* HomePageVC.swift */, ); path = VC; sourceTree = "<group>"; }; 139F0F7F29F689DE007D9EA4 /* TCell */ = { isa = PBXGroup; children = ( 139F0F8029F689F9007D9EA4 /* HomeItemTCell.swift */, 139F0F8129F689F9007D9EA4 /* HomeItemTCell.xib */, ); path = TCell; sourceTree = "<group>"; }; 489CFEB74E41CC03BD0818E7 /* Pods */ = { @@ -198,9 +252,11 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( 139F0F8329F689F9007D9EA4 /* HomeItemTCell.xib in Resources */, 138DA4C429F62F9700A71FE7 /* LaunchScreen.storyboard in Resources */, 138DA4C129F62F9700A71FE7 /* Assets.xcassets in Resources */, 138DA4DA29F6305600A71FE7 /* LoginVC.xib in Resources */, 139F0F7429F65497007D9EA4 /* ForgotPwdVC.xib in Resources */, 138DA4BF29F62F9500A71FE7 /* Main.storyboard in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -255,9 +311,17 @@ buildActionMask = 2147483647; files = ( 138DA4B829F62F9500A71FE7 /* AppDelegate.swift in Sources */, 139F0F7329F65497007D9EA4 /* ForgotPwdVC.swift in Sources */, 139F0F7E29F6713A007D9EA4 /* HomePageVC.swift in Sources */, 138DA4D829F6305600A71FE7 /* Colors+Exception.swift in Sources */, 13941CDF29F6901D00AB569F /* BaseTableView.swift in Sources */, 139F0F7829F6589F007D9EA4 /* HomeVC.swift in Sources */, 139F0F7A29F66EB7007D9EA4 /* HomeHeaderVC.swift in Sources */, 138DA4D929F6305600A71FE7 /* LoginVC.swift in Sources */, 139F0F8529F68B90007D9EA4 /* BaseTCell.swift in Sources */, 138DA4D629F6305600A71FE7 /* BaseViewController.swift in Sources */, 139F0F7C29F67091007D9EA4 /* HomeMenuVC.swift in Sources */, 139F0F8229F689F9007D9EA4 /* HomeItemTCell.swift in Sources */, 138DA4BA29F62F9500A71FE7 /* SceneDelegate.swift in Sources */, 138DA4D729F6305600A71FE7 /* BaseNavigationController.swift in Sources */, 138DA4D529F6305600A71FE7 /* Def.swift in Sources */, BrokerDriver/Assets.xcassets/Bg/Contents.jsoncopy from BrokerDriver/Assets.xcassets/icon/Contents.json copy to BrokerDriver/Assets.xcassets/Bg/Contents.json
BrokerDriver/Assets.xcassets/Bg/bg_home.imageset/Contents.json
New file @@ -0,0 +1,22 @@ { "images" : [ { "idiom" : "universal", "scale" : "1x" }, { "filename" : "bg@2x.png", "idiom" : "universal", "scale" : "2x" }, { "filename" : "bg@3x.png", "idiom" : "universal", "scale" : "3x" } ], "info" : { "author" : "xcode", "version" : 1 } } BrokerDriver/Assets.xcassets/Bg/bg_home.imageset/bg@2x.png
BrokerDriver/Assets.xcassets/Bg/bg_home.imageset/bg@3x.png
BrokerDriver/Assets.xcassets/Btn/Contents.jsoncopy from BrokerDriver/Assets.xcassets/icon/Contents.json copy to BrokerDriver/Assets.xcassets/Btn/Contents.json
BrokerDriver/Assets.xcassets/Btn/btn_back.imageset/Contents.json
New file @@ -0,0 +1,22 @@ { "images" : [ { "idiom" : "universal", "scale" : "1x" }, { "filename" : "btn_back@2x.png", "idiom" : "universal", "scale" : "2x" }, { "filename" : "btn_back@3x.png", "idiom" : "universal", "scale" : "3x" } ], "info" : { "author" : "xcode", "version" : 1 } } BrokerDriver/Assets.xcassets/Btn/btn_back.imageset/btn_back@2x.png
BrokerDriver/Assets.xcassets/Btn/btn_back.imageset/btn_back@3x.png
BrokerDriver/Assets.xcassets/Btn/btn_dial.imageset/Contents.json
New file @@ -0,0 +1,22 @@ { "images" : [ { "idiom" : "universal", "scale" : "1x" }, { "filename" : "btn_dial@2x.png", "idiom" : "universal", "scale" : "2x" }, { "filename" : "btn_dial@3x.png", "idiom" : "universal", "scale" : "3x" } ], "info" : { "author" : "xcode", "version" : 1 } } BrokerDriver/Assets.xcassets/Btn/btn_dial.imageset/btn_dial@2x.png
BrokerDriver/Assets.xcassets/Btn/btn_dial.imageset/btn_dial@3x.png
BrokerDriver/Assets.xcassets/Btn/btn_pickuptime.imageset/Contents.json
New file @@ -0,0 +1,22 @@ { "images" : [ { "idiom" : "universal", "scale" : "1x" }, { "filename" : "btn_pickuptime@2x.png", "idiom" : "universal", "scale" : "2x" }, { "filename" : "btn_pickuptime@3x.png", "idiom" : "universal", "scale" : "3x" } ], "info" : { "author" : "xcode", "version" : 1 } } BrokerDriver/Assets.xcassets/Btn/btn_pickuptime.imageset/btn_pickuptime@2x.png
BrokerDriver/Assets.xcassets/Btn/btn_pickuptime.imageset/btn_pickuptime@3x.png
BrokerDriver/Assets.xcassets/Btn/btn_search.imageset/Contents.json
New file @@ -0,0 +1,22 @@ { "images" : [ { "idiom" : "universal", "scale" : "1x" }, { "filename" : "btn_search@2x.png", "idiom" : "universal", "scale" : "2x" }, { "filename" : "btn_search@3x.png", "idiom" : "universal", "scale" : "3x" } ], "info" : { "author" : "xcode", "version" : 1 } } BrokerDriver/Assets.xcassets/Btn/btn_search.imageset/btn_search@2x.png
BrokerDriver/Assets.xcassets/Btn/btn_search.imageset/btn_search@3x.png
BrokerDriver/Assets.xcassets/Colors/Contents.jsoncopy from BrokerDriver/Assets.xcassets/icon/Contents.json copy to BrokerDriver/Assets.xcassets/Colors/Contents.json
BrokerDriver/Assets.xcassets/Colors/ThemeColor.colorset/Contents.json
New file @@ -0,0 +1,20 @@ { "colors" : [ { "color" : { "color-space" : "srgb", "components" : { "alpha" : "1.000", "blue" : "0.016", "green" : "0.827", "red" : "0.992" } }, "idiom" : "universal" } ], "info" : { "author" : "xcode", "version" : 1 } } BrokerDriver/Assets.xcassets/Icon/Contents.json
BrokerDriver/Assets.xcassets/Icon/icon_logo.imageset/Contents.json
BrokerDriver/Assets.xcassets/Icon/icon_logo.imageset/icon_logo@2x.pngBrokerDriver/Assets.xcassets/Icon/icon_logo.imageset/icon_logo@3x.pngBrokerDriver/Assets.xcassets/Icon/icon_miniLogo.imageset/Contents.json
New file @@ -0,0 +1,22 @@ { "images" : [ { "idiom" : "universal", "scale" : "1x" }, { "filename" : "icon_miniLogo@2x.png", "idiom" : "universal", "scale" : "2x" }, { "filename" : "icon_miniLogo@3x.png", "idiom" : "universal", "scale" : "3x" } ], "info" : { "author" : "xcode", "version" : 1 } } BrokerDriver/Assets.xcassets/Icon/icon_miniLogo.imageset/icon_miniLogo@2x.png
BrokerDriver/Assets.xcassets/Icon/icon_miniLogo.imageset/icon_miniLogo@3x.png
BrokerDriver/Assets.xcassets/Icon/icon_profile.imageset/Contents.json
New file @@ -0,0 +1,22 @@ { "images" : [ { "idiom" : "universal", "scale" : "1x" }, { "filename" : "icon_profile@2x.png", "idiom" : "universal", "scale" : "2x" }, { "filename" : "icon_profile@3x.png", "idiom" : "universal", "scale" : "3x" } ], "info" : { "author" : "xcode", "version" : 1 } } BrokerDriver/Assets.xcassets/Icon/icon_profile.imageset/icon_profile@2x.png
BrokerDriver/Assets.xcassets/Icon/icon_profile.imageset/icon_profile@3x.png
BrokerDriver/Base/BaseNavigationController.swift
@@ -17,20 +17,31 @@ self.navigationBar.titleTextAttributes = [.font:UIFont.systemFont(ofSize: 18, weight: .medium), .foregroundColor:UIColor.black] self.navigationBar.tintColor = UIColor.black self.navigationBar.shadowImage = UIImage() self.navigationBar.isTranslucent = false self.navigationBar.isTranslucent = true self.delegate = self self.popDelegate = self.interactivePopGestureRecognizer?.delegate if #available(iOS 15.0, *) { let bar = UINavigationBarAppearance() bar.configureWithOpaqueBackground() //消除15的黑框 bar.backgroundEffect = nil bar.shadowColor = nil bar.titleTextAttributes = [.foregroundColor:Def_NavFontColor,.font:Def_NavFont] bar.backgroundColor = UIColor.white navigationBar.scrollEdgeAppearance = bar //顶部透明 navigationBar.standardAppearance = bar let scrollBar = UINavigationBarAppearance() scrollBar.configureWithOpaqueBackground() scrollBar.backgroundEffect = nil scrollBar.shadowColor = nil scrollBar.titleTextAttributes = [.foregroundColor:Def_NavFontColor,.font:Def_NavFont] scrollBar.backgroundColor = UIColor.clear let standardBar = UINavigationBarAppearance() standardBar.configureWithOpaqueBackground() standardBar.backgroundEffect = nil standardBar.shadowColor = nil standardBar.titleTextAttributes = [.foregroundColor:Def_NavFontColor,.font:Def_NavFont] standardBar.backgroundColor = UIColor.clear navigationBar.scrollEdgeAppearance = scrollBar //顶部透明 navigationBar.standardAppearance = standardBar }else { navigationBar.titleTextAttributes = [.foregroundColor:Def_NavFontColor,.font:Def_NavFont] } BrokerDriver/Base/BaseTCell.swift
New file @@ -0,0 +1,16 @@ // // BaseTCell.swift // BrokerDriver // // Created by 无故事王国 on 2023/4/24. // import UIKit class BaseTCell: UITableViewCell { override func awakeFromNib() { super.awakeFromNib() selectionStyle = .none } } BrokerDriver/Base/BaseTableView.swift
New file @@ -0,0 +1,30 @@ // // BaseTableView.swift // BrokerDriver // // Created by 无故事王国 on 2023/4/24. // import UIKit import EmptyDataSet_Swift class BaseTableView:UITableView{ public func jq_setEmptyView( _ noticeStr:String? = nil,image:UIImage? = UIImage(named: "icon_empty"),foregroundColor:UIColor = UIColor.gray.withAlphaComponent(0.5),clouse:((EmptyDataSetView)->Void)? = nil) { self.separatorStyle = .none self.emptyDataSetView { (emptyDataSetView) in emptyDataSetView.titleLabelString(NSAttributedString.init(string: (noticeStr != nil) ? noticeStr! : "Not data", attributes: [.font:UIFont.systemFont(ofSize: 16), .foregroundColor:foregroundColor as Any])) .image(image) .dataSetBackgroundColor(UIColor.white) .verticalOffset(0) .verticalSpace(15) .shouldDisplay(true) .shouldFadeIn(true) .isTouchAllowed(true) .isScrollAllowed(true) .didTapContentView { } clouse?(emptyDataSetView) } } } BrokerDriver/Def.swift
@@ -1,16 +1,31 @@ // // Def.swift // BrokerDriver // // Created by 无故事王国 on 2023/4/24. // // // Def.swift // BrokerDriver // // Created by 无故事王国 on 2023/4/24. // import Foundation import UIKit @_exported import JQTools @_exported import QMUIKit // MARK: -- Shorthand // MARK: -- Shorthand let app = UIApplication.shared.delegate as! AppDelegate var screnDelegate:SceneDelegate? = { var uiScreen:UIScene? UIApplication.shared.connectedScenes.forEach { scenes in uiScreen = scenes } return (uiScreen?.delegate as? SceneDelegate) }() var topSafeHeight:Double{ return JQ_currentNavigationController().navigationBar.frame.height + UIApplication.shared.statusBarFrame.height } let notiCenter = NotificationCenter.default func LogSuccess(_ items:Any...,separator:String=" ",file:String=#file,function:String=#function,line:Int=#line){ @@ -35,10 +50,11 @@ } // MARK: -- Front // MARK: -- Front let Def_NavFont:UIFont = UIFont.systemFont(ofSize: 19, weight: .bold) // MARK: -- Color // MARK: -- Color let Def_NavFontColor:UIColor = .color(light: .color("#333333"), dark: .color("#333333")) let Def_backgroundColor:UIColor = .color(light: .white, dark: .white) let Def_ThemeColor:UIColor = .color(light: .color("#FED703"), dark: .color("#FED703")) BrokerDriver/Home/TCell/HomeItemTCell.swift
New file @@ -0,0 +1,16 @@ // // HomeItemTCell.swift // BrokerDriver // // Created by 无故事王国 on 2023/4/24. // import UIKit class HomeItemTCell: BaseTCell { override func awakeFromNib() { super.awakeFromNib() } } BrokerDriver/Home/TCell/HomeItemTCell.xib
New file @@ -0,0 +1,220 @@ <?xml version="1.0" encoding="UTF-8"?> <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> <device id="retina6_12" orientation="portrait" appearance="light"/> <dependencies> <deployment identifier="iOS"/> <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21678"/> <capability name="Named colors" minToolsVersion="9.0"/> <capability name="System colors in document resources" minToolsVersion="11.0"/> <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> </dependencies> <objects> <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/> <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="_HomeItemTCell" rowHeight="277" id="KGk-i7-Jjw" customClass="HomeItemTCell" customModule="BrokerDriver" customModuleProvider="target"> <rect key="frame" x="0.0" y="0.0" width="431" height="277"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM"> <rect key="frame" x="0.0" y="0.0" width="431" height="277"/> <autoresizingMask key="autoresizingMask"/> <subviews> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="iIC-Uu-XTD"> <rect key="frame" x="12" y="2.6666666666666572" width="407" height="272"/> <subviews> <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_miniLogo" translatesAutoresizingMaskIntoConstraints="NO" id="3ku-sO-NPq"> <rect key="frame" x="14" y="21" width="14" height="14"/> <constraints> <constraint firstAttribute="width" constant="14" id="AeT-0Z-4PP"/> <constraint firstAttribute="height" constant="14" id="cfs-pP-SR2"/> </constraints> </imageView> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Mzn-MW-Hpu"> <rect key="frame" x="35" y="21" width="11.666666666666664" height="14"/> <constraints> <constraint firstAttribute="height" constant="14" id="nUI-g0-D3K"/> </constraints> <fontDescription key="fontDescription" type="boldSystem" pointSize="12"/> <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="0.84705882352941175" colorSpace="custom" customColorSpace="sRGB"/> <nil key="highlightedColor"/> </label> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="4wa-Fd-27d"> <rect key="frame" x="384.66666666666669" y="19.333333333333332" width="13.333333333333314" height="16.999999999999996"/> <fontDescription key="fontDescription" type="boldSystem" pointSize="14"/> <color key="textColor" name="ThemeColor"/> <nil key="highlightedColor"/> </label> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Uvz-yU-orz"> <rect key="frame" x="14" y="49" width="393" height="0.3333333333333357"/> <color key="backgroundColor" red="0.70196078431372544" green="0.70196078431372544" blue="0.70196078431372544" alpha="0.23999999999999999" colorSpace="custom" customColorSpace="sRGB"/> <constraints> <constraint firstAttribute="height" constant="0.5" id="FdA-j6-6dS"/> </constraints> </view> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="olv-IP-XuW"> <rect key="frame" x="14" y="127" width="8" height="8"/> <color key="backgroundColor" red="0.027450980392156862" green="0.46666666666666667" blue="0.20392156862745098" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <constraints> <constraint firstAttribute="width" constant="8" id="9Df-yK-2ZF"/> <constraint firstAttribute="height" constant="8" id="MAV-C9-MKb"/> </constraints> <userDefinedRuntimeAttributes> <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> <real key="value" value="4"/> </userDefinedRuntimeAttribute> </userDefinedRuntimeAttributes> </view> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Q6k-FS-XDv"> <rect key="frame" x="14" y="199.33333333333334" width="8" height="8"/> <color key="backgroundColor" red="0.96862745098039216" green="0.32156862745098036" blue="0.17254901960784313" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <constraints> <constraint firstAttribute="height" constant="8" id="8pK-bm-AAe"/> <constraint firstAttribute="width" constant="8" id="968-0Y-QJR"/> </constraints> <userDefinedRuntimeAttributes> <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> <real key="value" value="4"/> </userDefinedRuntimeAttribute> </userDefinedRuntimeAttributes> </view> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zn6-aX-3Xe"> <rect key="frame" x="31" y="86.333333333333314" width="366" height="89"/> <constraints> <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="18" id="E9Y-eF-f1g"/> </constraints> <fontDescription key="fontDescription" type="system" pointSize="13"/> <nil key="textColor"/> <nil key="highlightedColor"/> </label> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="4ju-VE-5Ye"> <rect key="frame" x="368" y="175.33333333333334" width="30" height="30"/> <constraints> <constraint firstAttribute="width" constant="30" id="AhD-xH-7lP"/> <constraint firstAttribute="height" constant="30" id="c1Y-xf-F5E"/> </constraints> <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> <state key="normal" image="btn_dial"/> </button> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qxC-fJ-mN5"> <rect key="frame" x="31" y="194.33333333333334" width="366" height="18"/> <constraints> <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="18" id="2zZ-gU-NbC"/> </constraints> <fontDescription key="fontDescription" type="system" pointSize="13"/> <nil key="textColor"/> <nil key="highlightedColor"/> </label> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="egn-Bi-PKt"> <rect key="frame" x="14" y="227.33333333333334" width="393" height="0.66666666666665719"/> <color key="backgroundColor" red="0.85882352941176465" green="0.85882352941176465" blue="0.90588235294117647" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <constraints> <constraint firstAttribute="height" constant="0.45000000000000001" id="YAz-P0-Cyf"/> </constraints> </view> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Pickup Time: --" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="mYj-yu-9ib"> <rect key="frame" x="14" y="241" width="96.333333333333329" height="17"/> <constraints> <constraint firstAttribute="height" constant="17" id="2IH-jY-d2G"/> </constraints> <fontDescription key="fontDescription" type="system" pointSize="12"/> <color key="textColor" red="0.1803921568627451" green="0.1803921568627451" blue="0.1803921568627451" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <nil key="highlightedColor"/> </label> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YWd-fS-AvJ"> <rect key="frame" x="386.66666666666669" y="241" width="11.333333333333314" height="17"/> <constraints> <constraint firstAttribute="height" constant="17" id="tms-bt-0La"/> </constraints> <fontDescription key="fontDescription" type="system" pointSize="12"/> <color key="textColor" red="0.18039215689999999" green="0.18039215689999999" blue="0.18039215689999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <nil key="highlightedColor"/> </label> <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="cIt-de-tUJ"> <rect key="frame" x="16" y="49.333333333333343" width="382" height="30"/> <subviews> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="bAy-QT-95G"> <rect key="frame" x="0.0" y="0.0" width="382" height="30"/> <subviews> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="441-F6-alP"> <rect key="frame" x="21" y="7" width="340" height="16"/> <fontDescription key="fontDescription" type="system" pointSize="12"/> <nil key="textColor"/> <nil key="highlightedColor"/> </label> </subviews> <color key="backgroundColor" red="0.99215686274509807" green="0.84313725490196079" blue="0.81176470588235294" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <constraints> <constraint firstAttribute="trailing" secondItem="441-F6-alP" secondAttribute="trailing" constant="21" id="1De-82-Zfc"/> <constraint firstItem="441-F6-alP" firstAttribute="leading" secondItem="bAy-QT-95G" secondAttribute="leading" constant="21" id="3JQ-h6-QZM"/> <constraint firstItem="441-F6-alP" firstAttribute="top" secondItem="bAy-QT-95G" secondAttribute="top" constant="7" id="WLM-bL-rK9"/> <constraint firstAttribute="bottom" secondItem="441-F6-alP" secondAttribute="bottom" constant="7" id="Wn6-ot-b4o"/> </constraints> </view> </subviews> <constraints> <constraint firstAttribute="height" constant="30" id="qob-vM-vhT"/> </constraints> </stackView> </subviews> <color key="backgroundColor" systemColor="systemBackgroundColor"/> <constraints> <constraint firstItem="3ku-sO-NPq" firstAttribute="leading" secondItem="iIC-Uu-XTD" secondAttribute="leading" constant="14" id="462-U1-EQc"/> <constraint firstAttribute="trailing" secondItem="4wa-Fd-27d" secondAttribute="trailing" constant="9" id="4RD-vL-ikt"/> <constraint firstItem="qxC-fJ-mN5" firstAttribute="trailing" secondItem="zn6-aX-3Xe" secondAttribute="trailing" id="4m8-ky-Rsc"/> <constraint firstItem="Uvz-yU-orz" firstAttribute="top" secondItem="3ku-sO-NPq" secondAttribute="bottom" constant="14" id="54a-2K-tOL"/> <constraint firstAttribute="trailing" secondItem="4ju-VE-5Ye" secondAttribute="trailing" constant="9" id="5Jk-Ae-T2U"/> <constraint firstItem="egn-Bi-PKt" firstAttribute="top" secondItem="Q6k-FS-XDv" secondAttribute="bottom" constant="20" id="8sG-y0-Ojr"/> <constraint firstAttribute="trailing" secondItem="Uvz-yU-orz" secondAttribute="trailing" id="9lM-hE-g3t"/> <constraint firstItem="Mzn-MW-Hpu" firstAttribute="centerY" secondItem="3ku-sO-NPq" secondAttribute="centerY" id="CUT-mL-QRi"/> <constraint firstItem="cIt-de-tUJ" firstAttribute="top" secondItem="Uvz-yU-orz" secondAttribute="bottom" id="CaG-qN-MF1"/> <constraint firstItem="zn6-aX-3Xe" firstAttribute="top" secondItem="cIt-de-tUJ" secondAttribute="bottom" constant="7" id="CwF-au-0hw"/> <constraint firstItem="Uvz-yU-orz" firstAttribute="leading" secondItem="iIC-Uu-XTD" secondAttribute="leading" constant="14" id="FMx-pC-KwJ"/> <constraint firstItem="4wa-Fd-27d" firstAttribute="centerY" secondItem="3ku-sO-NPq" secondAttribute="centerY" id="HEF-f9-2Hg"/> <constraint firstItem="mYj-yu-9ib" firstAttribute="leading" secondItem="iIC-Uu-XTD" secondAttribute="leading" constant="14" id="IL4-hz-y7J"/> <constraint firstItem="cIt-de-tUJ" firstAttribute="leading" secondItem="iIC-Uu-XTD" secondAttribute="leading" constant="16" id="MF7-0b-l7q"/> <constraint firstItem="Q6k-FS-XDv" firstAttribute="top" secondItem="zn6-aX-3Xe" secondAttribute="bottom" constant="24" id="Oak-vx-bnm"/> <constraint firstItem="YWd-fS-AvJ" firstAttribute="centerY" secondItem="mYj-yu-9ib" secondAttribute="centerY" id="Qkh-ON-EAY"/> <constraint firstItem="egn-Bi-PKt" firstAttribute="leading" secondItem="iIC-Uu-XTD" secondAttribute="leading" constant="14" id="XE0-Eb-bqy"/> <constraint firstAttribute="trailing" secondItem="cIt-de-tUJ" secondAttribute="trailing" constant="9" id="Z9J-IR-9lL"/> <constraint firstAttribute="bottom" secondItem="mYj-yu-9ib" secondAttribute="bottom" constant="14" id="c7r-da-Xv5"/> <constraint firstItem="qxC-fJ-mN5" firstAttribute="leading" secondItem="Q6k-FS-XDv" secondAttribute="trailing" constant="9" id="cdk-hh-ImU"/> <constraint firstItem="4ju-VE-5Ye" firstAttribute="top" secondItem="zn6-aX-3Xe" secondAttribute="bottom" id="f1v-tP-Q5c"/> <constraint firstItem="3ku-sO-NPq" firstAttribute="top" secondItem="iIC-Uu-XTD" secondAttribute="top" constant="21" id="hM8-5T-Y52"/> <constraint firstItem="zn6-aX-3Xe" firstAttribute="leading" secondItem="olv-IP-XuW" secondAttribute="trailing" constant="9" id="j6x-cf-M3Z"/> <constraint firstAttribute="trailing" secondItem="YWd-fS-AvJ" secondAttribute="trailing" constant="9" id="jfD-Yr-88A"/> <constraint firstItem="zn6-aX-3Xe" firstAttribute="centerY" secondItem="olv-IP-XuW" secondAttribute="centerY" id="l5j-cs-bPQ"/> <constraint firstAttribute="trailing" secondItem="zn6-aX-3Xe" secondAttribute="trailing" constant="10" id="mSm-VP-K5C"/> <constraint firstAttribute="trailing" secondItem="egn-Bi-PKt" secondAttribute="trailing" id="mqc-ad-n7n"/> <constraint firstItem="Mzn-MW-Hpu" firstAttribute="leading" secondItem="3ku-sO-NPq" secondAttribute="trailing" constant="7" id="oEE-zW-cZx"/> <constraint firstItem="olv-IP-XuW" firstAttribute="leading" secondItem="iIC-Uu-XTD" secondAttribute="leading" constant="14" id="sp6-TU-lBf"/> <constraint firstItem="Q6k-FS-XDv" firstAttribute="leading" secondItem="olv-IP-XuW" secondAttribute="leading" id="svg-FC-W7L"/> <constraint firstItem="mYj-yu-9ib" firstAttribute="top" secondItem="egn-Bi-PKt" secondAttribute="bottom" constant="13" id="wQq-0n-P6s"/> <constraint firstItem="qxC-fJ-mN5" firstAttribute="centerY" secondItem="Q6k-FS-XDv" secondAttribute="centerY" id="yNp-RN-niR"/> </constraints> <userDefinedRuntimeAttributes> <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> <real key="value" value="6"/> </userDefinedRuntimeAttribute> </userDefinedRuntimeAttributes> </view> </subviews> <constraints> <constraint firstAttribute="bottom" secondItem="iIC-Uu-XTD" secondAttribute="bottom" constant="2.5" id="6mq-KE-S0h"/> <constraint firstItem="iIC-Uu-XTD" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="2.5" id="8P8-c8-JwO"/> <constraint firstAttribute="trailing" secondItem="iIC-Uu-XTD" secondAttribute="trailing" constant="12" id="Kf6-hA-QS9"/> <constraint firstItem="iIC-Uu-XTD" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="12" id="Y5l-Pb-ZCJ"/> </constraints> </tableViewCellContentView> <point key="canvasLocation" x="223.66412213740458" y="102.46478873239437"/> </tableViewCell> </objects> <resources> <image name="btn_dial" width="38" height="38"/> <image name="icon_miniLogo" width="14" height="14"/> <namedColor name="ThemeColor"> <color red="0.99199998378753662" green="0.82700002193450928" blue="0.016000000759959221" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> </namedColor> <systemColor name="systemBackgroundColor"> <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> </systemColor> </resources> </document> BrokerDriver/Home/VC/HomeHeaderVC.swift
New file @@ -0,0 +1,27 @@ // // HomeHeaderVC.swift // BrokerDriver // // Created by 无故事王国 on 2023/4/24. // import UIKit class HomeHeaderVC: BaseViewController { let topImg = UIImageView(image: UIImage(named: "bg_home")) override func viewDidLoad() { super.viewDidLoad() } override func setUI() { super.setUI() topImg.contentMode = .scaleAspectFill view.addSubview(topImg) topImg.snp.makeConstraints { make in make.edges.equalToSuperview() } } } BrokerDriver/Home/VC/HomeMenuVC.swift
New file @@ -0,0 +1,92 @@ // // HomeMenuVC.swift // BrokerDriver // // Created by 无故事王国 on 2023/4/24. // import UIKit import SPPageMenu class HomeMenuVC: BaseViewController { private(set) var pageMenu:SPPageMenu! private var tf_cargo:QMUITextField! private var btn_pickupTime:QMUIButton! private var btn_search:QMUIButton! override func viewDidLoad() { super.viewDidLoad() } override func setUI() { super.setUI() view.backgroundColor = UIColor(hexStr: "#F9FAFF") pageMenu = SPPageMenu(frame: CGRect(origin: .zero, size: CGSize(width: JQ_ScreenW, height: 46)), trackerStyle: .line) pageMenu.setItems(["In Progress","Completed"], selectedItemIndex: 0) pageMenu.dividingLineHeight = 0.4 pageMenu.dividingLine.backgroundColor = UIColor.black.withAlphaComponent(0.1) pageMenu.setTrackerHeight(4, cornerRadius: 2) pageMenu.trackerWidth = 20 pageMenu.permutationWay = .notScrollEqualWidths pageMenu.tracker.backgroundColor = Def_ThemeColor pageMenu.selectedItemTitleColor = .black pageMenu.unSelectedItemTitleColor = .black.withAlphaComponent(0.4) pageMenu.selectedItemTitleFont = UIFont.systemFont(ofSize: 16, weight: .bold) pageMenu.unSelectedItemTitleFont = UIFont.systemFont(ofSize: 16, weight: .bold) view.addSubview(pageMenu) var funcView = UIView() funcView.backgroundColor = .white view.addSubview(funcView) funcView.snp.makeConstraints { make in make.top.equalTo(pageMenu.snp.bottom).offset(3) make.left.right.equalToSuperview() make.height.equalTo(58) } tf_cargo = QMUITextField() tf_cargo.placeholder = " CONTAINER #" tf_cargo.font = UIFont.systemFont(ofSize: 12) tf_cargo.placeholderColor = UIColor(hexStr: "#959595") tf_cargo.jq_borderWidth = 1 tf_cargo.jq_borderColor = UIColor(hexStr: "#F0F0F0") funcView.addSubview(tf_cargo) tf_cargo.snp.makeConstraints { make in make.left.equalTo(12) make.height.equalTo(35) make.top.equalTo(12) make.width.equalTo(JQ_ScreenW * 0.3786) } btn_pickupTime = QMUIButton(type: .custom) btn_pickupTime.setTitle(" Pickup Time", for: .normal) btn_pickupTime.setTitleColor(UIColor(hexStr: "#959595"), for: .normal) btn_pickupTime.titleLabel?.font = UIFont.systemFont(ofSize: 12) btn_pickupTime.setImage(UIImage(named: "btn_pickuptime"), for: .normal) btn_pickupTime.imagePosition = .left btn_pickupTime.spacingBetweenImageAndTitle = 5 btn_pickupTime.jq_borderWidth = 1 btn_pickupTime.jq_borderColor = UIColor(hexStr: "#F0F0F0") btn_pickupTime.contentHorizontalAlignment = .left btn_pickupTime.imageEdgeInsets = UIEdgeInsets(top: 0, left: 5, bottom: 0, right: 0) funcView.addSubview(btn_pickupTime) btn_pickupTime.snp.makeConstraints { make in make.left.equalTo(tf_cargo.snp.right).offset(13) make.height.equalTo(35) make.top.equalTo(12) make.width.equalTo(JQ_ScreenW * 0.3786) } btn_search = QMUIButton(type: .custom) btn_search.setImage( UIImage(named: "btn_search"), for: .normal) funcView.addSubview(btn_search) btn_search.snp.makeConstraints { make in make.left.equalTo(btn_pickupTime.snp.right) make.centerY.equalTo(btn_pickupTime) make.right.equalToSuperview() } } } BrokerDriver/Home/VC/HomePageVC.swift
New file @@ -0,0 +1,76 @@ // // HomePageVC.swift // BrokerDriver // // Created by 无故事王国 on 2023/4/24. // import UIKit import RxSwift import RxRelay class HomePageVC: BaseViewController,Refreshable { enum PageStyle { case progress,complete } private var style:PageStyle! public let refreshStatus = BehaviorSubject(value: RefreshStatus.others) lazy private var tableView:BaseTableView = { let tableView = BaseTableView(frame: .zero, style: .plain) tableView.delegate = self tableView.dataSource = self tableView.separatorStyle = .none tableView.backgroundColor = .clear tableView.register(UINib(nibName: "HomeItemTCell", bundle: nil), forCellReuseIdentifier: "_HomeItemTCell") return tableView }() init(style:HomePageVC.PageStyle) { super.init(nibName: nil, bundle: nil) self.style = style } required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } override func viewDidLoad() { super.viewDidLoad() self.refreshStatusBind(to: tableView, header: { [weak self] () in self?.refreshStatus.onNext(.endHeaderRefresh) }, footer: { [weak self] () in }).disposed(by: disposeBag) // refreshStatus.onNext(.beingHeaderRefresh) } override func setUI() { super.setUI() view.backgroundColor = UIColor(hexStr: "#F9FAFF") view.addSubview(tableView) tableView.snp.makeConstraints { make in make.edges.equalToSuperview() } } } extension HomePageVC:UITableViewDelegate{ } extension HomePageVC:UITableViewDataSource{ func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "_HomeItemTCell") as! HomeItemTCell cell.backgroundColor = .clear return cell } func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return 10 } } BrokerDriver/Home/VC/HomeVC.swift
New file @@ -0,0 +1,87 @@ // // HomeVC.swift // BrokerDriver // // Created by 无故事王国 on 2023/4/24. // import UIKit import FFPage import SPPageMenu class HomeVC: BaseViewController { lazy var adapterViewController:FFAdapterViewController = { let adapterViewController = FFAdapterViewController() adapterViewController.headHeight = JQ_ScreenW * 0.50 adapterViewController.menuHeight = 108 adapterViewController.style = .subRefresh adapterViewController.ignoreTopSpeace = topSafeHeight adapterViewController.headViewController = headerViewController adapterViewController.menuViewController = menuViewController adapterViewController.pageViewController = pageViewController return adapterViewController }() lazy var pageViewController:FFPageViewController = { let pageViewController = FFPageViewController() pageViewController.delegate = self return pageViewController }() lazy var headerViewController:HomeHeaderVC = { let vc = HomeHeaderVC() return vc }() lazy var menuViewController:HomeMenuVC = { let vc = HomeMenuVC() return vc }() override func viewDidLoad() { super.viewDidLoad() } override func setUI() { super.setUI() navigationItem.leftBarButtonItem = UIBarButtonItem(image: UIImage(named: "icon_profile")!.withRenderingMode(.alwaysOriginal), style: .plain, target: self, action: #selector(profileAction)) addChild(adapterViewController) view.insertSubview(adapterViewController.view, at: 0) adapterViewController.didMove(toParent: self) adapterViewController.view.frame = view.frame menuViewController.pageMenu.delegate = self menuViewController.pageMenu.bridgeScrollView = pageViewController.scrollview } @objc func profileAction(){ } } extension HomeVC:SPPageMenuDelegate{ func pageMenu(_ pageMenu: SPPageMenu, itemSelectedAt index: Int) { self.pageViewController.scroll(toPage: index, animation: true) } } extension HomeVC:FFPageViewControllerDelegate { func pageViewController(_ pageViewController: FFPageViewController, currentPageChanged currentPage: Int) { menuViewController.pageMenu.selectedItemIndex = currentPage } func totalPagesOfpageViewController(_ pageViewConteoller: FFPageViewController) -> UInt { return 2 } func pageViewController(_ pageViewConteoller: FFPageViewController, controllerForPage page: Int) -> UIViewController { if page == 0{ return HomePageVC(style: .progress) } return HomePageVC(style: .complete) } } BrokerDriver/Login/VC/ForgotPwdVC.swift
New file @@ -0,0 +1,28 @@ // // ForgotPwdVC.swift // BrokerDriver // // Created by 无故事王国 on 2023/4/24. // import UIKit class ForgotPwdVC: BaseViewController { override func viewDidLoad() { super.viewDidLoad() } /* // MARK: - Navigation // In a storyboard-based application, you will often want to do a little preparation before navigation override func prepare(for segue: UIStoryboardSegue, sender: Any?) { // Get the new view controller using segue.destination. // Pass the selected object to the new view controller. } */ } BrokerDriver/Login/VC/ForgotPwdVC.xib
New file @@ -0,0 +1,205 @@ <?xml version="1.0" encoding="UTF-8"?> <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> <device id="retina6_12" orientation="portrait" appearance="light"/> <dependencies> <deployment identifier="iOS"/> <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21678"/> <capability name="Named colors" minToolsVersion="9.0"/> <capability name="Safe area layout guides" minToolsVersion="9.0"/> <capability name="System colors in document resources" minToolsVersion="11.0"/> <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> </dependencies> <objects> <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="ForgotPwdVC" customModule="BrokerDriver" customModuleProvider="target"> <connections> <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/> </connections> </placeholder> <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT"> <rect key="frame" x="0.0" y="0.0" width="393" height="852"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <subviews> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Forgot password" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="S9n-Xf-Fst"> <rect key="frame" x="27.000000000000014" y="98" width="235.33333333333337" height="36"/> <fontDescription key="fontDescription" type="boldSystem" pointSize="30"/> <color key="textColor" red="0.015686274509803921" green="0.058823529411764705" blue="0.15686274509803921" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <nil key="highlightedColor"/> </label> <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="hYk-ro-C66"> <rect key="frame" x="0.0" y="163" width="393" height="348"/> <subviews> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="a7Z-KP-vei"> <rect key="frame" x="0.0" y="0.0" width="393" height="87"/> <subviews> <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="EMAIL" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="IEb-4W-7L7" customClass="QMUITextField"> <rect key="frame" x="50" y="28.666666666666657" width="293" height="30"/> <constraints> <constraint firstAttribute="height" constant="30" id="fJg-2g-WBe"/> </constraints> <fontDescription key="fontDescription" type="boldSystem" pointSize="16"/> <textInputTraits key="textInputTraits" keyboardType="emailAddress"/> </textField> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="TYO-v8-LyZ"> <rect key="frame" x="50" y="86.666666666666657" width="293" height="0.3333333333333286"/> <color key="backgroundColor" red="0.93333333330000001" green="0.93333333330000001" blue="0.93333333330000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <constraints> <constraint firstAttribute="height" constant="0.5" id="aMp-kZ-FXI"/> </constraints> </view> </subviews> <color key="backgroundColor" systemColor="systemBackgroundColor"/> <constraints> <constraint firstAttribute="trailing" secondItem="TYO-v8-LyZ" secondAttribute="trailing" constant="50" id="1Bb-I3-7w4"/> <constraint firstAttribute="trailing" secondItem="IEb-4W-7L7" secondAttribute="trailing" constant="50" id="GFl-mp-ni5"/> <constraint firstItem="IEb-4W-7L7" firstAttribute="leading" secondItem="a7Z-KP-vei" secondAttribute="leading" constant="50" id="RWm-s0-v3J"/> <constraint firstAttribute="height" constant="87" id="VyH-H0-lkh"/> <constraint firstAttribute="bottom" secondItem="TYO-v8-LyZ" secondAttribute="bottom" id="ZKZ-fs-Qcy"/> <constraint firstItem="IEb-4W-7L7" firstAttribute="centerY" secondItem="a7Z-KP-vei" secondAttribute="centerY" id="bMo-pq-LaB"/> <constraint firstItem="TYO-v8-LyZ" firstAttribute="leading" secondItem="a7Z-KP-vei" secondAttribute="leading" constant="50" id="z2Z-pE-am1"/> </constraints> </view> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="cfb-s5-5BF"> <rect key="frame" x="0.0" y="87" width="393" height="87"/> <subviews> <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Verification code" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="fg6-Qi-snT" customClass="QMUITextField"> <rect key="frame" x="50" y="28.666666666666686" width="193" height="30"/> <constraints> <constraint firstAttribute="height" constant="30" id="bYy-ES-fzj"/> </constraints> <fontDescription key="fontDescription" type="boldSystem" pointSize="16"/> <textInputTraits key="textInputTraits" keyboardType="numberPad"/> </textField> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="md7-YF-Vu7"> <rect key="frame" x="50" y="86.666666666666686" width="293" height="0.3333333333333286"/> <color key="backgroundColor" red="0.93333333330000001" green="0.93333333330000001" blue="0.93333333330000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <constraints> <constraint firstAttribute="height" constant="0.5" id="YoY-4M-5En"/> </constraints> </view> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="qra-FQ-Qdd"> <rect key="frame" x="279" y="52.666666666666686" width="73" height="27"/> <fontDescription key="fontDescription" type="boldSystem" pointSize="12"/> <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> <state key="normal" title="Obtain code"> <color key="titleColor" red="0.98431372549019602" green="0.73725490196078436" blue="0.047058823529411764" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> </state> </button> </subviews> <color key="backgroundColor" systemColor="systemBackgroundColor"/> <constraints> <constraint firstItem="fg6-Qi-snT" firstAttribute="centerY" secondItem="cfb-s5-5BF" secondAttribute="centerY" id="CDA-kY-pRQ"/> <constraint firstItem="md7-YF-Vu7" firstAttribute="top" secondItem="qra-FQ-Qdd" secondAttribute="bottom" constant="7" id="F4n-dN-h0D"/> <constraint firstItem="fg6-Qi-snT" firstAttribute="leading" secondItem="cfb-s5-5BF" secondAttribute="leading" constant="50" id="Fj0-vs-AO8"/> <constraint firstAttribute="trailing" secondItem="fg6-Qi-snT" secondAttribute="trailing" constant="150" id="GrB-90-KHu"/> <constraint firstAttribute="trailing" secondItem="md7-YF-Vu7" secondAttribute="trailing" constant="50" id="YC0-qX-3z9"/> <constraint firstAttribute="bottom" secondItem="md7-YF-Vu7" secondAttribute="bottom" id="bIx-4U-KtB"/> <constraint firstAttribute="trailing" secondItem="qra-FQ-Qdd" secondAttribute="trailing" constant="41" id="dXg-4d-bAA"/> <constraint firstAttribute="height" constant="87" id="svM-fG-OdE"/> <constraint firstItem="md7-YF-Vu7" firstAttribute="leading" secondItem="cfb-s5-5BF" secondAttribute="leading" constant="50" id="z9g-J4-ID5"/> </constraints> </view> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="3Yz-XP-8E1"> <rect key="frame" x="0.0" y="174" width="393" height="87"/> <subviews> <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="PASSWORD" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="0q9-av-whH" customClass="QMUITextField"> <rect key="frame" x="50" y="28.666666666666686" width="293" height="30"/> <constraints> <constraint firstAttribute="height" constant="30" id="kmd-Jx-fXw"/> </constraints> <fontDescription key="fontDescription" type="boldSystem" pointSize="16"/> <textInputTraits key="textInputTraits" keyboardType="alphabet" secureTextEntry="YES"/> </textField> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="i9C-qh-XhH"> <rect key="frame" x="50" y="86.666666666666686" width="293" height="0.3333333333333286"/> <color key="backgroundColor" red="0.93333333330000001" green="0.93333333330000001" blue="0.93333333330000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <constraints> <constraint firstAttribute="height" constant="0.5" id="Vko-a1-L90"/> </constraints> </view> </subviews> <color key="backgroundColor" systemColor="systemBackgroundColor"/> <constraints> <constraint firstItem="i9C-qh-XhH" firstAttribute="leading" secondItem="3Yz-XP-8E1" secondAttribute="leading" constant="50" id="YS4-D0-KPn"/> <constraint firstItem="0q9-av-whH" firstAttribute="centerY" secondItem="3Yz-XP-8E1" secondAttribute="centerY" id="beF-Tl-2vI"/> <constraint firstAttribute="height" constant="87" id="gRV-Zn-8at"/> <constraint firstAttribute="trailing" secondItem="0q9-av-whH" secondAttribute="trailing" constant="50" id="n1g-bH-zcH"/> <constraint firstAttribute="trailing" secondItem="i9C-qh-XhH" secondAttribute="trailing" constant="50" id="nTQ-3B-tC4"/> <constraint firstItem="0q9-av-whH" firstAttribute="leading" secondItem="3Yz-XP-8E1" secondAttribute="leading" constant="50" id="wev-TF-kGz"/> <constraint firstAttribute="bottom" secondItem="i9C-qh-XhH" secondAttribute="bottom" id="zaY-It-2lv"/> </constraints> </view> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="8cf-rR-8yO"> <rect key="frame" x="0.0" y="261" width="393" height="87"/> <subviews> <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="PASSWORD AGAIN" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="bgL-fq-zvQ" customClass="QMUITextField"> <rect key="frame" x="50" y="28.666666666666686" width="293" height="30"/> <constraints> <constraint firstAttribute="height" constant="30" id="EXu-Nm-fpB"/> </constraints> <fontDescription key="fontDescription" type="boldSystem" pointSize="16"/> <textInputTraits key="textInputTraits" secureTextEntry="YES"/> </textField> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="OX3-SQ-WIv"> <rect key="frame" x="50" y="86.666666666666686" width="293" height="0.3333333333333286"/> <color key="backgroundColor" red="0.93333333330000001" green="0.93333333330000001" blue="0.93333333330000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <constraints> <constraint firstAttribute="height" constant="0.5" id="cP0-un-kZ1"/> </constraints> </view> </subviews> <color key="backgroundColor" systemColor="systemBackgroundColor"/> <constraints> <constraint firstItem="bgL-fq-zvQ" firstAttribute="centerY" secondItem="8cf-rR-8yO" secondAttribute="centerY" id="CcA-VG-EBC"/> <constraint firstAttribute="trailing" secondItem="bgL-fq-zvQ" secondAttribute="trailing" constant="50" id="DPe-aH-mrg"/> <constraint firstItem="OX3-SQ-WIv" firstAttribute="leading" secondItem="8cf-rR-8yO" secondAttribute="leading" constant="50" id="FHc-j2-KWV"/> <constraint firstAttribute="trailing" secondItem="OX3-SQ-WIv" secondAttribute="trailing" constant="50" id="dZZ-jQ-GJG"/> <constraint firstItem="bgL-fq-zvQ" firstAttribute="leading" secondItem="8cf-rR-8yO" secondAttribute="leading" constant="50" id="jPd-F0-MW6"/> <constraint firstAttribute="height" constant="87" id="jk4-iv-c7I"/> <constraint firstAttribute="bottom" secondItem="OX3-SQ-WIv" secondAttribute="bottom" id="vsn-HP-Q6r"/> </constraints> </view> </subviews> </stackView> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="hg9-m2-Rc8"> <rect key="frame" x="16" y="555" width="361" height="44"/> <color key="backgroundColor" name="ThemeColor"/> <constraints> <constraint firstAttribute="height" constant="44" id="P1g-mj-pvU"/> </constraints> <fontDescription key="fontDescription" type="boldSystem" pointSize="15"/> <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> <state key="normal" title="Submit"> <color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> </state> <userDefinedRuntimeAttributes> <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> <real key="value" value="22"/> </userDefinedRuntimeAttribute> </userDefinedRuntimeAttributes> </button> </subviews> <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/> <color key="backgroundColor" systemColor="systemBackgroundColor"/> <constraints> <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="hg9-m2-Rc8" secondAttribute="trailing" constant="16" id="3ed-6h-GFc"/> <constraint firstItem="hYk-ro-C66" firstAttribute="top" secondItem="S9n-Xf-Fst" secondAttribute="bottom" constant="29" id="CXc-pE-eBv"/> <constraint firstItem="hYk-ro-C66" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="CaJ-bM-B5k"/> <constraint firstAttribute="trailing" secondItem="hYk-ro-C66" secondAttribute="trailing" id="JG4-Yu-e8e"/> <constraint firstItem="hg9-m2-Rc8" firstAttribute="top" secondItem="hYk-ro-C66" secondAttribute="bottom" constant="44" id="P4f-in-8lh"/> <constraint firstItem="hg9-m2-Rc8" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="16" id="Phh-6k-g6T"/> <constraint firstItem="S9n-Xf-Fst" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="27" id="qDU-e2-Lg5"/> <constraint firstItem="S9n-Xf-Fst" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" constant="39" id="y2K-k8-X3d"/> </constraints> <point key="canvasLocation" x="101" y="21"/> </view> </objects> <resources> <namedColor name="ThemeColor"> <color red="0.99215686274509807" green="0.82745098039215681" blue="0.015686274509803921" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> </namedColor> <systemColor name="systemBackgroundColor"> <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> </systemColor> </resources> </document> BrokerDriver/Login/VC/LoginVC.swift
@@ -9,21 +9,32 @@ class LoginVC: BaseViewController { @IBOutlet weak var tf_email: QMUITextField! @IBOutlet weak var tf_pwd: QMUITextField! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. } /* // MARK: - Navigation // In a storyboard-based application, you will often want to do a little preparation before navigation override func prepare(for segue: UIStoryboardSegue, sender: Any?) { // Get the new view controller using segue.destination. // Pass the selected object to the new view controller. @IBAction func forgotAction(_ sender: UIButton) { let pwdVC = ForgotPwdVC() push(vc: pwdVC) } */ @IBAction func loginAction(_ sender: UIButton) { let snapView = screnDelegate?.window?.snapshotView(afterScreenUpdates: true) let nav = BaseNavigationController(rootViewController: HomeVC()) screnDelegate?.window?.rootViewController = nav screnDelegate?.window?.rootViewController?.view.addSubview(snapView!) UIView.animate(withDuration: 1.5) { snapView?.alpha = 0 snapView?.transform3D = CATransform3DMakeScale(1.5, 1.5, 1.5) } completion: { _ in snapView?.removeFromSuperview() } } } BrokerDriver/Login/VC/LoginVC.xib
@@ -4,6 +4,7 @@ <dependencies> <deployment identifier="iOS"/> <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21678"/> <capability name="Named colors" minToolsVersion="9.0"/> <capability name="Safe area layout guides" minToolsVersion="9.0"/> <capability name="System colors in document resources" minToolsVersion="11.0"/> <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> @@ -11,6 +12,8 @@ <objects> <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="LoginVC" customModule="BrokerDriver" customModuleProvider="target"> <connections> <outlet property="tf_email" destination="Rz6-l8-dPP" id="EYF-CP-5mX"/> <outlet property="tf_pwd" destination="QiU-cK-F8o" id="Hto-bR-Mlw"/> <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/> </connections> </placeholder> @@ -21,9 +24,13 @@ <subviews> <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_logo" translatesAutoresizingMaskIntoConstraints="NO" id="Gvf-3j-Apa"> <rect key="frame" x="138.66666666666666" y="156" width="116" height="116"/> <constraints> <constraint firstAttribute="width" constant="116" id="1Dp-Wb-hpe"/> <constraint firstAttribute="height" constant="116" id="irQ-eW-e0a"/> </constraints> </imageView> <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="x3m-nw-HqX"> <rect key="frame" x="0.0" y="286" width="393" height="87"/> <rect key="frame" x="0.0" y="286" width="393" height="174"/> <subviews> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="sGN-VP-INk"> <rect key="frame" x="0.0" y="0.0" width="393" height="87"/> @@ -55,23 +62,92 @@ <constraint firstAttribute="bottom" secondItem="EmS-AI-xY2" secondAttribute="bottom" id="zN4-BA-ELn"/> </constraints> </view> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="2pQ-cI-i8Q"> <rect key="frame" x="0.0" y="87" width="393" height="87"/> <subviews> <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="PASSWORD" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="QiU-cK-F8o" customClass="QMUITextField"> <rect key="frame" x="50" y="28.666666666666686" width="293" height="30"/> <constraints> <constraint firstAttribute="height" constant="30" id="2ns-If-iXj"/> </constraints> <fontDescription key="fontDescription" type="boldSystem" pointSize="16"/> <textInputTraits key="textInputTraits" keyboardType="emailAddress"/> </textField> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="6Oe-TK-sTI"> <rect key="frame" x="50" y="86.666666666666686" width="293" height="0.3333333333333286"/> <color key="backgroundColor" red="0.93333333330000001" green="0.93333333330000001" blue="0.93333333330000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <constraints> <constraint firstAttribute="height" constant="0.5" id="KCe-8a-U7J"/> </constraints> </view> </subviews> <color key="backgroundColor" systemColor="systemBackgroundColor"/> <constraints> <constraint firstAttribute="bottom" secondItem="6Oe-TK-sTI" secondAttribute="bottom" id="1fD-ue-w1V"/> <constraint firstAttribute="trailing" secondItem="6Oe-TK-sTI" secondAttribute="trailing" constant="50" id="9sj-ZY-StH"/> <constraint firstAttribute="trailing" secondItem="QiU-cK-F8o" secondAttribute="trailing" constant="50" id="ctJ-C8-qvr"/> <constraint firstItem="6Oe-TK-sTI" firstAttribute="leading" secondItem="2pQ-cI-i8Q" secondAttribute="leading" constant="50" id="k9d-qt-bvR"/> <constraint firstAttribute="height" constant="87" id="oXF-Td-h01"/> <constraint firstItem="QiU-cK-F8o" firstAttribute="centerY" secondItem="2pQ-cI-i8Q" secondAttribute="centerY" id="sSu-W4-cs8"/> <constraint firstItem="QiU-cK-F8o" firstAttribute="leading" secondItem="2pQ-cI-i8Q" secondAttribute="leading" constant="50" id="sgT-8v-fkd"/> </constraints> </view> </subviews> </stackView> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="2aJ-LA-4Bt"> <rect key="frame" x="276" y="475" width="108" height="27"/> <fontDescription key="fontDescription" type="boldSystem" pointSize="12"/> <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> <state key="normal" title="Forgot password?"> <color key="titleColor" red="0.98431372549019602" green="0.73725490196078436" blue="0.047058823529411764" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> </state> <connections> <action selector="forgotAction:" destination="-1" eventType="touchUpInside" id="T9c-fA-k8F"/> </connections> </button> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="A2S-IL-GOY"> <rect key="frame" x="16" y="544" width="361" height="44"/> <color key="backgroundColor" name="ThemeColor"/> <constraints> <constraint firstAttribute="height" constant="44" id="NGy-qp-iCj"/> </constraints> <fontDescription key="fontDescription" type="boldSystem" pointSize="15"/> <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> <state key="normal" title="Login"> <color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> </state> <userDefinedRuntimeAttributes> <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> <real key="value" value="22"/> </userDefinedRuntimeAttribute> </userDefinedRuntimeAttributes> <connections> <action selector="loginAction:" destination="-1" eventType="touchUpInside" id="S0r-iu-AlI"/> </connections> </button> </subviews> <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/> <color key="backgroundColor" systemColor="systemBackgroundColor"/> <constraints> <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="x3m-nw-HqX" secondAttribute="trailing" id="A3A-iu-fKn"/> <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="2aJ-LA-4Bt" secondAttribute="trailing" constant="9" id="5TN-Ox-bOB"/> <constraint firstItem="x3m-nw-HqX" firstAttribute="top" secondItem="Gvf-3j-Apa" secondAttribute="bottom" constant="14" id="9fd-cP-qpI"/> <constraint firstItem="Gvf-3j-Apa" firstAttribute="centerX" secondItem="fnl-2z-Ty3" secondAttribute="centerX" id="GqD-ZN-8zm"/> <constraint firstItem="x3m-nw-HqX" firstAttribute="top" secondItem="Gvf-3j-Apa" secondAttribute="bottom" constant="14" id="I4q-T0-3a4"/> <constraint firstItem="A2S-IL-GOY" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="16" id="Opp-4G-8OM"/> <constraint firstItem="A2S-IL-GOY" firstAttribute="top" secondItem="2aJ-LA-4Bt" secondAttribute="bottom" constant="42" id="SuD-uR-onG"/> <constraint firstItem="Gvf-3j-Apa" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" constant="97" id="dD9-MQ-Juz"/> <constraint firstItem="2aJ-LA-4Bt" firstAttribute="top" secondItem="x3m-nw-HqX" secondAttribute="bottom" constant="15" id="hDy-a4-U0J"/> <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="A2S-IL-GOY" secondAttribute="trailing" constant="16" id="i9S-JV-us1"/> <constraint firstItem="x3m-nw-HqX" firstAttribute="trailing" secondItem="fnl-2z-Ty3" secondAttribute="trailing" id="iNb-9F-iK2"/> <constraint firstItem="x3m-nw-HqX" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="rjp-aR-VRM"/> </constraints> <point key="canvasLocation" x="140" y="21"/> <point key="canvasLocation" x="139.69465648854961" y="20.422535211267608"/> </view> </objects> <resources> <image name="icon_logo" width="116" height="116"/> <namedColor name="ThemeColor"> <color red="0.99215686274509807" green="0.82745098039215681" blue="0.015686274509803921" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> </namedColor> <systemColor name="systemBackgroundColor"> <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> </systemColor> BrokerDriver/SceneDelegate.swift
@@ -16,13 +16,11 @@ guard let windowScene = (scene as? UIWindowScene) else { return } window = UIWindow(windowScene: windowScene) window?.frame = windowScene.coordinateSpace.bounds app.window = window // let nav = BaseNavigationController(rootViewController: Login()) // window?.rootViewController = nav // window?.overrideUserInterfaceStyle = .light // window?.makeKeyAndVisible() let nav = BaseNavigationController(rootViewController: LoginVC()) window?.rootViewController = nav window?.overrideUserInterfaceStyle = .light window?.makeKeyAndVisible() } func sceneDidDisconnect(_ scene: UIScene) { Podfile
@@ -7,6 +7,8 @@ # Pods for BrokerDriver pod 'JQTools',:path=> '/Users/yvkd/MyProject/JQTools' pod 'FFPage' pod 'SPPageMenu' post_install do |installer| installer.pods_project.targets.each do |target|