WanPai.xcodeproj/project.pbxproj
@@ -14,6 +14,8 @@ 8D4905AA2A31A6EC00E38513 /* HomeCCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8D4905A82A31A6EC00E38513 /* HomeCCell.xib */; }; 8D4905AD2A31AE7100E38513 /* JoinMemberIntroduceVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D4905AB2A31AE7100E38513 /* JoinMemberIntroduceVC.swift */; }; 8D4905AE2A31AE7100E38513 /* JoinMemberIntroduceVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8D4905AC2A31AE7100E38513 /* JoinMemberIntroduceVC.xib */; }; 8D5732BD2A3724A900B2F8E3 /* AddStudentVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D5732BB2A3724A900B2F8E3 /* AddStudentVC.swift */; }; 8D5732BE2A3724A900B2F8E3 /* AddStudentVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8D5732BC2A3724A900B2F8E3 /* AddStudentVC.xib */; }; 8D5B80B72A31C4C700B86520 /* PaymentView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8D5B80B62A31C4C700B86520 /* PaymentView.xib */; }; 8D5C15062A31861D00A8BCC9 /* TapBtn.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D5C15052A31861C00A8BCC9 /* TapBtn.swift */; }; 8D5C150C2A31885B00A8BCC9 /* CommonAlertView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8D5C15082A31885B00A8BCC9 /* CommonAlertView.xib */; }; @@ -24,6 +26,11 @@ 8D630BF92A31801300F0B7A8 /* SearchVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8D630BF72A31801300F0B7A8 /* SearchVC.xib */; }; 8D630BFB2A3180B000F0B7A8 /* BaseTabBarVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D630BFA2A3180B000F0B7A8 /* BaseTabBarVC.swift */; }; 8D667BF42A31C419005B02FB /* PaymentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D667BF32A31C419005B02FB /* PaymentView.swift */; }; 8D6810E72A370EFB004486DE /* CouponTCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D6810E52A370EFB004486DE /* CouponTCell.swift */; }; 8D6810E82A370EFB004486DE /* CouponTCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8D6810E62A370EFB004486DE /* CouponTCell.xib */; }; 8D6810EA2A3710CE004486DE /* StudentChooseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D6810E92A3710CE004486DE /* StudentChooseView.swift */; }; 8D6810EC2A3710D8004486DE /* StudentChooseView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8D6810EB2A3710D8004486DE /* StudentChooseView.xib */; }; 8D6C50232A372B21007EC2D9 /* IDCardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D6C50222A372B20007EC2D9 /* IDCardView.swift */; }; 8D6D6AF22A32D6F800DCA2C6 /* CourseListVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D6D6AF02A32D6F800DCA2C6 /* CourseListVC.swift */; }; 8D6D6AF32A32D6F800DCA2C6 /* CourseListVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8D6D6AF12A32D6F800DCA2C6 /* CourseListVC.xib */; }; 8D7017892A3308DC00473C40 /* Common_1_TCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D7017872A3308DC00473C40 /* Common_1_TCell.swift */; }; @@ -52,6 +59,10 @@ 8DAEB54E2A305A0100814766 /* Colors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8DAEB54D2A305A0100814766 /* Colors.swift */; }; 8DAEB5502A305AEF00814766 /* Def.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8DAEB54F2A305AEF00814766 /* Def.swift */; }; 8DAEB5522A305B2D00814766 /* Fronts.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8DAEB5512A305B2D00814766 /* Fronts.swift */; }; 8DC3BE112A3803B500C91B7F /* ActivityListVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8DC3BE0F2A3803B500C91B7F /* ActivityListVC.swift */; }; 8DC3BE122A3803B500C91B7F /* ActivityListVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8DC3BE102A3803B500C91B7F /* ActivityListVC.xib */; }; 8DC99C882A3701CE00D0F04E /* CouponChooseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8DC99C872A3701CE00D0F04E /* CouponChooseView.swift */; }; 8DC99C8A2A3701D800D0F04E /* CouponChooseView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8DC99C892A3701D800D0F04E /* CouponChooseView.xib */; }; 8DD239AE2A32FC5100700DEB /* CourseTCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8DD239AC2A32FC5100700DEB /* CourseTCell.swift */; }; 8DD239AF2A32FC5100700DEB /* CourseTCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8DD239AD2A32FC5100700DEB /* CourseTCell.xib */; }; 8DF184402A3327EE0095687B /* Common_1_CCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8DF1843E2A3327EE0095687B /* Common_1_CCell.swift */; }; @@ -77,6 +88,8 @@ 8D4905A82A31A6EC00E38513 /* HomeCCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = HomeCCell.xib; sourceTree = "<group>"; }; 8D4905AB2A31AE7100E38513 /* JoinMemberIntroduceVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JoinMemberIntroduceVC.swift; sourceTree = "<group>"; }; 8D4905AC2A31AE7100E38513 /* JoinMemberIntroduceVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = JoinMemberIntroduceVC.xib; sourceTree = "<group>"; }; 8D5732BB2A3724A900B2F8E3 /* AddStudentVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddStudentVC.swift; sourceTree = "<group>"; }; 8D5732BC2A3724A900B2F8E3 /* AddStudentVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = AddStudentVC.xib; sourceTree = "<group>"; }; 8D5B80B62A31C4C700B86520 /* PaymentView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = PaymentView.xib; sourceTree = "<group>"; }; 8D5C15052A31861C00A8BCC9 /* TapBtn.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TapBtn.swift; sourceTree = "<group>"; }; 8D5C15082A31885B00A8BCC9 /* CommonAlertView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CommonAlertView.xib; sourceTree = "<group>"; }; @@ -87,6 +100,11 @@ 8D630BF72A31801300F0B7A8 /* SearchVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SearchVC.xib; sourceTree = "<group>"; }; 8D630BFA2A3180B000F0B7A8 /* BaseTabBarVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BaseTabBarVC.swift; sourceTree = "<group>"; }; 8D667BF32A31C419005B02FB /* PaymentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PaymentView.swift; sourceTree = "<group>"; }; 8D6810E52A370EFB004486DE /* CouponTCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CouponTCell.swift; sourceTree = "<group>"; }; 8D6810E62A370EFB004486DE /* CouponTCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = CouponTCell.xib; sourceTree = "<group>"; }; 8D6810E92A3710CE004486DE /* StudentChooseView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StudentChooseView.swift; sourceTree = "<group>"; }; 8D6810EB2A3710D8004486DE /* StudentChooseView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = StudentChooseView.xib; sourceTree = "<group>"; }; 8D6C50222A372B20007EC2D9 /* IDCardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IDCardView.swift; sourceTree = "<group>"; }; 8D6D6AF02A32D6F800DCA2C6 /* CourseListVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CourseListVC.swift; sourceTree = "<group>"; }; 8D6D6AF12A32D6F800DCA2C6 /* CourseListVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = CourseListVC.xib; sourceTree = "<group>"; }; 8D7017872A3308DC00473C40 /* Common_1_TCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Common_1_TCell.swift; sourceTree = "<group>"; }; @@ -117,6 +135,10 @@ 8DAEB54D2A305A0100814766 /* Colors.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Colors.swift; sourceTree = "<group>"; }; 8DAEB54F2A305AEF00814766 /* Def.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Def.swift; sourceTree = "<group>"; }; 8DAEB5512A305B2D00814766 /* Fronts.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Fronts.swift; sourceTree = "<group>"; }; 8DC3BE0F2A3803B500C91B7F /* ActivityListVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActivityListVC.swift; sourceTree = "<group>"; }; 8DC3BE102A3803B500C91B7F /* ActivityListVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ActivityListVC.xib; sourceTree = "<group>"; }; 8DC99C872A3701CE00D0F04E /* CouponChooseView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CouponChooseView.swift; sourceTree = "<group>"; }; 8DC99C892A3701D800D0F04E /* CouponChooseView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = CouponChooseView.xib; sourceTree = "<group>"; }; 8DD239AC2A32FC5100700DEB /* CourseTCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CourseTCell.swift; sourceTree = "<group>"; }; 8DD239AD2A32FC5100700DEB /* CourseTCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = CourseTCell.xib; sourceTree = "<group>"; }; 8DF1843E2A3327EE0095687B /* Common_1_CCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Common_1_CCell.swift; sourceTree = "<group>"; }; @@ -181,6 +203,7 @@ 8D5C150B2A31885B00A8BCC9 /* AgreentView.swift */, 8D667BF32A31C419005B02FB /* PaymentView.swift */, 8D5B80B62A31C4C700B86520 /* PaymentView.xib */, 8D6C50222A372B20007EC2D9 /* IDCardView.swift */, ); path = View; sourceTree = "<group>"; @@ -200,6 +223,8 @@ 8D7017882A3308DC00473C40 /* Common_1_TCell.xib */, 8DF184422A332CCD0095687B /* StudentInfoTCell.swift */, 8DF184432A332CCD0095687B /* StudentInfoTCell.xib */, 8D6810E52A370EFB004486DE /* CouponTCell.swift */, 8D6810E62A370EFB004486DE /* CouponTCell.xib */, ); path = TCell; sourceTree = "<group>"; @@ -303,6 +328,10 @@ children = ( 8DA51DF92A32C6C10085F4BA /* StoresChooseView.swift */, 8DA51DFB2A32C6D00085F4BA /* StoresChooseView.xib */, 8DC99C872A3701CE00D0F04E /* CouponChooseView.swift */, 8DC99C892A3701D800D0F04E /* CouponChooseView.xib */, 8D6810E92A3710CE004486DE /* StudentChooseView.swift */, 8D6810EB2A3710D8004486DE /* StudentChooseView.xib */, ); path = View; sourceTree = "<group>"; @@ -338,6 +367,23 @@ path = Common; sourceTree = "<group>"; }; 8DC3BE0D2A38038F00C91B7F /* Activity */ = { isa = PBXGroup; children = ( 8DC3BE0E2A38039700C91B7F /* VC */, ); path = Activity; sourceTree = "<group>"; }; 8DC3BE0E2A38039700C91B7F /* VC */ = { isa = PBXGroup; children = ( 8DC3BE0F2A3803B500C91B7F /* ActivityListVC.swift */, 8DC3BE102A3803B500C91B7F /* ActivityListVC.xib */, ); path = VC; sourceTree = "<group>"; }; 8DD239AB2A32FC2B00700DEB /* TCell */ = { isa = PBXGroup; children = ( @@ -350,6 +396,7 @@ 8DFA9B782A31722300E99281 /* Root */ = { isa = PBXGroup; children = ( 8DC3BE0D2A38038F00C91B7F /* Activity */, 8D8DEDE92A31D7F400F2C7FA /* Other */, 8DFA9B932A317E1E00E99281 /* Search */, 8DFA9B8D2A317DBB00E99281 /* Welfare */, @@ -401,6 +448,8 @@ 8D70178C2A330E5700473C40 /* CourseDetailVC.xib */, 8D44E4F52A331DF800E7010E /* CourseDetailApplyVC.swift */, 8D44E4F62A331DF800E7010E /* CourseDetailApplyVC.xib */, 8D5732BB2A3724A900B2F8E3 /* AddStudentVC.swift */, 8D5732BC2A3724A900B2F8E3 /* AddStudentVC.xib */, ); path = VC; sourceTree = "<group>"; @@ -504,7 +553,11 @@ 8D8400DE2A2F1432003AF6A2 /* LaunchScreen.storyboard in Resources */, 8DFA9B772A316E9A00E99281 /* LoginRegOrForgotVC.xib in Resources */, 8DA51DFC2A32C6D00085F4BA /* StoresChooseView.xib in Resources */, 8D6810EC2A3710D8004486DE /* StudentChooseView.xib in Resources */, 8D5732BE2A3724A900B2F8E3 /* AddStudentVC.xib in Resources */, 8DC99C8A2A3701D800D0F04E /* CouponChooseView.xib in Resources */, 8D70178A2A3308DC00473C40 /* Common_1_TCell.xib in Resources */, 8DC3BE122A3803B500C91B7F /* ActivityListVC.xib in Resources */, 8D70178E2A330E5700473C40 /* CourseDetailVC.xib in Resources */, 8D8DEDEE2A31D82100F2C7FA /* PaymentResultVC.xib in Resources */, 8D86DE872A3307B700A754EF /* CourseSubTypeView.xib in Resources */, @@ -520,6 +573,7 @@ 8D8400EA2A2F14A3003AF6A2 /* LoginVC.xib in Resources */, 8D5C150D2A31885B00A8BCC9 /* AgreentView.xib in Resources */, 8D630BF92A31801300F0B7A8 /* SearchVC.xib in Resources */, 8D6810E82A370EFB004486DE /* CouponTCell.xib in Resources */, 8D6D6AF32A32D6F800DCA2C6 /* CourseListVC.xib in Resources */, 8D4905AA2A31A6EC00E38513 /* HomeCCell.xib in Resources */, 8D8400D92A2F1430003AF6A2 /* Main.storyboard in Resources */, @@ -577,14 +631,17 @@ buildActionMask = 2147483647; files = ( 8D4905AD2A31AE7100E38513 /* JoinMemberIntroduceVC.swift in Sources */, 8DC3BE112A3803B500C91B7F /* ActivityListVC.swift in Sources */, 8DF184442A332CCD0095687B /* StudentInfoTCell.swift in Sources */, 8DD239AE2A32FC5100700DEB /* CourseTCell.swift in Sources */, 8D667BF42A31C419005B02FB /* PaymentView.swift in Sources */, 8DFA9B762A316E9A00E99281 /* LoginRegOrForgotVC.swift in Sources */, 8D6810EA2A3710CE004486DE /* StudentChooseView.swift in Sources */, 8DFA9B8B2A317DAA00E99281 /* CourseVC.swift in Sources */, 8DAEB54B2A30593C00814766 /* BaseVC.swift in Sources */, 8DAEB54E2A305A0100814766 /* Colors.swift in Sources */, 8D630BF82A31801300F0B7A8 /* SearchVC.swift in Sources */, 8DC99C882A3701CE00D0F04E /* CouponChooseView.swift in Sources */, 8D44E4F72A331DF800E7010E /* CourseDetailApplyVC.swift in Sources */, 8D6D6AF22A32D6F800DCA2C6 /* CourseListVC.swift in Sources */, 8DF184402A3327EE0095687B /* Common_1_CCell.swift in Sources */, @@ -593,16 +650,19 @@ 8DA51DFA2A32C6C10085F4BA /* StoresChooseView.swift in Sources */, 8DAEB5522A305B2D00814766 /* Fronts.swift in Sources */, 8D8DEDED2A31D82100F2C7FA /* PaymentResultVC.swift in Sources */, 8D6810E72A370EFB004486DE /* CouponTCell.swift in Sources */, 8D8400D22A2F1430003AF6A2 /* AppDelegate.swift in Sources */, 8D8DEDF22A31DDC500F2C7FA /* CouponCCell.swift in Sources */, 8D5C150E2A31885B00A8BCC9 /* CommonAlertView.swift in Sources */, 8D7017892A3308DC00473C40 /* Common_1_TCell.swift in Sources */, 8D70178D2A330E5700473C40 /* CourseDetailVC.swift in Sources */, 8D5732BD2A3724A900B2F8E3 /* AddStudentVC.swift in Sources */, 8D5C150F2A31885B00A8BCC9 /* AgreentView.swift in Sources */, 8D8400E92A2F14A3003AF6A2 /* LoginVC.swift in Sources */, 8D4905A92A31A6EC00E38513 /* HomeCCell.swift in Sources */, 8DFA9B852A3172BE00E99281 /* HomeVC.swift in Sources */, 8DFA9B912A317DE900E99281 /* WelfareVC.swift in Sources */, 8D6C50232A372B21007EC2D9 /* IDCardView.swift in Sources */, 8D630BFB2A3180B000F0B7A8 /* BaseTabBarVC.swift in Sources */, 8DAEB5502A305AEF00814766 /* Def.swift in Sources */, 8D8400D42A2F1430003AF6A2 /* SceneDelegate.swift in Sources */, WanPai.xcodeproj/xcuserdata/yangkai.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -7,7 +7,7 @@ <key>WanPai.xcscheme_^#shared#^_</key> <dict> <key>orderHint</key> <integer>0</integer> <integer>25</integer> </dict> </dict> </dict> WanPai/Assets.xcassets/Btns/btn_choose_1.imageset/Contents.json
New file @@ -0,0 +1,22 @@ { "images" : [ { "idiom" : "universal", "scale" : "1x" }, { "filename" : "btn_choose_1@2x.png", "idiom" : "universal", "scale" : "2x" }, { "filename" : "btn_choose_1@3x.png", "idiom" : "universal", "scale" : "3x" } ], "info" : { "author" : "xcode", "version" : 1 } } WanPai/Assets.xcassets/Btns/btn_choose_1.imageset/btn_choose_1@2x.png
WanPai/Assets.xcassets/Btns/btn_choose_1.imageset/btn_choose_1@3x.png
WanPai/Assets.xcassets/Icons/icon_item_p.imageset/Contents.json
New file @@ -0,0 +1,22 @@ { "images" : [ { "idiom" : "universal", "scale" : "1x" }, { "filename" : "icon_item_p@2x.png", "idiom" : "universal", "scale" : "2x" }, { "filename" : "icon_item_p@3x.png", "idiom" : "universal", "scale" : "3x" } ], "info" : { "author" : "xcode", "version" : 1 } } WanPai/Assets.xcassets/Icons/icon_item_p.imageset/icon_item_p@2x.png
WanPai/Assets.xcassets/Icons/icon_item_p.imageset/icon_item_p@3x.png
WanPai/Common/View/IDCardView.swift
New file @@ -0,0 +1,129 @@ // // IDCardView.swift // WanPai // // Created by 杨锴 on 2023/6/12. // import UIKit class IDCardView: UIView { var box:Box<String>! private let VIEW_HEIGHT:Double = 200 private let SafeInserts = UIApplication.shared.delegate?.window?!.screen.focusedView?.safeAreaInsets ?? .zero private var screenW = UIScreen.main.bounds.size.width private var avgCellW:Double! private var avgCellH:Double! private var cellItems = ["1","2","3","4","5","6","7","8","9","X","0","Del"] private var content:String = "" private var btn_X:UIButton! private var btn_Del:UIButton! override init(frame: CGRect) { super.init(frame: frame) setUI() box = Box() } private func setUI(){ avgCellW = screenW / 3.0 avgCellH = VIEW_HEIGHT / 4.0 frame = CGRect(origin: .zero, size: CGSize(width: screenW, height: VIEW_HEIGHT + SafeInserts.bottom)) backgroundColor = .white for (index,item) in cellItems.enumerated() { let i = Double(index).truncatingRemainder(dividingBy: 3.0) let j = floor(Double(index) / 3.0) let btn = createButton(text: item, indexTag: index) btn.frame = CGRect(x: i * avgCellW, y: j * avgCellH, width: avgCellW, height: avgCellH) btn.layer.borderColor = UIColor.gray.withAlphaComponent(0.2).cgColor btn.layer.borderWidth = 0.5 btn.setTitleColor(.gray.withAlphaComponent(0.2), for: .disabled) addSubview(btn) } } private func createButton(text:String,indexTag:Int)->UIButton{ let btn = UIButton(type: .roundedRect) if text == "Del"{ if #available(iOS 13.0, *) { btn.setImage(UIImage(systemName: "delete.left")?.withTintColor(.black), for: .normal) } else { btn.setTitle("Del", for: .normal) } }else{ btn.setTitle(text, for: .normal) } btn.tag = 10 + indexTag btn.titleLabel?.font = UIFont.systemFont(ofSize: 20, weight: .medium) btn.setTitleColor(.black, for: .normal) btn.addTarget(self, action: #selector(tapAction(_:)), for: .touchUpInside) btn.setTitleColor(.gray, for: .highlighted) if text == "X"{ btn_X = btn;btn_X.isEnabled = false } if text == "Del"{ btn_Del = btn let longGesture = UILongPressGestureRecognizer(target: self, action: #selector(longGesture)) btn_Del.addGestureRecognizer(longGesture) } return btn } @objc private func tapAction(_ btn:UIButton){ guard let text = btn.titleLabel?.text else { if !content.isEmpty{content.removeLast()} box.value = content btn_X.isEnabled = content.count == 17 return } if content.count <= 17{ content.append(text) } btn_X.isEnabled = content.count == 17 box.value = content } @objc private func longGesture(_ gesture:UILongPressGestureRecognizer){ if content.count > 0{ content.removeLast() box.value = content } } required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } } final class Box<T> { // 声明一个别名 typealias Listener = (T) -> Void var listener: Listener? var value: T? { didSet { guard let v = value else { return } listener?(v) } } init(_ value: T? = nil){ self.value = value } func bind(listener: Listener?) { self.listener = listener guard let v = value else { return } listener?(v) } } WanPai/Root/Activity/VC/ActivityListVC.swift
New file @@ -0,0 +1,16 @@ // // ActivityListVC.swift // WanPai // // Created by 杨锴 on 2023/6/13. // import UIKit class ActivityListVC: BaseVC { override func viewDidLoad() { super.viewDidLoad() title = "赛事活动列表" } } WanPai/Root/Activity/VC/ActivityListVC.xib
New file @@ -0,0 +1,22 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="13142" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> <dependencies> <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12042"/> <capability name="Safe area layout guides" minToolsVersion="9.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="ActivityListVC" 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="375" height="667"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/> <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/> </view> </objects> </document> WanPai/Root/Course/VC/AddStudentVC.swift
New file @@ -0,0 +1,26 @@ // // AddStudentVC.swift // WanPai // // Created by 杨锴 on 2023/6/12. // import UIKit class AddStudentVC: BaseVC { @IBOutlet weak var tf_idCard: UITextField! override func viewDidLoad() { super.viewDidLoad() title = "添加学员" let idCardView = IDCardView() idCardView.box.bind { text in self.tf_idCard.text = text } tf_idCard.inputView = idCardView } } WanPai/Root/Course/VC/AddStudentVC.xib
New file @@ -0,0 +1,407 @@ <?xml version="1.0" encoding="UTF-8"?> <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21507" 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="21505"/> <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="AddStudentVC" customModule="WanPai" customModuleProvider="target"> <connections> <outlet property="tf_idCard" destination="LD0-ej-DmH" id="cwL-wm-Ryg"/> <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> <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="5oh-CW-AiU"> <rect key="frame" x="145.66666666666666" y="84" width="102" height="102"/> <constraints> <constraint firstAttribute="width" constant="102" id="Pfw-bl-ayh"/> <constraint firstAttribute="height" constant="102" id="Udg-me-xe5"/> </constraints> <userDefinedRuntimeAttributes> <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> <real key="value" value="51"/> </userDefinedRuntimeAttribute> </userDefinedRuntimeAttributes> </imageView> <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="d3m-we-29R"> <rect key="frame" x="0.0" y="210.00000000000003" width="393" height="352.66666666666674"/> <subviews> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="sgk-Rq-GPl"> <rect key="frame" x="0.0" y="0.0" width="393" height="50.333333333333336"/> <subviews> <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_item_p" translatesAutoresizingMaskIntoConstraints="NO" id="3Gg-cy-Mrj"> <rect key="frame" x="15" y="19.333333333333343" width="12" height="12"/> </imageView> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="c4u-do-3kU"> <rect key="frame" x="14" y="50" width="365" height="0.3333333333333357"/> <color key="backgroundColor" red="0.83137254901960778" green="0.83137254901960778" blue="0.83137254901960778" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <constraints> <constraint firstAttribute="height" constant="0.40000000000000002" id="Dih-NZ-D9t"/> </constraints> </view> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="姓名" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Hd9-3e-EE2"> <rect key="frame" x="30" y="16.666666666666657" width="28.666666666666671" height="17"/> <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/> <nil key="highlightedColor"/> </label> <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入学员姓名" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="C9O-Cu-rp7"> <rect key="frame" x="120" y="0.0" width="263" height="50"/> <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> <textInputTraits key="textInputTraits"/> </textField> </subviews> <color key="backgroundColor" systemColor="systemBackgroundColor"/> <constraints> <constraint firstItem="c4u-do-3kU" firstAttribute="top" secondItem="C9O-Cu-rp7" secondAttribute="bottom" id="2FF-W0-ea4"/> <constraint firstItem="C9O-Cu-rp7" firstAttribute="top" secondItem="sgk-Rq-GPl" secondAttribute="top" id="7V0-Vg-iyf"/> <constraint firstAttribute="trailing" secondItem="c4u-do-3kU" secondAttribute="trailing" constant="14" id="88a-R9-GKh"/> <constraint firstItem="Hd9-3e-EE2" firstAttribute="centerY" secondItem="3Gg-cy-Mrj" secondAttribute="centerY" id="8MP-Cl-e7e"/> <constraint firstAttribute="height" constant="50.399999999999999" id="CwJ-if-dUJ"/> <constraint firstItem="3Gg-cy-Mrj" firstAttribute="leading" secondItem="sgk-Rq-GPl" secondAttribute="leading" constant="15" id="Rsv-ys-ul7"/> <constraint firstItem="c4u-do-3kU" firstAttribute="leading" secondItem="sgk-Rq-GPl" secondAttribute="leading" constant="14" id="c6L-Gc-0MA"/> <constraint firstAttribute="trailing" secondItem="C9O-Cu-rp7" secondAttribute="trailing" constant="10" id="dx6-qf-3AW"/> <constraint firstItem="C9O-Cu-rp7" firstAttribute="leading" secondItem="sgk-Rq-GPl" secondAttribute="leading" constant="120" id="eO9-3N-nR9"/> <constraint firstItem="Hd9-3e-EE2" firstAttribute="leading" secondItem="3Gg-cy-Mrj" secondAttribute="trailing" constant="3" id="gdz-0C-HOl"/> <constraint firstAttribute="bottom" secondItem="c4u-do-3kU" secondAttribute="bottom" id="hYA-0p-jnz"/> <constraint firstItem="3Gg-cy-Mrj" firstAttribute="centerY" secondItem="sgk-Rq-GPl" secondAttribute="centerY" id="y8Z-PU-Hbw"/> </constraints> </view> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="PXO-vA-az9"> <rect key="frame" x="0.0" y="50.333333333333314" width="393" height="50.333333333333343"/> <subviews> <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_item_p" translatesAutoresizingMaskIntoConstraints="NO" id="waQ-bZ-tyt"> <rect key="frame" x="15" y="19.333333333333371" width="12" height="12"/> </imageView> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="c21-81-tiw"> <rect key="frame" x="14" y="50" width="365" height="0.3333333333333357"/> <color key="backgroundColor" red="0.83137254900000002" green="0.83137254900000002" blue="0.83137254900000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <constraints> <constraint firstAttribute="height" constant="0.40000000000000002" id="yBJ-iI-HbF"/> </constraints> </view> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="生日" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Fjk-Kb-cDF"> <rect key="frame" x="30" y="16.666666666666686" width="28.666666666666671" height="17"/> <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/> <nil key="highlightedColor"/> </label> <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请选择" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="Gwh-N7-mRQ"> <rect key="frame" x="120" y="0.0" width="263" height="50"/> <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> <textInputTraits key="textInputTraits"/> </textField> </subviews> <color key="backgroundColor" systemColor="systemBackgroundColor"/> <constraints> <constraint firstItem="Fjk-Kb-cDF" firstAttribute="centerY" secondItem="waQ-bZ-tyt" secondAttribute="centerY" id="2mW-wd-fB9"/> <constraint firstAttribute="trailing" secondItem="c21-81-tiw" secondAttribute="trailing" constant="14" id="FOF-Wc-qtH"/> <constraint firstItem="waQ-bZ-tyt" firstAttribute="leading" secondItem="PXO-vA-az9" secondAttribute="leading" constant="15" id="Hk9-W5-bIW"/> <constraint firstItem="Gwh-N7-mRQ" firstAttribute="leading" secondItem="PXO-vA-az9" secondAttribute="leading" constant="120" id="JeT-c0-HwR"/> <constraint firstAttribute="height" constant="50.399999999999999" id="MEQ-hH-rG7"/> <constraint firstItem="waQ-bZ-tyt" firstAttribute="centerY" secondItem="PXO-vA-az9" secondAttribute="centerY" id="O6K-3i-Egv"/> <constraint firstAttribute="bottom" secondItem="c21-81-tiw" secondAttribute="bottom" id="UXu-Ei-eiU"/> <constraint firstItem="Fjk-Kb-cDF" firstAttribute="leading" secondItem="waQ-bZ-tyt" secondAttribute="trailing" constant="3" id="h2e-8E-Cmx"/> <constraint firstItem="c21-81-tiw" firstAttribute="leading" secondItem="PXO-vA-az9" secondAttribute="leading" constant="14" id="hAG-m6-5j3"/> <constraint firstAttribute="trailing" secondItem="Gwh-N7-mRQ" secondAttribute="trailing" constant="10" id="lOe-FC-hor"/> <constraint firstItem="Gwh-N7-mRQ" firstAttribute="top" secondItem="PXO-vA-az9" secondAttribute="top" id="m5l-s5-s0l"/> <constraint firstItem="c21-81-tiw" firstAttribute="top" secondItem="Gwh-N7-mRQ" secondAttribute="bottom" id="zeS-3H-qpX"/> </constraints> </view> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Fst-1Q-XPB"> <rect key="frame" x="0.0" y="100.66666666666669" width="393" height="50.666666666666657"/> <subviews> <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_item_p" translatesAutoresizingMaskIntoConstraints="NO" id="Gbp-P5-iwf"> <rect key="frame" x="15" y="19.333333333333314" width="12" height="12"/> </imageView> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="YO8-is-7dG"> <rect key="frame" x="14" y="50" width="365" height="0.6666666666666643"/> <color key="backgroundColor" red="0.83137254900000002" green="0.83137254900000002" blue="0.83137254900000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <constraints> <constraint firstAttribute="height" constant="0.40000000000000002" id="Kkp-JD-DCr"/> </constraints> </view> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="性别" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="bPG-2j-6aP"> <rect key="frame" x="30" y="17" width="28.666666666666671" height="17"/> <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/> <nil key="highlightedColor"/> </label> <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="男" placeholder="请选择" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="5l9-vJ-vil"> <rect key="frame" x="120" y="0.0" width="233" height="50"/> <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> <textInputTraits key="textInputTraits"/> </textField> <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_down_arrow" translatesAutoresizingMaskIntoConstraints="NO" id="E8L-i6-F22"> <rect key="frame" x="359" y="18.333333333333314" width="20" height="14"/> </imageView> </subviews> <color key="backgroundColor" systemColor="systemBackgroundColor"/> <constraints> <constraint firstAttribute="bottom" secondItem="YO8-is-7dG" secondAttribute="bottom" id="4MS-Iq-gmJ"/> <constraint firstAttribute="trailing" secondItem="YO8-is-7dG" secondAttribute="trailing" constant="14" id="65F-eD-ReH"/> <constraint firstAttribute="trailing" secondItem="5l9-vJ-vil" secondAttribute="trailing" constant="40" id="6vA-eX-sZX"/> <constraint firstItem="Gbp-P5-iwf" firstAttribute="centerY" secondItem="Fst-1Q-XPB" secondAttribute="centerY" id="9RS-cy-xis"/> <constraint firstAttribute="trailing" secondItem="E8L-i6-F22" secondAttribute="trailing" constant="14" id="DQL-9t-SOD"/> <constraint firstItem="5l9-vJ-vil" firstAttribute="top" secondItem="Fst-1Q-XPB" secondAttribute="top" id="HRc-7L-kYl"/> <constraint firstItem="E8L-i6-F22" firstAttribute="centerY" secondItem="Fst-1Q-XPB" secondAttribute="centerY" id="Log-fZ-GHL"/> <constraint firstItem="5l9-vJ-vil" firstAttribute="leading" secondItem="Fst-1Q-XPB" secondAttribute="leading" constant="120" id="OwA-sz-k0D"/> <constraint firstItem="YO8-is-7dG" firstAttribute="top" secondItem="5l9-vJ-vil" secondAttribute="bottom" id="a9E-8d-YV5"/> <constraint firstItem="bPG-2j-6aP" firstAttribute="centerY" secondItem="Gbp-P5-iwf" secondAttribute="centerY" id="bWY-A2-1Sr"/> <constraint firstItem="bPG-2j-6aP" firstAttribute="leading" secondItem="Gbp-P5-iwf" secondAttribute="trailing" constant="3" id="fLM-OZ-0Cv"/> <constraint firstAttribute="height" constant="50.399999999999999" id="lej-8g-JiS"/> <constraint firstItem="Gbp-P5-iwf" firstAttribute="leading" secondItem="Fst-1Q-XPB" secondAttribute="leading" constant="15" id="w3N-6X-E43"/> <constraint firstItem="YO8-is-7dG" firstAttribute="leading" secondItem="Fst-1Q-XPB" secondAttribute="leading" constant="14" id="yZF-NA-ZVR"/> </constraints> </view> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="R0d-XL-DhI"> <rect key="frame" x="0.0" y="151.33333333333331" width="393" height="50.333333333333343"/> <subviews> <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_item_p" translatesAutoresizingMaskIntoConstraints="NO" id="3dp-Mn-mBX"> <rect key="frame" x="15" y="19" width="12" height="12"/> </imageView> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="iGJ-Lp-h7F"> <rect key="frame" x="14" y="50" width="365" height="0.3333333333333357"/> <color key="backgroundColor" red="0.83137254900000002" green="0.83137254900000002" blue="0.83137254900000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <constraints> <constraint firstAttribute="height" constant="0.40000000000000002" id="r3C-n0-1ch"/> </constraints> </view> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="身高" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ADA-uT-2gD"> <rect key="frame" x="30" y="16.666666666666686" width="28.666666666666671" height="17"/> <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/> <nil key="highlightedColor"/> </label> <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入学员身高" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="Oj3-XX-8wG" customClass="QMUITextField"> <rect key="frame" x="120" y="0.0" width="233" height="50"/> <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> <textInputTraits key="textInputTraits" keyboardType="numberPad"/> <userDefinedRuntimeAttributes> <userDefinedRuntimeAttribute type="number" keyPath="maximumTextLength"> <integer key="value" value="3"/> </userDefinedRuntimeAttribute> </userDefinedRuntimeAttributes> </textField> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="cm" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="QN7-D8-hdg"> <rect key="frame" x="358.66666666666669" y="16.666666666666686" width="20.333333333333314" height="17"/> <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.40000000000000002" colorSpace="custom" customColorSpace="sRGB"/> <nil key="highlightedColor"/> </label> </subviews> <color key="backgroundColor" systemColor="systemBackgroundColor"/> <constraints> <constraint firstAttribute="trailing" secondItem="QN7-D8-hdg" secondAttribute="trailing" constant="14" id="8Oy-hz-CQ1"/> <constraint firstItem="iGJ-Lp-h7F" firstAttribute="top" secondItem="Oj3-XX-8wG" secondAttribute="bottom" id="8rc-JY-LDW"/> <constraint firstItem="Oj3-XX-8wG" firstAttribute="top" secondItem="R0d-XL-DhI" secondAttribute="top" id="ACt-yf-IcW"/> <constraint firstItem="ADA-uT-2gD" firstAttribute="centerY" secondItem="3dp-Mn-mBX" secondAttribute="centerY" id="CTg-xQ-DKd"/> <constraint firstAttribute="trailing" secondItem="Oj3-XX-8wG" secondAttribute="trailing" constant="40" id="GFg-dI-pEM"/> <constraint firstItem="3dp-Mn-mBX" firstAttribute="leading" secondItem="R0d-XL-DhI" secondAttribute="leading" constant="15" id="LNP-3f-Qsj"/> <constraint firstAttribute="bottom" secondItem="iGJ-Lp-h7F" secondAttribute="bottom" id="Zsj-HO-3T1"/> <constraint firstItem="Oj3-XX-8wG" firstAttribute="leading" secondItem="R0d-XL-DhI" secondAttribute="leading" constant="120" id="cKW-FS-At0"/> <constraint firstItem="3dp-Mn-mBX" firstAttribute="centerY" secondItem="R0d-XL-DhI" secondAttribute="centerY" id="gNV-67-8Bu"/> <constraint firstAttribute="height" constant="50.399999999999999" id="mrE-mE-ylE"/> <constraint firstItem="QN7-D8-hdg" firstAttribute="centerY" secondItem="3dp-Mn-mBX" secondAttribute="centerY" id="shY-Hs-NTu"/> <constraint firstItem="ADA-uT-2gD" firstAttribute="leading" secondItem="3dp-Mn-mBX" secondAttribute="trailing" constant="3" id="svG-KD-r17"/> <constraint firstAttribute="trailing" secondItem="iGJ-Lp-h7F" secondAttribute="trailing" constant="14" id="zh0-U8-JRH"/> <constraint firstItem="iGJ-Lp-h7F" firstAttribute="leading" secondItem="R0d-XL-DhI" secondAttribute="leading" constant="14" id="zo3-cy-ABI"/> </constraints> </view> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="iPl-pJ-Ftu"> <rect key="frame" x="0.0" y="201.66666666666669" width="393" height="50.333333333333343"/> <subviews> <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_item_p" translatesAutoresizingMaskIntoConstraints="NO" id="tDX-uz-7Lt"> <rect key="frame" x="15" y="19" width="12" height="12"/> </imageView> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Qfz-6T-07R"> <rect key="frame" x="14" y="50" width="365" height="0.3333333333333357"/> <color key="backgroundColor" red="0.83137254900000002" green="0.83137254900000002" blue="0.83137254900000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <constraints> <constraint firstAttribute="height" constant="0.40000000000000002" id="QTF-VW-2cq"/> </constraints> </view> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="体重" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="GPK-rF-DJy"> <rect key="frame" x="30" y="16.666666666666629" width="28.666666666666671" height="17"/> <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/> <nil key="highlightedColor"/> </label> <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入学员体重" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="XDz-T3-HBc" customClass="QMUITextField"> <rect key="frame" x="120" y="0.0" width="233" height="50"/> <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> <textInputTraits key="textInputTraits" keyboardType="numberPad"/> <userDefinedRuntimeAttributes> <userDefinedRuntimeAttribute type="number" keyPath="maximumTextLength"> <integer key="value" value="3"/> </userDefinedRuntimeAttribute> </userDefinedRuntimeAttributes> </textField> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="kg" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="EoT-if-iYA"> <rect key="frame" x="363" y="16.666666666666629" width="16" height="17"/> <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.40000000000000002" colorSpace="custom" customColorSpace="sRGB"/> <nil key="highlightedColor"/> </label> </subviews> <color key="backgroundColor" systemColor="systemBackgroundColor"/> <constraints> <constraint firstItem="GPK-rF-DJy" firstAttribute="centerY" secondItem="tDX-uz-7Lt" secondAttribute="centerY" id="3au-AZ-mvb"/> <constraint firstAttribute="trailing" secondItem="EoT-if-iYA" secondAttribute="trailing" constant="14" id="Bre-lf-vlI"/> <constraint firstAttribute="height" constant="50.399999999999999" id="DF1-mV-OHz"/> <constraint firstItem="XDz-T3-HBc" firstAttribute="top" secondItem="iPl-pJ-Ftu" secondAttribute="top" id="O2y-Wk-xsx"/> <constraint firstItem="Qfz-6T-07R" firstAttribute="leading" secondItem="iPl-pJ-Ftu" secondAttribute="leading" constant="14" id="Pef-kp-a3d"/> <constraint firstAttribute="trailing" secondItem="XDz-T3-HBc" secondAttribute="trailing" constant="40" id="R51-96-FIj"/> <constraint firstItem="GPK-rF-DJy" firstAttribute="leading" secondItem="tDX-uz-7Lt" secondAttribute="trailing" constant="3" id="aeW-Si-00A"/> <constraint firstItem="Qfz-6T-07R" firstAttribute="top" secondItem="XDz-T3-HBc" secondAttribute="bottom" id="bLD-xj-gTk"/> <constraint firstItem="tDX-uz-7Lt" firstAttribute="leading" secondItem="iPl-pJ-Ftu" secondAttribute="leading" constant="15" id="k8W-lE-4iO"/> <constraint firstAttribute="trailing" secondItem="Qfz-6T-07R" secondAttribute="trailing" constant="14" id="kVt-WU-1WT"/> <constraint firstItem="EoT-if-iYA" firstAttribute="centerY" secondItem="tDX-uz-7Lt" secondAttribute="centerY" id="mF5-fM-VMF"/> <constraint firstItem="tDX-uz-7Lt" firstAttribute="centerY" secondItem="iPl-pJ-Ftu" secondAttribute="centerY" id="nvJ-pW-GYc"/> <constraint firstItem="XDz-T3-HBc" firstAttribute="leading" secondItem="iPl-pJ-Ftu" secondAttribute="leading" constant="120" id="oNY-6u-4To"/> <constraint firstAttribute="bottom" secondItem="Qfz-6T-07R" secondAttribute="bottom" id="yLW-4W-fDF"/> </constraints> </view> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="2nU-pk-phu"> <rect key="frame" x="0.0" y="252.00000000000003" width="393" height="50.333333333333343"/> <subviews> <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_item_p" translatesAutoresizingMaskIntoConstraints="NO" id="heO-1g-jYH"> <rect key="frame" x="15" y="19.333333333333314" width="12" height="12"/> </imageView> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="c6a-Ai-3Np"> <rect key="frame" x="14" y="50" width="365" height="0.3333333333333357"/> <color key="backgroundColor" red="0.83137254900000002" green="0.83137254900000002" blue="0.83137254900000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <constraints> <constraint firstAttribute="height" constant="0.40000000000000002" id="2yI-f5-96H"/> </constraints> </view> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="联系方式" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="DPg-zi-req"> <rect key="frame" x="30.000000000000004" y="16.666666666666686" width="57.333333333333343" height="17"/> <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/> <nil key="highlightedColor"/> </label> <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入学员联系方式" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="eT7-mO-3I8" customClass="QMUITextField"> <rect key="frame" x="120" y="0.0" width="233" height="50"/> <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> <textInputTraits key="textInputTraits" keyboardType="numberPad"/> <userDefinedRuntimeAttributes> <userDefinedRuntimeAttribute type="number" keyPath="maximumTextLength"> <integer key="value" value="11"/> </userDefinedRuntimeAttribute> </userDefinedRuntimeAttributes> </textField> </subviews> <color key="backgroundColor" systemColor="systemBackgroundColor"/> <constraints> <constraint firstItem="eT7-mO-3I8" firstAttribute="leading" secondItem="2nU-pk-phu" secondAttribute="leading" constant="120" id="5rc-Vo-lne"/> <constraint firstItem="heO-1g-jYH" firstAttribute="leading" secondItem="2nU-pk-phu" secondAttribute="leading" constant="15" id="Aah-sL-gPy"/> <constraint firstAttribute="trailing" secondItem="eT7-mO-3I8" secondAttribute="trailing" constant="40" id="Amx-f1-Qi4"/> <constraint firstItem="c6a-Ai-3Np" firstAttribute="top" secondItem="eT7-mO-3I8" secondAttribute="bottom" id="GCe-gk-F1O"/> <constraint firstItem="eT7-mO-3I8" firstAttribute="top" secondItem="2nU-pk-phu" secondAttribute="top" id="GhU-m9-uTp"/> <constraint firstAttribute="trailing" secondItem="c6a-Ai-3Np" secondAttribute="trailing" constant="14" id="Jew-PT-4Tk"/> <constraint firstAttribute="bottom" secondItem="c6a-Ai-3Np" secondAttribute="bottom" id="btp-Pj-qXe"/> <constraint firstAttribute="height" constant="50.399999999999999" id="dxG-vK-Tf9"/> <constraint firstItem="DPg-zi-req" firstAttribute="centerY" secondItem="heO-1g-jYH" secondAttribute="centerY" id="e3M-oc-rh7"/> <constraint firstItem="DPg-zi-req" firstAttribute="leading" secondItem="heO-1g-jYH" secondAttribute="trailing" constant="3" id="fhE-9U-Wi3"/> <constraint firstItem="c6a-Ai-3Np" firstAttribute="leading" secondItem="2nU-pk-phu" secondAttribute="leading" constant="14" id="j7Q-C8-u2p"/> <constraint firstItem="heO-1g-jYH" firstAttribute="centerY" secondItem="2nU-pk-phu" secondAttribute="centerY" id="yww-Ea-bDM"/> </constraints> </view> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="eXg-lM-iFa"> <rect key="frame" x="0.0" y="302.33333333333337" width="393" height="50.333333333333314"/> <subviews> <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_item_p" translatesAutoresizingMaskIntoConstraints="NO" id="4SZ-GR-0yH"> <rect key="frame" x="15" y="19.333333333333258" width="12" height="12"/> </imageView> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="NlW-dD-gIp"> <rect key="frame" x="14" y="50" width="365" height="0.3333333333333357"/> <color key="backgroundColor" red="0.83137254900000002" green="0.83137254900000002" blue="0.83137254900000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <constraints> <constraint firstAttribute="height" constant="0.40000000000000002" id="i2J-rI-rHl"/> </constraints> </view> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="身份证号" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="JjF-jS-GPH"> <rect key="frame" x="30.000000000000004" y="16.666666666666629" width="57.333333333333343" height="17"/> <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/> <nil key="highlightedColor"/> </label> <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入学员身份证号" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="LD0-ej-DmH"> <rect key="frame" x="120" y="0.0" width="233" height="50"/> <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> <textInputTraits key="textInputTraits" keyboardType="numberPad"/> </textField> </subviews> <color key="backgroundColor" systemColor="systemBackgroundColor"/> <constraints> <constraint firstAttribute="trailing" secondItem="LD0-ej-DmH" secondAttribute="trailing" constant="40" id="0gt-Pw-IV7"/> <constraint firstItem="LD0-ej-DmH" firstAttribute="top" secondItem="eXg-lM-iFa" secondAttribute="top" id="2K7-zV-OyA"/> <constraint firstItem="JjF-jS-GPH" firstAttribute="centerY" secondItem="4SZ-GR-0yH" secondAttribute="centerY" id="4Wi-qJ-HQu"/> <constraint firstAttribute="bottom" secondItem="NlW-dD-gIp" secondAttribute="bottom" id="9Mu-Gg-yex"/> <constraint firstItem="LD0-ej-DmH" firstAttribute="leading" secondItem="eXg-lM-iFa" secondAttribute="leading" constant="120" id="9U6-rD-Jfd"/> <constraint firstItem="4SZ-GR-0yH" firstAttribute="centerY" secondItem="eXg-lM-iFa" secondAttribute="centerY" id="OKc-zz-Xbr"/> <constraint firstItem="NlW-dD-gIp" firstAttribute="leading" secondItem="eXg-lM-iFa" secondAttribute="leading" constant="14" id="Qir-9y-1mQ"/> <constraint firstItem="4SZ-GR-0yH" firstAttribute="leading" secondItem="eXg-lM-iFa" secondAttribute="leading" constant="15" id="XwP-ey-1bY"/> <constraint firstAttribute="trailing" secondItem="NlW-dD-gIp" secondAttribute="trailing" constant="14" id="jSc-75-egP"/> <constraint firstItem="NlW-dD-gIp" firstAttribute="top" secondItem="LD0-ej-DmH" secondAttribute="bottom" id="mxF-BK-Axi"/> <constraint firstAttribute="height" constant="50.399999999999999" id="ngz-MT-wKh"/> <constraint firstItem="JjF-jS-GPH" firstAttribute="leading" secondItem="4SZ-GR-0yH" secondAttribute="trailing" constant="3" id="qld-zr-Coe"/> </constraints> </view> </subviews> </stackView> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="KyK-7A-Oi3"> <rect key="frame" x="100" y="601.66666666666663" width="193" height="40"/> <color key="backgroundColor" name="FE6E0D"/> <constraints> <constraint firstAttribute="height" constant="40" id="ftL-wZ-RWw"/> </constraints> <fontDescription key="fontDescription" type="system" weight="medium" pointSize="15"/> <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> <state key="normal" title="确认"/> <userDefinedRuntimeAttributes> <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> <real key="value" value="20"/> </userDefinedRuntimeAttribute> </userDefinedRuntimeAttributes> </button> </subviews> <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/> <color key="backgroundColor" systemColor="systemBackgroundColor"/> <constraints> <constraint firstItem="d3m-we-29R" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="1ds-BA-yQx"/> <constraint firstItem="KyK-7A-Oi3" firstAttribute="top" secondItem="d3m-we-29R" secondAttribute="bottom" constant="39" id="8HH-th-KGV"/> <constraint firstItem="KyK-7A-Oi3" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="100" id="GQG-YU-FM0"/> <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="d3m-we-29R" secondAttribute="trailing" id="GUV-89-fyH"/> <constraint firstItem="5oh-CW-AiU" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" constant="25" id="QvX-15-W0k"/> <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="KyK-7A-Oi3" secondAttribute="trailing" constant="100" id="gh3-61-wYy"/> <constraint firstItem="5oh-CW-AiU" firstAttribute="centerX" secondItem="fnl-2z-Ty3" secondAttribute="centerX" id="nOm-Zk-VjG"/> <constraint firstItem="d3m-we-29R" firstAttribute="top" secondItem="5oh-CW-AiU" secondAttribute="bottom" constant="24" id="qXQ-dq-ECr"/> </constraints> <point key="canvasLocation" x="40" y="21"/> </view> </objects> <resources> <image name="icon_down_arrow" width="20" height="14"/> <image name="icon_item_p" width="12" height="12"/> <namedColor name="FE6E0D"> <color red="0.99599999189376831" green="0.4309999942779541" blue="0.050999999046325684" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> </namedColor> <systemColor name="systemBackgroundColor"> <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> </systemColor> </resources> </document> WanPai/Root/Course/VC/CourseDetailApplyVC.swift
@@ -16,6 +16,7 @@ @IBOutlet weak var btn_addStudent: QMUIButton! @IBOutlet weak var tableView: UITableView! @IBOutlet weak var cons_tableHei: NSLayoutConstraint! @IBOutlet weak var btn_coupon: TapBtn! @IBOutlet weak var studentTableView: UITableView! var CellW:Double! @@ -43,6 +44,29 @@ btn_addStudent.imagePosition = .right btn_addStudent.spacingBetweenImageAndTitle = 3 } @IBAction func couponAction(_ sender: TapBtn) { CouponChooseView.show() } @IBAction func studentAction(_ sender: QMUIButton) { StudentChooseView.show { } needAddClouse: { [weak self] () in let vc = AddStudentVC() self?.push(vc: vc) } } @IBAction func paymentAction(_ sender: UIButton) { PaymentView.show { status in let paymentState:PaymentResultVC.PaymentResult = status ? .success:.fail let vc = PaymentResultVC(result: paymentState, objType: .apply) vc.modalPresentationStyle = .fullScreen self.present(vc, animated: true) } } } extension CourseDetailApplyVC:UICollectionViewDelegate{ WanPai/Root/Course/VC/CourseDetailApplyVC.xib
@@ -13,6 +13,7 @@ <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="CourseDetailApplyVC" customModule="WanPai" customModuleProvider="target"> <connections> <outlet property="btn_addStudent" destination="kv0-E8-XGD" id="H56-eE-BCc"/> <outlet property="btn_coupon" destination="XNI-Vj-heV" id="es4-Cw-MCW"/> <outlet property="collectionView" destination="ZtR-nH-Ly1" id="Snf-0R-x4b"/> <outlet property="cons_collectHei" destination="wOm-8j-9fG" id="ycB-BH-9OQ"/> <outlet property="cons_tableHei" destination="YrT-fE-DXP" id="wAi-wu-Afa"/> @@ -289,6 +290,9 @@ <state key="normal" title="选择学员" image="btn_add_1"> <color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="0.56999999999999995" colorSpace="custom" customColorSpace="sRGB"/> </state> <connections> <action selector="studentAction:" destination="-1" eventType="touchUpInside" id="3FG-WZ-i0P"/> </connections> </button> <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" scrollEnabled="NO" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="CMD-gX-7vo"> <rect key="frame" x="14" y="46" width="365" height="76"/> @@ -313,7 +317,7 @@ <constraint firstItem="kv0-E8-XGD" firstAttribute="centerY" secondItem="ahH-c9-ZOs" secondAttribute="centerY" id="xn2-9h-Vom"/> </constraints> </view> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="XNI-Vj-heV"> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="XNI-Vj-heV" customClass="TapBtn" customModule="WanPai" customModuleProvider="target"> <rect key="frame" x="0.0" y="705.66666666666663" width="393" height="49"/> <subviews> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="1GA-NZ-pkR"> @@ -332,7 +336,7 @@ <nil key="textColor"/> <nil key="highlightedColor"/> </label> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="uvW-sZ-v3z"> <button opaque="NO" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="uvW-sZ-v3z"> <rect key="frame" x="336" y="10" width="43" height="29"/> <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> @@ -352,6 +356,9 @@ <constraint firstAttribute="bottom" secondItem="1GA-NZ-pkR" secondAttribute="bottom" id="wR5-QT-Zl7"/> <constraint firstItem="1GA-NZ-pkR" firstAttribute="leading" secondItem="XNI-Vj-heV" secondAttribute="leading" constant="13" id="z6y-gl-PVC"/> </constraints> <connections> <action selector="couponAction:" destination="-1" eventType="touchUpInside" id="NPB-pC-9Eu"/> </connections> </view> </subviews> </stackView> @@ -405,6 +412,9 @@ <real key="value" value="20"/> </userDefinedRuntimeAttribute> </userDefinedRuntimeAttributes> <connections> <action selector="paymentAction:" destination="-1" eventType="touchUpInside" id="nX5-iV-ABY"/> </connections> </button> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="6Nt-Eo-1K1"> <rect key="frame" x="0.0" y="0.0" width="393" height="0.66666666666666663"/> WanPai/Root/Home/VC/HomeVC.swift
@@ -60,6 +60,11 @@ let vc = CourseListVC() push(vc: vc) } if indexPath.row == 1{ let vc = ActivityListVC() push(vc: vc) } } } WanPai/Root/Home/VC/JoinMemberIntroduceVC.swift
@@ -26,7 +26,7 @@ @IBAction func joinAction(_ sender: QMUIButton) { PaymentView.show { status in let paymentState:PaymentResultVC.PaymentResult = status ? .success:.fail let vc = PaymentResultVC(result: paymentState) let vc = PaymentResultVC(result: paymentState, objType: .member) vc.modalPresentationStyle = .fullScreen self.present(vc, animated: true) WanPai/Root/Other/TCell/CouponTCell.swift
New file @@ -0,0 +1,16 @@ // // CouponTCell.swift // WanPai // // Created by 杨锴 on 2023/6/12. // import UIKit class CouponTCell: UITableViewCell { override func awakeFromNib() { super.awakeFromNib() selectionStyle = .none } } WanPai/Root/Other/TCell/CouponTCell.xib
New file @@ -0,0 +1,136 @@ <?xml version="1.0" encoding="UTF-8"?> <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21507" 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="21505"/> <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"/> <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="_CouponTCell" rowHeight="142" id="KGk-i7-Jjw" customClass="CouponTCell" customModule="WanPai" customModuleProvider="target"> <rect key="frame" x="0.0" y="0.0" width="459" height="142"/> <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="459" height="142"/> <autoresizingMask key="autoresizingMask"/> <subviews> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="tgl-HJ-o47"> <rect key="frame" x="14" y="10" width="431" height="122"/> <subviews> <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="1000" verticalHuggingPriority="251" image="icon_coupon_header" translatesAutoresizingMaskIntoConstraints="NO" id="zmS-eg-Mj0"> <rect key="frame" x="0.0" y="0.0" width="100" height="122"/> </imageView> <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_coupon_footer" translatesAutoresizingMaskIntoConstraints="NO" id="gIO-rm-Idg"> <rect key="frame" x="100" y="0.0" width="331" height="122"/> </imageView> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0元" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3QE-LO-GFM"> <rect key="frame" x="5" y="5" width="90" height="112"/> <fontDescription key="fontDescription" type="system" weight="medium" pointSize="24"/> <color key="textColor" red="1" green="1" blue="1" alpha="1" 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="pqd-2P-O0e"> <rect key="frame" x="115" y="18" width="16.333333333333343" height="25"/> <constraints> <constraint firstAttribute="height" constant="25" id="feh-7y-gmP"/> </constraints> <fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/> <nil key="textColor"/> <nil key="highlightedColor"/> </label> <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="3" translatesAutoresizingMaskIntoConstraints="NO" id="R6d-L2-gef"> <rect key="frame" x="115.00000000000001" y="46" width="60.666666666666671" height="37"/> <subviews> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="满--元可用" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="QGi-7X-2rC"> <rect key="frame" x="0.0" y="0.0" width="60.666666666666664" height="17"/> <constraints> <constraint firstAttribute="height" constant="17" id="agE-nr-M3c"/> </constraints> <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/> <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.59999999999999998" 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="7mn-yy-wtX"> <rect key="frame" x="0.0" y="20" width="60.666666666666664" height="17"/> <constraints> <constraint firstAttribute="height" constant="17" id="FUm-Cr-mcZ"/> </constraints> <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/> <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/> <nil key="highlightedColor"/> </label> </subviews> </stackView> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="uap-oQ-COV"> <rect key="frame" x="361" y="49.666666666666664" width="61" height="22.999999999999993"/> <constraints> <constraint firstAttribute="width" constant="61" id="E0U-vG-ym7"/> <constraint firstAttribute="height" constant="23" id="swg-VA-9gM"/> </constraints> <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/> <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> <state key="normal" title="查看详情"> <color key="titleColor" red="0.99215686270000003" green="0.52941176469999995" blue="0.0078431372550000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> </state> <userDefinedRuntimeAttributes> <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> <real key="value" value="1"/> </userDefinedRuntimeAttribute> <userDefinedRuntimeAttribute type="number" keyPath="jq_xibCornerRadius"> <real key="value" value="2"/> </userDefinedRuntimeAttribute> </userDefinedRuntimeAttributes> </button> <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="btn_choose_1" translatesAutoresizingMaskIntoConstraints="NO" id="MyU-nB-kSQ"> <rect key="frame" x="398" y="10" width="24" height="24"/> </imageView> </subviews> <color key="backgroundColor" systemColor="systemBackgroundColor"/> <constraints> <constraint firstItem="uap-oQ-COV" firstAttribute="centerY" secondItem="3QE-LO-GFM" secondAttribute="centerY" id="05f-hO-2Wj"/> <constraint firstAttribute="bottom" secondItem="zmS-eg-Mj0" secondAttribute="bottom" id="13N-ha-xzV"/> <constraint firstAttribute="bottom" secondItem="gIO-rm-Idg" secondAttribute="bottom" id="2BD-WG-af7"/> <constraint firstItem="R6d-L2-gef" firstAttribute="leading" secondItem="pqd-2P-O0e" secondAttribute="leading" id="3eE-Ot-ysn"/> <constraint firstItem="R6d-L2-gef" firstAttribute="top" secondItem="pqd-2P-O0e" secondAttribute="bottom" constant="3" id="84e-0U-1mW"/> <constraint firstItem="zmS-eg-Mj0" firstAttribute="top" secondItem="tgl-HJ-o47" secondAttribute="top" id="8xT-0h-Jbv"/> <constraint firstItem="pqd-2P-O0e" firstAttribute="leading" secondItem="zmS-eg-Mj0" secondAttribute="trailing" constant="15" id="CJ1-E7-C7u"/> <constraint firstAttribute="trailing" secondItem="gIO-rm-Idg" secondAttribute="trailing" id="FhT-YH-yQT"/> <constraint firstItem="pqd-2P-O0e" firstAttribute="top" secondItem="tgl-HJ-o47" secondAttribute="top" constant="18" id="Isz-wP-dtw"/> <constraint firstItem="3QE-LO-GFM" firstAttribute="leading" secondItem="zmS-eg-Mj0" secondAttribute="leading" constant="5" id="Loo-FY-e8F"/> <constraint firstAttribute="trailing" secondItem="MyU-nB-kSQ" secondAttribute="trailing" constant="9" id="N01-Zz-QQ8"/> <constraint firstItem="3QE-LO-GFM" firstAttribute="top" secondItem="zmS-eg-Mj0" secondAttribute="top" constant="5" id="OjG-1N-cu5"/> <constraint firstItem="zmS-eg-Mj0" firstAttribute="leading" secondItem="tgl-HJ-o47" secondAttribute="leading" id="VMU-zz-c7r"/> <constraint firstItem="gIO-rm-Idg" firstAttribute="leading" secondItem="zmS-eg-Mj0" secondAttribute="trailing" id="ZtA-Ey-S24"/> <constraint firstItem="3QE-LO-GFM" firstAttribute="trailing" secondItem="zmS-eg-Mj0" secondAttribute="trailing" constant="-5" id="atx-5F-itp"/> <constraint firstItem="3QE-LO-GFM" firstAttribute="bottom" secondItem="zmS-eg-Mj0" secondAttribute="bottom" constant="-5" id="fGv-Vw-NDO"/> <constraint firstItem="MyU-nB-kSQ" firstAttribute="top" secondItem="tgl-HJ-o47" secondAttribute="top" constant="10" id="iZs-AQ-jV4"/> <constraint firstAttribute="trailing" secondItem="uap-oQ-COV" secondAttribute="trailing" constant="9" id="kSA-Sl-Zoy"/> <constraint firstItem="gIO-rm-Idg" firstAttribute="top" secondItem="tgl-HJ-o47" secondAttribute="top" id="piA-CQ-Dn6"/> </constraints> </view> </subviews> <constraints> <constraint firstItem="tgl-HJ-o47" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="10" id="IAF-yN-tsN"/> <constraint firstAttribute="bottom" secondItem="tgl-HJ-o47" secondAttribute="bottom" constant="10" id="IHo-qw-9LQ"/> <constraint firstItem="tgl-HJ-o47" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="14" id="elG-km-OZX"/> <constraint firstAttribute="trailing" secondItem="tgl-HJ-o47" secondAttribute="trailing" constant="14" id="vx5-fe-yx7"/> </constraints> </tableViewCellContentView> <viewLayoutGuide key="safeArea" id="njF-e1-oar"/> <point key="canvasLocation" x="96.946564885496173" y="54.929577464788736"/> </tableViewCell> </objects> <resources> <image name="btn_choose_1" width="24" height="24"/> <image name="icon_coupon_footer" width="262" height="100"/> <image name="icon_coupon_header" width="100" height="100"/> <systemColor name="systemBackgroundColor"> <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> </systemColor> </resources> </document> WanPai/Root/Other/TCell/StudentInfoTCell.xib
@@ -9,95 +9,107 @@ <objects> <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/> <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="89" id="KGk-i7-Jjw" customClass="StudentInfoTCell" customModule="WanPai" customModuleProvider="target"> <rect key="frame" x="0.0" y="0.0" width="321" height="89"/> <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="119" id="KGk-i7-Jjw" customClass="StudentInfoTCell" customModule="WanPai" customModuleProvider="target"> <rect key="frame" x="0.0" y="0.0" width="366" height="119"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" ambiguous="YES" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM"> <rect key="frame" x="0.0" y="0.0" width="321" height="89"/> <rect key="frame" x="0.0" y="0.0" width="366" height="119"/> <autoresizingMask key="autoresizingMask"/> <subviews> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="姓名:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="JeQ-E8-nRz"> <rect key="frame" x="10" y="13" width="43" height="20"/> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="wux-IQ-y3O"> <rect key="frame" x="14" y="7" width="338" height="76"/> <subviews> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="姓名:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="JeQ-E8-nRz"> <rect key="frame" x="10" y="13" width="43" height="20"/> <constraints> <constraint firstAttribute="height" constant="20" id="awc-A9-uu9"/> </constraints> <fontDescription key="fontDescription" type="system" pointSize="14"/> <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.59999999999999998" 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="0TW-3R-Kd5"> <rect key="frame" x="53" y="14.666666666666668" width="13.333333333333329" height="17"/> <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> <nil key="textColor"/> <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="Kyb-yz-a5P"> <rect key="frame" x="114" y="13" width="71.666666666666686" height="20"/> <constraints> <constraint firstAttribute="height" constant="20" id="T0x-iq-e0Y"/> </constraints> <fontDescription key="fontDescription" type="system" pointSize="14"/> <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.59999999999999998" 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="A9b-WE-sPt"> <rect key="frame" x="185.66666666666666" y="14.666666666666668" width="13.333333333333343" height="17"/> <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> <nil key="textColor"/> <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="LKW-Uz-UH1"> <rect key="frame" x="10" y="44" width="43" height="20"/> <constraints> <constraint firstAttribute="height" constant="20" id="koj-3m-yDM"/> </constraints> <fontDescription key="fontDescription" type="system" pointSize="14"/> <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.59999999999999998" 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="o0m-fp-glP"> <rect key="frame" x="53" y="45.666666666666664" width="13.333333333333329" height="17"/> <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> <nil key="textColor"/> <nil key="highlightedColor"/> </label> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="UXK-s8-fn9"> <rect key="frame" x="314" y="12" width="16" height="22"/> <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> <state key="normal" image="btn_delete"/> </button> </subviews> <color key="backgroundColor" red="1" green="0.90588235294117647" blue="0.80000000000000004" alpha="0.080000000000000002" colorSpace="custom" customColorSpace="sRGB"/> <constraints> <constraint firstAttribute="height" constant="20" id="awc-A9-uu9"/> <constraint firstItem="Kyb-yz-a5P" firstAttribute="centerY" secondItem="JeQ-E8-nRz" secondAttribute="centerY" id="0Ga-Jy-5aE"/> <constraint firstItem="A9b-WE-sPt" firstAttribute="leading" secondItem="Kyb-yz-a5P" secondAttribute="trailing" id="1bw-Go-MnF"/> <constraint firstItem="A9b-WE-sPt" firstAttribute="centerY" secondItem="Kyb-yz-a5P" secondAttribute="centerY" id="487-3c-aRH"/> <constraint firstAttribute="trailing" secondItem="UXK-s8-fn9" secondAttribute="trailing" constant="8" id="6wi-7D-KrW"/> <constraint firstItem="Kyb-yz-a5P" firstAttribute="leading" secondItem="wux-IQ-y3O" secondAttribute="leading" constant="114" id="7sx-2w-lHq"/> <constraint firstItem="o0m-fp-glP" firstAttribute="leading" secondItem="LKW-Uz-UH1" secondAttribute="trailing" id="GyS-v7-FSb"/> <constraint firstItem="0TW-3R-Kd5" firstAttribute="centerY" secondItem="JeQ-E8-nRz" secondAttribute="centerY" id="Hhw-Qg-p9Q"/> <constraint firstItem="LKW-Uz-UH1" firstAttribute="top" secondItem="JeQ-E8-nRz" secondAttribute="bottom" constant="11" id="RmL-Be-C5k"/> <constraint firstItem="o0m-fp-glP" firstAttribute="centerY" secondItem="LKW-Uz-UH1" secondAttribute="centerY" id="ZWC-Ao-iLI"/> <constraint firstAttribute="height" constant="76" id="e7G-ot-jXA"/> <constraint firstItem="LKW-Uz-UH1" firstAttribute="leading" secondItem="wux-IQ-y3O" secondAttribute="leading" constant="10" id="i0L-uL-iCS"/> <constraint firstItem="UXK-s8-fn9" firstAttribute="centerY" secondItem="JeQ-E8-nRz" secondAttribute="centerY" id="qNj-oj-K5k"/> <constraint firstItem="0TW-3R-Kd5" firstAttribute="leading" secondItem="JeQ-E8-nRz" secondAttribute="trailing" id="r44-XI-Jnx"/> <constraint firstItem="JeQ-E8-nRz" firstAttribute="top" secondItem="wux-IQ-y3O" secondAttribute="top" constant="13" id="sNU-f8-gxg"/> <constraint firstItem="JeQ-E8-nRz" firstAttribute="leading" secondItem="wux-IQ-y3O" secondAttribute="leading" constant="10" id="vQp-Ry-AUK"/> </constraints> <fontDescription key="fontDescription" type="system" pointSize="14"/> <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.59999999999999998" 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="0TW-3R-Kd5"> <rect key="frame" x="53" y="14.666666666666664" width="13.333333333333329" height="17"/> <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> <nil key="textColor"/> <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="LKW-Uz-UH1"> <rect key="frame" x="10" y="44" width="43" height="20"/> <constraints> <constraint firstAttribute="height" constant="20" id="koj-3m-yDM"/> </constraints> <fontDescription key="fontDescription" type="system" pointSize="14"/> <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.59999999999999998" 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="o0m-fp-glP"> <rect key="frame" x="53" y="45.666666666666664" width="13.333333333333329" height="17"/> <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> <nil key="textColor"/> <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="Kyb-yz-a5P"> <rect key="frame" x="114" y="13" width="71.666666666666686" height="20"/> <constraints> <constraint firstAttribute="height" constant="20" id="T0x-iq-e0Y"/> </constraints> <fontDescription key="fontDescription" type="system" pointSize="14"/> <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.59999999999999998" 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="A9b-WE-sPt"> <rect key="frame" x="185.66666666666666" y="14.666666666666664" width="13.333333333333343" height="17"/> <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> <nil key="textColor"/> <nil key="highlightedColor"/> </label> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="UXK-s8-fn9"> <rect key="frame" x="300" y="12" width="16" height="22"/> <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> <state key="normal" image="btn_delete"/> </button> <userDefinedRuntimeAttributes> <userDefinedRuntimeAttribute type="color" keyPath="borderColor"> <color key="value" red="0.99215686274509807" green="0.47450980392156861" blue="0.0078431372549019607" alpha="0.28000000000000003" colorSpace="custom" customColorSpace="sRGB"/> </userDefinedRuntimeAttribute> <userDefinedRuntimeAttribute type="number" keyPath="borderWidth"> <real key="value" value="1"/> </userDefinedRuntimeAttribute> <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> <real key="value" value="4"/> </userDefinedRuntimeAttribute> </userDefinedRuntimeAttributes> </view> </subviews> <color key="backgroundColor" red="1" green="0.90588235294117647" blue="0.80000000000000004" alpha="0.28000000000000003" colorSpace="custom" customColorSpace="sRGB"/> <constraints> <constraint firstAttribute="trailing" secondItem="UXK-s8-fn9" secondAttribute="trailing" constant="5" id="1vt-Wd-VJi"/> <constraint firstItem="o0m-fp-glP" firstAttribute="centerY" secondItem="LKW-Uz-UH1" secondAttribute="centerY" id="2L7-GK-MFV"/> <constraint firstItem="A9b-WE-sPt" firstAttribute="centerY" secondItem="Kyb-yz-a5P" secondAttribute="centerY" id="6vb-Te-TbP"/> <constraint firstItem="0TW-3R-Kd5" firstAttribute="centerY" secondItem="JeQ-E8-nRz" secondAttribute="centerY" id="7LY-4a-gJB"/> <constraint firstItem="LKW-Uz-UH1" firstAttribute="top" secondItem="JeQ-E8-nRz" secondAttribute="bottom" constant="11" id="9n4-DF-JeD"/> <constraint firstItem="o0m-fp-glP" firstAttribute="leading" secondItem="LKW-Uz-UH1" secondAttribute="trailing" id="AWA-5B-kih"/> <constraint firstItem="JeQ-E8-nRz" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="10" id="CXh-T0-3g4"/> <constraint firstItem="A9b-WE-sPt" firstAttribute="leading" secondItem="Kyb-yz-a5P" secondAttribute="trailing" id="DdS-4r-IuU"/> <constraint firstItem="JeQ-E8-nRz" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="13" id="IIg-Xu-Ryy"/> <constraint firstItem="LKW-Uz-UH1" firstAttribute="leading" secondItem="JeQ-E8-nRz" secondAttribute="leading" id="PJX-Eq-8yk"/> <constraint firstItem="UXK-s8-fn9" firstAttribute="centerY" secondItem="JeQ-E8-nRz" secondAttribute="centerY" id="ftj-PL-Dsx"/> <constraint firstItem="Kyb-yz-a5P" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="114" id="ijt-fh-jGr"/> <constraint firstAttribute="bottom" secondItem="LKW-Uz-UH1" secondAttribute="bottom" constant="12" id="jUu-Jp-Ldv"/> <constraint firstItem="Kyb-yz-a5P" firstAttribute="centerY" secondItem="JeQ-E8-nRz" secondAttribute="centerY" id="qpV-JN-yqD"/> <constraint firstItem="0TW-3R-Kd5" firstAttribute="leading" secondItem="JeQ-E8-nRz" secondAttribute="trailing" id="rQb-lc-x8f"/> <constraint firstItem="wux-IQ-y3O" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="14" id="1H8-Rr-3vH"/> <constraint firstAttribute="bottom" secondItem="wux-IQ-y3O" secondAttribute="bottom" constant="7" id="F5V-jX-QYV"/> <constraint firstAttribute="trailing" secondItem="wux-IQ-y3O" secondAttribute="trailing" constant="14" id="LxN-CC-xda"/> <constraint firstItem="wux-IQ-y3O" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="7" id="d2J-Ta-zpG"/> </constraints> <userDefinedRuntimeAttributes> <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius"> <real key="value" value="4"/> </userDefinedRuntimeAttribute> <userDefinedRuntimeAttribute type="number" keyPath="borderWidth"> <real key="value" value="1"/> </userDefinedRuntimeAttribute> <userDefinedRuntimeAttribute type="color" keyPath="borderColor"> <color key="value" red="0.99215686274509807" green="0.47450980392156861" blue="0.0078431372549019607" alpha="0.28000000000000003" colorSpace="custom" customColorSpace="sRGB"/> </userDefinedRuntimeAttribute> </userDefinedRuntimeAttributes> </tableViewCellContentView> <point key="canvasLocation" x="40.458015267175568" y="35.563380281690144"/> <point key="canvasLocation" x="74.809160305343511" y="45.422535211267608"/> </tableViewCell> </objects> <resources> WanPai/Root/Other/VC/PaymentResultVC.swift
@@ -11,6 +11,10 @@ class PaymentResultVC: BaseVC { enum PaymentResult{case success,fail} enum PaymentObjType{ case member //会员 case apply //报名 } @IBOutlet weak var img_paymentState: UIImageView! @@ -21,10 +25,12 @@ @IBOutlet weak var btn_back: UIButton! private var result:PaymentResult! private var objType:PaymentObjType! required init(result:PaymentResult) { required init(result:PaymentResult,objType:PaymentObjType) { super.init(nibName: nil, bundle: nil) self.result = result self.objType = objType } required init?(coder: NSCoder) { @@ -34,22 +40,43 @@ override func viewDidLoad() { super.viewDidLoad() title = "成为会员" btn_again.isHidden = result == .success btn_back.isHidden = result == .success btn_backHome.isHidden = result == .fail collectionView.isHidden = result == .fail switch result { case .fail: img_paymentState.image = UIImage(named: "icon_fail") label_content.text = "支付失败,这是失败原因!" case .success: img_paymentState.image = UIImage(named: "icon_success") label_content.text = "支付成功,恭喜您成为玩湃会员!并获得优惠券!" switch objType{ case .member: btn_again.isHidden = result == .success btn_back.isHidden = result == .success btn_backHome.isHidden = result == .fail collectionView.isHidden = result == .fail switch result { case .fail: img_paymentState.image = UIImage(named: "icon_fail") label_content.text = "支付失败,这是失败原因!" case .success: img_paymentState.image = UIImage(named: "icon_success") label_content.text = "支付成功,恭喜您成为玩湃会员!并获得优惠券!" case .none:break } case .apply: btn_backHome.isHidden = true collectionView.isHidden = true switch result { case .fail: btn_again.setTitle("再次支付", for: .normal) btn_back.setTitle("返回", for: .normal) img_paymentState.image = UIImage(named: "icon_fail") label_content.text = "报名失败,这是失败原因!" case .success: btn_again.setTitle("立即预约", for: .normal) btn_back.setTitle("返回首页", for: .normal) img_paymentState.image = UIImage(named: "icon_success") label_content.text = "报名成功,请及时预约课程上课!" case .none:break } case .none:break } collectionView.delegate = self collectionView.dataSource = self collectionView.contentInset = UIEdgeInsets(top: 0, left: 14, bottom: 0, right: 14) WanPai/Root/Other/View/CouponChooseView.swift
New file @@ -0,0 +1,78 @@ // // CouponChooseView.swift // WanPai // // Created by 杨锴 on 2023/6/12. // import UIKit import JQTools class CouponChooseView: UIView,JQNibView{ @IBOutlet weak var view_container: UIView! @IBOutlet weak var cons_bottom: NSLayoutConstraint! @IBOutlet weak var tableView: UITableView! override func awakeFromNib() { super.awakeFromNib() cons_bottom.constant = -(JQ_ScreenW * 1.1) tableView.delegate = self tableView.dataSource = self tableView.separatorStyle = .none tableView.register(UINib(nibName: "CouponTCell", bundle: nil), forCellReuseIdentifier: "_CouponTCell") alpha = 0 layoutIfNeeded() } static func show(){ let couponView = CouponChooseView.jq_loadNibView() couponView.frame = screnDelegate?.window?.frame ?? .zero screnDelegate?.window?.addSubview(couponView) couponView.cons_bottom.constant = 0 UIView.animate(withDuration: 0.4) { couponView.alpha = 1 couponView.layoutIfNeeded() } } override func layoutSubviews() { super.layoutSubviews() view_container.jq_addCorners(corner: [.topLeft,.topRight], radius: 20) } @IBAction func cancelAction(_ sender: UIButton) { self.cons_bottom.constant = -(JQ_ScreenW * 1.1) UIView.animate(withDuration: 0.4) { self.alpha = 0 } completion: { _ in self.removeFromSuperview() } } @IBAction func completeAction(_ sender: UIButton) { self.cons_bottom.constant = -(JQ_ScreenW * 1.1) UIView.animate(withDuration: 0.4) { self.alpha = 0 } completion: { _ in self.removeFromSuperview() } } } extension CouponChooseView:UITableViewDelegate{ } extension CouponChooseView:UITableViewDataSource{ func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return 5 } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "_CouponTCell") as! CouponTCell return cell } } WanPai/Root/Other/View/CouponChooseView.xib
New file @@ -0,0 +1,113 @@ <?xml version="1.0" encoding="UTF-8"?> <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21507" 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="21505"/> <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"/> <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> <view contentMode="scaleToFill" id="iN0-l3-epB" customClass="CouponChooseView" customModule="WanPai" customModuleProvider="target"> <rect key="frame" x="0.0" y="0.0" width="393" height="852"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <subviews> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="aWM-tn-Qlc"> <rect key="frame" x="0.0" y="419.66666666666674" width="393" height="432.33333333333326"/> <subviews> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="I8J-QH-Okd"> <rect key="frame" x="49" y="333.33333333333331" width="141.66666666666666" height="40"/> <constraints> <constraint firstAttribute="height" constant="40" id="07s-jz-xur"/> </constraints> <fontDescription key="fontDescription" type="system" weight="medium" pointSize="15"/> <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> <state key="normal" title="取消"> <color key="titleColor" name="FE6E0D"/> </state> <userDefinedRuntimeAttributes> <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> <real key="value" value="20"/> </userDefinedRuntimeAttribute> <userDefinedRuntimeAttribute type="color" keyPath="jq_xibBorderColor"> <color key="value" name="FE6E0D"/> </userDefinedRuntimeAttribute> <userDefinedRuntimeAttribute type="number" keyPath="jq_xibBorderWidth"> <real key="value" value="1"/> </userDefinedRuntimeAttribute> </userDefinedRuntimeAttributes> <connections> <action selector="cancelAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="PrI-yH-6PL"/> </connections> </button> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="26u-Yz-eXD"> <rect key="frame" x="210.66666666666663" y="333.33333333333331" width="141.33333333333337" height="40"/> <color key="backgroundColor" name="FE6E0D"/> <constraints> <constraint firstAttribute="height" constant="40" id="4Wt-yI-2u2"/> </constraints> <fontDescription key="fontDescription" type="system" weight="medium" pointSize="15"/> <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> <state key="normal" title="确定"> <color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> </state> <userDefinedRuntimeAttributes> <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> <real key="value" value="20"/> </userDefinedRuntimeAttribute> </userDefinedRuntimeAttributes> <connections> <action selector="completeAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="Yis-UJ-0Ro"/> </connections> </button> <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="Ksj-7h-JHG"> <rect key="frame" x="0.0" y="8" width="393" height="317.33333333333331"/> <color key="backgroundColor" systemColor="systemBackgroundColor"/> </tableView> </subviews> <color key="backgroundColor" systemColor="systemBackgroundColor"/> <constraints> <constraint firstAttribute="width" secondItem="aWM-tn-Qlc" secondAttribute="height" multiplier="1:1.1" id="8qc-Ct-ajD"/> <constraint firstItem="26u-Yz-eXD" firstAttribute="top" secondItem="I8J-QH-Okd" secondAttribute="top" id="AUh-CI-UOg"/> <constraint firstAttribute="bottomMargin" secondItem="I8J-QH-Okd" secondAttribute="bottom" constant="17" id="GAb-Wt-HWD"/> <constraint firstItem="Ksj-7h-JHG" firstAttribute="leading" secondItem="aWM-tn-Qlc" secondAttribute="leading" id="HeA-hB-0Rs"/> <constraint firstItem="26u-Yz-eXD" firstAttribute="width" secondItem="I8J-QH-Okd" secondAttribute="width" id="I3e-WB-QZd"/> <constraint firstItem="I8J-QH-Okd" firstAttribute="top" secondItem="Ksj-7h-JHG" secondAttribute="bottom" constant="8" id="QCd-ch-Eva"/> <constraint firstItem="I8J-QH-Okd" firstAttribute="leading" secondItem="aWM-tn-Qlc" secondAttribute="leadingMargin" constant="41" id="ani-ly-wgW"/> <constraint firstItem="26u-Yz-eXD" firstAttribute="leading" secondItem="I8J-QH-Okd" secondAttribute="trailing" constant="20" id="fpo-wH-NAU"/> <constraint firstAttribute="trailing" secondItem="26u-Yz-eXD" secondAttribute="trailing" constant="41" id="iOF-p8-w9w"/> <constraint firstAttribute="trailing" secondItem="Ksj-7h-JHG" secondAttribute="trailing" id="jD8-tp-9BG"/> <constraint firstItem="Ksj-7h-JHG" firstAttribute="top" secondItem="aWM-tn-Qlc" secondAttribute="top" constant="8" id="qUr-w6-up5"/> </constraints> </view> </subviews> <viewLayoutGuide key="safeArea" id="vUN-kp-3ea"/> <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.5" colorSpace="custom" customColorSpace="sRGB"/> <constraints> <constraint firstItem="vUN-kp-3ea" firstAttribute="trailing" secondItem="aWM-tn-Qlc" secondAttribute="trailing" id="Aog-ls-NWS"/> <constraint firstAttribute="bottom" secondItem="aWM-tn-Qlc" secondAttribute="bottom" id="wu0-fc-WSc"/> <constraint firstItem="aWM-tn-Qlc" firstAttribute="leading" secondItem="vUN-kp-3ea" secondAttribute="leading" id="z6M-8v-Tq6"/> </constraints> <connections> <outlet property="cons_bottom" destination="wu0-fc-WSc" id="P08-d4-gJ4"/> <outlet property="tableView" destination="Ksj-7h-JHG" id="zhI-wR-m61"/> <outlet property="view_container" destination="aWM-tn-Qlc" id="elG-G8-Rtf"/> </connections> <point key="canvasLocation" x="40" y="21"/> </view> </objects> <resources> <namedColor name="FE6E0D"> <color red="0.99599999189376831" green="0.4309999942779541" blue="0.050999999046325684" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> </namedColor> <systemColor name="systemBackgroundColor"> <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> </systemColor> </resources> </document> WanPai/Root/Other/View/StudentChooseView.swift
New file @@ -0,0 +1,90 @@ // // StudentChooseView.swift // WanPai // // Created by 杨锴 on 2023/6/12. // import UIKit import JQTools import QMUIKit class StudentChooseView: UIView,JQNibView{ @IBOutlet weak var tableView: UITableView! @IBOutlet weak var view_container: UIView! @IBOutlet weak var cons_bottom: NSLayoutConstraint! @IBOutlet weak var btn_add: QMUIButton! private var clickClouse:(()->Void)! private var needAddClouse:(()->Void)! override func awakeFromNib() { super.awakeFromNib() btn_add.imagePosition = .right btn_add.spacingBetweenImageAndTitle = 5 cons_bottom.constant = -(JQ_ScreenW * 1.1) tableView.delegate = self tableView.dataSource = self tableView.separatorStyle = .none tableView.register(UINib(nibName: "StudentInfoTCell", bundle: nil), forCellReuseIdentifier: "_StudentInfoTCell") alpha = 0 layoutIfNeeded() } static func show(clickClouse:@escaping ()->Void,needAddClouse:@escaping ()->Void){ let studentChooseView = StudentChooseView.jq_loadNibView() studentChooseView.frame = screnDelegate?.window?.frame ?? .zero studentChooseView.clickClouse = clickClouse studentChooseView.needAddClouse = needAddClouse screnDelegate?.window?.addSubview(studentChooseView) studentChooseView.cons_bottom.constant = 0 UIView.animate(withDuration: 0.4) { studentChooseView.alpha = 1 studentChooseView.layoutIfNeeded() } } @IBAction func addNewStudentAction(_ sender: QMUIButton) { needAddClouse() } override func layoutSubviews() { super.layoutSubviews() DispatchQueue.main.asyncAfter(wallDeadline: .now()+0.1) { self.view_container.jq_addCorners(corner: [.topLeft,.topRight], radius: 20) } } @IBAction func completeAction(_ sender: UIButton) { self.cons_bottom.constant = -(JQ_ScreenW * 1.1) UIView.animate(withDuration: 0.4) { self.alpha = 0 } completion: { _ in self.removeFromSuperview() self.clickClouse() } } } extension StudentChooseView:UITableViewDelegate{ } extension StudentChooseView:UITableViewDataSource{ func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return 5 } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "_StudentInfoTCell") as! StudentInfoTCell return cell } } WanPai/Root/Other/View/StudentChooseView.xib
New file @@ -0,0 +1,102 @@ <?xml version="1.0" encoding="UTF-8"?> <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21507" 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="21505"/> <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"/> <view contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" id="iN0-l3-epB" customClass="StudentChooseView" customModule="WanPai" customModuleProvider="target"> <rect key="frame" x="0.0" y="0.0" width="393" height="852"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <subviews> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="7ap-MY-Ney"> <rect key="frame" x="0.0" y="509" width="393" height="343"/> <subviews> <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="qk4-DP-KiI"> <rect key="frame" x="0.0" y="61" width="393" height="166"/> <color key="backgroundColor" systemColor="systemBackgroundColor"/> <constraints> <constraint firstAttribute="height" constant="166" id="fgN-xg-prK"/> </constraints> </tableView> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="yxv-pI-vBX" customClass="QMUIButton"> <rect key="frame" x="304" y="23" width="74" height="20"/> <constraints> <constraint firstAttribute="height" constant="20" id="gav-fT-6pI"/> </constraints> <fontDescription key="fontDescription" type="system" pointSize="14"/> <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> <state key="normal" title="添加学员" image="btn_add_1"> <color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="0.56999999999999995" colorSpace="custom" customColorSpace="sRGB"/> </state> <connections> <action selector="addNewStudentAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="7UN-hM-Hgh"/> </connections> </button> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="q3h-WJ-5Om"> <rect key="frame" x="100" y="243" width="193" height="40"/> <color key="backgroundColor" name="FE6E0D"/> <constraints> <constraint firstAttribute="height" constant="40" id="FW2-jP-0C2"/> </constraints> <fontDescription key="fontDescription" type="system" weight="medium" pointSize="15"/> <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> <state key="normal" title="确定"> <color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> </state> <userDefinedRuntimeAttributes> <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> <real key="value" value="20"/> </userDefinedRuntimeAttribute> </userDefinedRuntimeAttributes> <connections> <action selector="completeAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="1Oz-Tq-eFD"/> </connections> </button> </subviews> <color key="backgroundColor" systemColor="systemBackgroundColor"/> <constraints> <constraint firstAttribute="trailing" secondItem="yxv-pI-vBX" secondAttribute="trailing" constant="15" id="5X5-zz-lAO"/> <constraint firstItem="qk4-DP-KiI" firstAttribute="leading" secondItem="7ap-MY-Ney" secondAttribute="leading" id="71u-e0-gHp"/> <constraint firstItem="qk4-DP-KiI" firstAttribute="top" secondItem="yxv-pI-vBX" secondAttribute="bottom" constant="18" id="FvY-dc-tsl"/> <constraint firstItem="q3h-WJ-5Om" firstAttribute="top" secondItem="qk4-DP-KiI" secondAttribute="bottom" constant="16" id="Mpj-WY-AmV"/> <constraint firstAttribute="trailing" secondItem="q3h-WJ-5Om" secondAttribute="trailing" constant="100" id="Rkh-aY-Xql"/> <constraint firstItem="q3h-WJ-5Om" firstAttribute="leading" secondItem="7ap-MY-Ney" secondAttribute="leading" constant="100" id="jx8-cU-9C3"/> <constraint firstAttribute="bottomMargin" secondItem="q3h-WJ-5Om" secondAttribute="bottom" constant="18" id="lPQ-9s-M93"/> <constraint firstAttribute="trailing" secondItem="qk4-DP-KiI" secondAttribute="trailing" id="txc-2I-Rlo"/> <constraint firstItem="yxv-pI-vBX" firstAttribute="top" secondItem="7ap-MY-Ney" secondAttribute="top" constant="23" id="vTH-12-aze"/> </constraints> </view> </subviews> <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.5" colorSpace="custom" customColorSpace="sRGB"/> <constraints> <constraint firstItem="7ap-MY-Ney" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="9DX-KP-mJX"/> <constraint firstAttribute="trailing" secondItem="7ap-MY-Ney" secondAttribute="trailing" id="Srr-Wv-dah"/> <constraint firstAttribute="bottom" secondItem="7ap-MY-Ney" secondAttribute="bottom" id="kSV-Gg-P7I"/> </constraints> <connections> <outlet property="btn_add" destination="yxv-pI-vBX" id="5Sm-2V-OfF"/> <outlet property="cons_bottom" destination="kSV-Gg-P7I" id="IdC-Sg-7gc"/> <outlet property="tableView" destination="qk4-DP-KiI" id="YQX-20-evD"/> <outlet property="view_container" destination="7ap-MY-Ney" id="CmC-MB-qxC"/> </connections> <point key="canvasLocation" x="38.931297709923662" y="20.422535211267608"/> </view> </objects> <resources> <image name="btn_add_1" width="16" height="16"/> <namedColor name="FE6E0D"> <color red="0.99599999189376831" green="0.4309999942779541" blue="0.050999999046325684" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> </namedColor> <systemColor name="systemBackgroundColor"> <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> </systemColor> </resources> </document>