OKProject.xcodeproj/project.pbxproj
@@ -229,6 +229,10 @@ 3D745012253828F700C5D8A3 /* YYSpecialCarCanceledNoDriverViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D745011253828F700C5D8A3 /* YYSpecialCarCanceledNoDriverViewController.swift */; }; 3D7450172538299600C5D8A3 /* YYSpecialCarCanceledNoDriverViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D7450152538299600C5D8A3 /* YYSpecialCarCanceledNoDriverViewCell.swift */; }; 3D7450182538299600C5D8A3 /* YYSpecialCarCanceledNoDriverViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3D7450162538299600C5D8A3 /* YYSpecialCarCanceledNoDriverViewCell.xib */; }; 8DC99C842A36F32800D0F04E /* AuthRecordView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8DC99C832A36F32800D0F04E /* AuthRecordView.swift */; }; 8DC99C862A36F33600D0F04E /* AuthRecordView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8DC99C852A36F33600D0F04E /* AuthRecordView.xib */; }; 8DEEE0FD2A36C85F007422BB /* VoiceSettingVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8DEEE0FB2A36C85F007422BB /* VoiceSettingVC.swift */; }; 8DEEE0FE2A36C85F007422BB /* VoiceSettingVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8DEEE0FC2A36C85F007422BB /* VoiceSettingVC.xib */; }; D9091E3D24932D0E00C86BB9 /* ShareView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9091E3C24932D0E00C86BB9 /* ShareView.swift */; }; D9091E3F24932D2800C86BB9 /* ShareView.xib in Resources */ = {isa = PBXBuildFile; fileRef = D9091E3E24932D2800C86BB9 /* ShareView.xib */; }; D90D7329248DCA04006200A7 /* MyOrderListVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = D90D7328248DCA04006200A7 /* MyOrderListVC.swift */; }; @@ -906,6 +910,10 @@ 3D745011253828F700C5D8A3 /* YYSpecialCarCanceledNoDriverViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YYSpecialCarCanceledNoDriverViewController.swift; sourceTree = "<group>"; }; 3D7450152538299600C5D8A3 /* YYSpecialCarCanceledNoDriverViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YYSpecialCarCanceledNoDriverViewCell.swift; sourceTree = "<group>"; }; 3D7450162538299600C5D8A3 /* YYSpecialCarCanceledNoDriverViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = YYSpecialCarCanceledNoDriverViewCell.xib; sourceTree = "<group>"; }; 8DC99C832A36F32800D0F04E /* AuthRecordView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthRecordView.swift; sourceTree = "<group>"; }; 8DC99C852A36F33600D0F04E /* AuthRecordView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = AuthRecordView.xib; sourceTree = "<group>"; }; 8DEEE0FB2A36C85F007422BB /* VoiceSettingVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VoiceSettingVC.swift; sourceTree = "<group>"; }; 8DEEE0FC2A36C85F007422BB /* VoiceSettingVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = VoiceSettingVC.xib; sourceTree = "<group>"; }; BF3E41CA69E50A6219D00A56 /* Pods-OKProject.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-OKProject.debug.xcconfig"; path = "Target Support Files/Pods-OKProject/Pods-OKProject.debug.xcconfig"; sourceTree = "<group>"; }; C6166D6DCB4A3FC387582E3D /* Pods_OKProject.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_OKProject.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D6351323AF902B1472CDE1B0 /* Pods-OKProject.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-OKProject.release.xcconfig"; path = "Target Support Files/Pods-OKProject/Pods-OKProject.release.xcconfig"; sourceTree = "<group>"; }; @@ -2168,6 +2176,8 @@ 13F6D5A329E50051003FDF28 /* MineBusinessCreditVC.xib */, 1302065B2A1E00B300A06489 /* MineBusinessCreditDetailVC.swift */, 1302065C2A1E00B300A06489 /* MineBusinessCreditDetailVC.xib */, 8DEEE0FB2A36C85F007422BB /* VoiceSettingVC.swift */, 8DEEE0FC2A36C85F007422BB /* VoiceSettingVC.xib */, ); path = Controller; sourceTree = "<group>"; @@ -2214,6 +2224,8 @@ D9ED9F3724AED36F00B7D753 /* MineWithdrawalRecordCell.xib */, 13987A8A2A1C9471002C1751 /* MineApplyRecordTCell.swift */, 13987A8B2A1C9471002C1751 /* MineApplyRecordTCell.xib */, 8DC99C832A36F32800D0F04E /* AuthRecordView.swift */, 8DC99C852A36F33600D0F04E /* AuthRecordView.xib */, ); path = View; sourceTree = "<group>"; @@ -3251,6 +3263,7 @@ 13A27FC127BB434300DD0CDF /* UseCouponSuccessView.xib in Resources */, D99E2CF524ADBC56005E147E /* UMSocialSDKResources.bundle in Resources */, 132387A527B4E5B700D2BD1F /* TravelCardBuyTCell.xib in Resources */, 8DC99C862A36F33600D0F04E /* AuthRecordView.xib in Resources */, D953BB2C2499EA9B002BA5EF /* MineOnlineCustomerServiceVC.xib in Resources */, D9A6A7BA2497195A008E251B /* MineBirthdayView.xib in Resources */, 1302065A2A1DEC6500A06489 /* RejectReasonView.xib in Resources */, @@ -3259,6 +3272,7 @@ 1327631F27B3CAFB0039C712 /* BindRelationAgreementVC.xib in Resources */, D9582EC22491D0B4005F2142 /* DriverInfoCell.xib in Resources */, 13A17B322828A68800190FDC /* MinePublishSaleDetailMoreVC.xib in Resources */, 8DEEE0FE2A36C85F007422BB /* VoiceSettingVC.xib in Resources */, F3FF6F9D25834CCB00EDBBC8 /* BRPickerView.bundle in Resources */, 13C92B0428292A6500F1A5BE /* CarPriceListView.xib in Resources */, 1365117429E403D40051C926 /* OrderReviewDetailVC.xib in Resources */, @@ -3410,6 +3424,7 @@ D93CBC78247E0F04005746EB /* ForgotPasswordVC.swift in Sources */, 1323879C27B4C3DD00D2BD1F /* TravelCardDetailVC.swift in Sources */, D953BB54249A1EF6002BA5EF /* MineShareVC.swift in Sources */, 8DC99C842A36F32800D0F04E /* AuthRecordView.swift in Sources */, D9CB224C2500CA3D005E97C2 /* YYCarTypeModel.swift in Sources */, F3830811255932620060BA72 /* FOREmptyAssistantConfiger.m in Sources */, 138A188B282B4A2C004705F5 /* CommentReplyTCell.swift in Sources */, @@ -3721,6 +3736,7 @@ D979B28D24976CA6001CFB74 /* MineSafeCell.swift in Sources */, F32FFB9B2530A7AE006106BE /* MZDateUtils.swift in Sources */, D9A09B3B2498C4B80077B756 /* MineExpenseRecordViewModel.swift in Sources */, 8DEEE0FD2A36C85F007422BB /* VoiceSettingVC.swift in Sources */, F3E35C4B25810B2900327888 /* RecipientInformationVC.swift in Sources */, F3FF6FBE25835A4200EDBBC8 /* RecipientInfomationModel.swift in Sources */, 13B96B5129E3F01400EEF378 /* EnterpriseMembersTCell.swift in Sources */, OKProject/API/API.swift
@@ -705,6 +705,8 @@ case approveOrderAudit(id:Int,status:Int,auditRemark:String? = nil) case soundSet(isOn:Bool) } @@ -1036,6 +1038,7 @@ return "/api/business/approveOrderDetail" case .approveOrderAudit: return "/api/business/approveOrder" case .soundSet:return "/api/user/setSound" } } @@ -2092,6 +2095,11 @@ .append(key: "auditStatus", value: status) .append(key: "auditRemark", value: auditRemark) return .requestParameters(parameters: params.done(), encoding: URLEncoding.queryString) case .soundSet(let isOn): let params = APIParamsAppender() .append(key: "soundSet", value: isOn ? 1:0) return .requestParameters(parameters: params.done(), encoding: URLEncoding.queryString) } } } OKProject/Assets.xcassets/icon_vioce.imageset/Contents.json
New file @@ -0,0 +1,22 @@ { "images" : [ { "idiom" : "universal", "scale" : "1x" }, { "filename" : "icon_vioce@2x.png", "idiom" : "universal", "scale" : "2x" }, { "filename" : "icon_vioce@3x.png", "idiom" : "universal", "scale" : "3x" } ], "info" : { "author" : "xcode", "version" : 1 } } OKProject/Assets.xcassets/icon_vioce.imageset/icon_vioce@2x.png
OKProject/Assets.xcassets/icon_vioce.imageset/icon_vioce@3x.png
OKProject/Assets.xcassets/icon_warining.imageset/Contents.json
New file @@ -0,0 +1,22 @@ { "images" : [ { "idiom" : "universal", "scale" : "1x" }, { "filename" : "icon_warining@2x.png", "idiom" : "universal", "scale" : "2x" }, { "filename" : "icon_warining@3x.png", "idiom" : "universal", "scale" : "3x" } ], "info" : { "author" : "xcode", "version" : 1 } } OKProject/Assets.xcassets/icon_warining.imageset/icon_warining@2x.png
OKProject/Assets.xcassets/icon_warining.imageset/icon_warining@3x.png
OKProject/Class/Home/Controller/HomeVC.swift
@@ -162,7 +162,14 @@ /// 设置广告 func setupAdvert() { viewModel.getAdvertising() DispatchQueue.main.asyncAfter(deadline: .now()+5) { if app.userInfo.soundSet == 0{ AuthRecordView.show { let vc = VoiceSettingVC() self.yy_push(vc: vc) } } } } //MARK: - UI OKProject/Class/Home/Model/UserInfoModel.swift
@@ -66,6 +66,9 @@ /// 实名认证状态(1=待认证,2=认证通过,3=认证失败) var verified: Int = 0 var soundSet:Int = 0 //是否开启录音(1是 0否) // var auditStatus:MerchantAudit = .none //1:待审核 2同意 3拒绝 var merchant = 0 //是否开通了商家 0 :否 , 1:是 OKProject/Class/LeftMenu/Controller/MineSetUpVC.swift
@@ -25,7 +25,7 @@ }() /// 数据源 private let dataSource = [["账户安全","常见问题","隐私协议","法律条款和平台规则","充值领劵规则","取消订单规则","计价规则","用户指南","用户协议","关于我们"],["清理缓存","当前版本"]] private let dataSource = [["账户安全","车内录音设置","常见问题","隐私协议","法律条款和平台规则","充值领劵规则","取消订单规则","计价规则","用户指南","用户协议","关于我们"],["清理缓存","当前版本"]] /// 缓存 private var label_cache: UILabel? @@ -122,30 +122,34 @@ let vc = MineAccountSecurityVC() self.yy_push(vc: vc) }else if indexPath.row == 1 { let vc = VoiceSettingVC() self.yy_push(vc: vc) } else if indexPath.row == 2 { viewModel.type.accept(.Q_A) viewModel.agreement() }else if indexPath.row == 2 { }else if indexPath.row == 3 { viewModel.type.accept(.privacy) viewModel.agreement() }else if indexPath.row == 3 { }else if indexPath.row == 4 { viewModel.type.accept(.legalProvisions) viewModel.agreement() }else if indexPath.row == 4 { }else if indexPath.row == 5 { viewModel.type.accept(.topUp) viewModel.agreement() }else if indexPath.row == 5 { }else if indexPath.row == 6 { viewModel.type.accept(.cancel) viewModel.agreement() }else if indexPath.row == 6 { }else if indexPath.row == 7 { viewModel.type.accept(.valuation) viewModel.agreement() }else if indexPath.row == 7 { }else if indexPath.row == 8 { viewModel.type.accept(.userGuide) viewModel.agreement() }else if indexPath.row == 8 { }else if indexPath.row == 9 { viewModel.type.accept(.userAgreement) viewModel.agreement() }else if indexPath.row == 9 { }else if indexPath.row == 10 { viewModel.type.accept(.aboutUs) viewModel.agreement() } OKProject/Class/LeftMenu/Controller/VoiceSettingVC.swift
New file @@ -0,0 +1,93 @@ // // VoiceSettingVC.swift // OKProject // // Created by 杨锴 on 2023/6/12. // Copyright © 2023 yangwang. All rights reserved. // import UIKit import QMUIKit class VoiceSettingVC: YYViewController { @IBOutlet weak var label_hint: QMUIButton! @IBOutlet weak var view_hint: UIView! @IBOutlet weak var btn_handle: UIButton! private let userInfoViewModel = HomeLeftMenuViewModel() override func viewDidLoad() { super.viewDidLoad() title = "车内录音设置" userInfoViewModel.queryUserInfo() userInfoViewModel.requestSubject .subscribe(onNext: {[unowned self] (status) in switch status{ case .loading: break case .success(let model): guard let data = model as? UserInfoModel else{return} app.userInfo.save(model: data) switch data.soundSet{ case 1: label_hint.setTitle("车内录音功能已开启", for: .normal) view_hint.backgroundColor = UIColor(hexString: "#45B494") btn_handle.setTitle("立即关闭车内录音", for: .normal) btn_handle.backgroundColor = UIColor.red case 0: label_hint.setTitle("车内录音功能已关闭", for: .normal) view_hint.backgroundColor = UIColor(hexString: "#B1B1B1") btn_handle.setTitle("立即开启车内录音", for: .normal) btn_handle.backgroundColor = UIColor(hexString: "#45B494") default:break } break case .error(let error): alert(text: error.localizedDescription) break } }).disposed(by: rx.disposeBag) } override func setupViews() { view.backgroundColor = UIColor(hexString: "#F3F4F5") label_hint.imagePosition = .left label_hint.spacingBetweenImageAndTitle = 7 } @IBAction func handleAction(_ sender: UIButton) { if app.userInfo.soundSet == 0{ alert(popup: .double, title: "是否开启车内录音?", text: "开启后下一订单即生效", submitTitle: "确认开启", cancelTitle: "取消") { self.show() APIManager.shared.provider.rx.request(.soundSet(isOn: true)).mapThenValidate(Nothing.self).subscribe(onSuccess: {result in self.hide() alert(text: "车内录音将在下一订单开启") self.userInfoViewModel.queryUserInfo() }) { error in alert(text: error.localizedDescription) }.disposed(by: self.disposeBag) } cancelClick: { } }else{ alert(popup: .double, title: "是否关闭车内录音?", text: "关闭后立即生效", submitTitle: "确认关闭", cancelTitle: "取消") { self.show() APIManager.shared.provider.rx.request(.soundSet(isOn: false)).mapThenValidate(Nothing.self).subscribe(onSuccess: {result in self.hide() alert(text: "已关闭车内录音功能") self.userInfoViewModel.queryUserInfo() }) { error in alert(text: error.localizedDescription) }.disposed(by: self.disposeBag) } cancelClick: { } } } } OKProject/Class/LeftMenu/Controller/VoiceSettingVC.xib
New file @@ -0,0 +1,276 @@ <?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" customClass="VoiceSettingVC" customModule="OK出行" customModuleProvider="target"> <connections> <outlet property="btn_handle" destination="Mff-Qq-Y4Y" id="9MN-WE-cRq"/> <outlet property="label_hint" destination="FB4-TG-GuB" id="02q-LA-d60"/> <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/> <outlet property="view_hint" destination="g21-F7-G40" id="rMy-1Z-Ack"/> </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> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="g21-F7-G40"> <rect key="frame" x="0.0" y="59" width="393" height="36"/> <subviews> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="FB4-TG-GuB" customClass="QMUIButton"> <rect key="frame" x="134" y="8" width="125" height="20"/> <constraints> <constraint firstAttribute="height" constant="20" id="EP1-G5-R6Q"/> </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="车内录音功能已关闭" image="icon_warining"/> </button> </subviews> <color key="backgroundColor" red="0.69411764705882351" green="0.69411764705882351" blue="0.69411764705882351" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <constraints> <constraint firstItem="FB4-TG-GuB" firstAttribute="centerX" secondItem="g21-F7-G40" secondAttribute="centerX" id="10L-tG-3B1"/> <constraint firstAttribute="height" constant="36" id="3j8-ie-Nnv"/> <constraint firstItem="FB4-TG-GuB" firstAttribute="centerY" secondItem="g21-F7-G40" secondAttribute="centerY" id="RI7-Xm-CGb"/> </constraints> </view> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="H4f-Q8-wfM"> <rect key="frame" x="14" y="106" width="365" height="102"/> <subviews> <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_vioce" translatesAutoresizingMaskIntoConstraints="NO" id="Byv-Fs-a6d"> <rect key="frame" x="6" y="6" width="22" height="22"/> <constraints> <constraint firstAttribute="height" constant="22" id="2N0-we-u2U"/> <constraint firstAttribute="width" constant="22" id="J7s-Ah-Ohs"/> </constraints> </imageView> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="若您选择开启车内录音" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="be6-AD-iTl"> <rect key="frame" x="34" y="8.6666666666666714" width="143" height="17"/> <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> <nil key="textColor"/> <nil key="highlightedColor"/> </label> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="bO4-PD-Zeu"> <rect key="frame" x="6" y="35" width="359" height="1"/> <color key="backgroundColor" red="0.59215686274509804" green="0.59215686274509804" blue="0.59215686274509804" alpha="0.050000000000000003" colorSpace="custom" customColorSpace="sRGB"/> <constraints> <constraint firstAttribute="height" constant="1" id="nNK-fq-s0R"/> </constraints> </view> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="cG8-00-PMc"> <rect key="frame" x="6" y="49" width="4" height="4"/> <color key="backgroundColor" red="0.27058823529411763" green="0.70588235294117641" blue="0.58039215686274503" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <constraints> <constraint firstAttribute="width" constant="4" id="4Bc-BK-fnM"/> <constraint firstAttribute="height" constant="4" id="zAi-mH-kgH"/> </constraints> <userDefinedRuntimeAttributes> <userDefinedRuntimeAttribute type="boolean" keyPath="maskToBounds" value="YES"/> <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius"> <real key="value" value="2"/> </userDefinedRuntimeAttribute> </userDefinedRuntimeAttributes> </view> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="开启后下一订单即生效" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Gbu-ij-M7J"> <rect key="frame" x="16" y="44" width="339" height="14.333333333333336"/> <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/> <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.5" colorSpace="custom" customColorSpace="sRGB"/> <nil key="highlightedColor"/> </label> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="nQZ-MD-Fri"> <rect key="frame" x="6" y="74" width="4" height="4"/> <color key="backgroundColor" red="0.27058823529999998" green="0.70588235290000001" blue="0.58039215690000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <constraints> <constraint firstAttribute="height" constant="4" id="FST-g9-VkU"/> <constraint firstAttribute="width" constant="4" id="Ghm-57-NUQ"/> </constraints> <userDefinedRuntimeAttributes> <userDefinedRuntimeAttribute type="boolean" keyPath="maskToBounds" value="YES"/> <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius"> <real key="value" value="2"/> </userDefinedRuntimeAttribute> </userDefinedRuntimeAttributes> </view> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="为保障您的出行安全,宽窄出行建议您全程开启车内录音" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ZiK-RA-oUN"> <rect key="frame" x="16" y="69" width="306.33333333333331" height="14.333333333333329"/> <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/> <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.5" colorSpace="custom" customColorSpace="sRGB"/> <nil key="highlightedColor"/> </label> </subviews> <color key="backgroundColor" systemColor="systemBackgroundColor"/> <constraints> <constraint firstAttribute="trailing" secondItem="Gbu-ij-M7J" secondAttribute="trailing" constant="10" id="8sV-JC-AKR"/> <constraint firstItem="cG8-00-PMc" firstAttribute="leading" secondItem="H4f-Q8-wfM" secondAttribute="leading" constant="6" id="GHi-cf-pB9"/> <constraint firstItem="nQZ-MD-Fri" firstAttribute="leading" secondItem="H4f-Q8-wfM" secondAttribute="leading" constant="6" id="KzS-d3-QMQ"/> <constraint firstAttribute="bottom" secondItem="nQZ-MD-Fri" secondAttribute="bottom" constant="24" id="Mwc-BC-UZW"/> <constraint firstItem="nQZ-MD-Fri" firstAttribute="top" secondItem="cG8-00-PMc" secondAttribute="bottom" constant="21" id="aPQ-oL-Ly2"/> <constraint firstAttribute="trailing" secondItem="bO4-PD-Zeu" secondAttribute="trailing" id="fmg-Pe-ivz"/> <constraint firstItem="nQZ-MD-Fri" firstAttribute="centerY" secondItem="ZiK-RA-oUN" secondAttribute="centerY" id="gY5-03-qKG"/> <constraint firstItem="bO4-PD-Zeu" firstAttribute="leading" secondItem="H4f-Q8-wfM" secondAttribute="leading" constant="6" id="hbO-cB-6ND"/> <constraint firstItem="bO4-PD-Zeu" firstAttribute="top" secondItem="Byv-Fs-a6d" secondAttribute="bottom" constant="7" id="hvB-bS-mqr"/> <constraint firstItem="be6-AD-iTl" firstAttribute="centerY" secondItem="Byv-Fs-a6d" secondAttribute="centerY" id="kHb-Pf-ASV"/> <constraint firstItem="Byv-Fs-a6d" firstAttribute="leading" secondItem="H4f-Q8-wfM" secondAttribute="leading" constant="6" id="kc5-IW-GBf"/> <constraint firstItem="cG8-00-PMc" firstAttribute="top" secondItem="bO4-PD-Zeu" secondAttribute="bottom" constant="13" id="qUv-Ph-1jZ"/> <constraint firstItem="be6-AD-iTl" firstAttribute="leading" secondItem="Byv-Fs-a6d" secondAttribute="trailing" constant="6" id="qef-GM-eFO"/> <constraint firstItem="cG8-00-PMc" firstAttribute="centerY" secondItem="Gbu-ij-M7J" secondAttribute="centerY" id="r93-1e-ezR"/> <constraint firstItem="ZiK-RA-oUN" firstAttribute="leading" secondItem="nQZ-MD-Fri" secondAttribute="trailing" constant="6" id="rTm-7e-UE8"/> <constraint firstItem="Byv-Fs-a6d" firstAttribute="top" secondItem="H4f-Q8-wfM" secondAttribute="top" constant="6" id="upE-uk-gZQ"/> <constraint firstItem="Gbu-ij-M7J" firstAttribute="leading" secondItem="cG8-00-PMc" secondAttribute="trailing" constant="6" id="zST-lm-hEq"/> </constraints> <userDefinedRuntimeAttributes> <userDefinedRuntimeAttribute type="boolean" keyPath="maskToBounds" value="YES"/> <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius"> <real key="value" value="6"/> </userDefinedRuntimeAttribute> </userDefinedRuntimeAttributes> </view> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="lum-ul-C2O"> <rect key="frame" x="14" y="219" width="365" height="122"/> <subviews> <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_vioce" translatesAutoresizingMaskIntoConstraints="NO" id="UVr-MA-unU"> <rect key="frame" x="6" y="6" width="22" height="22"/> <constraints> <constraint firstAttribute="width" constant="22" id="mE9-wd-6nm"/> <constraint firstAttribute="height" constant="22" id="ofd-am-cmm"/> </constraints> </imageView> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="若您选择关闭车内录音" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="yMR-Dc-npY"> <rect key="frame" x="34" y="8.6666666666666572" width="143" height="17"/> <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> <nil key="textColor"/> <nil key="highlightedColor"/> </label> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Y3b-MX-hs7"> <rect key="frame" x="6" y="35" width="359" height="1"/> <color key="backgroundColor" red="0.59215686270000001" green="0.59215686270000001" blue="0.59215686270000001" alpha="0.050000000000000003" colorSpace="custom" customColorSpace="sRGB"/> <constraints> <constraint firstAttribute="height" constant="1" id="QkR-6R-7Vb"/> </constraints> </view> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Rt3-Eu-BSw"> <rect key="frame" x="6" y="49" width="4" height="4"/> <color key="backgroundColor" red="0.27058823529999998" green="0.70588235290000001" blue="0.58039215690000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <constraints> <constraint firstAttribute="width" constant="4" id="R9Q-7I-9VW"/> <constraint firstAttribute="height" constant="4" id="fgT-eT-nqi"/> </constraints> <userDefinedRuntimeAttributes> <userDefinedRuntimeAttribute type="boolean" keyPath="maskToBounds" value="YES"/> <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius"> <real key="value" value="2"/> </userDefinedRuntimeAttribute> </userDefinedRuntimeAttributes> </view> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="关闭后立即生效/拼车订单不生效" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3pi-pt-Vi8"> <rect key="frame" x="16" y="44" width="339" height="14.333333333333336"/> <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/> <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.5" colorSpace="custom" customColorSpace="sRGB"/> <nil key="highlightedColor"/> </label> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="M0R-mB-dHV"> <rect key="frame" x="6" y="74" width="4" height="4"/> <color key="backgroundColor" red="0.27058823529999998" green="0.70588235290000001" blue="0.58039215690000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <constraints> <constraint firstAttribute="width" constant="4" id="Uvi-6t-QIG"/> <constraint firstAttribute="height" constant="4" id="q8Y-ay-wbh"/> </constraints> <userDefinedRuntimeAttributes> <userDefinedRuntimeAttribute type="boolean" keyPath="maskToBounds" value="YES"/> <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius"> <real key="value" value="2"/> </userDefinedRuntimeAttribute> </userDefinedRuntimeAttributes> </view> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ljO-52-jbV"> <rect key="frame" x="16" y="68" width="285.66666666666669" height="43"/> <string key="text">关闭车内录音提示:由于录制设备不同,录音、录像功 能需单独设置。若您想关闭车内录像功能,请前往“ 我的-设置-车内录像设置”进行关闭</string> <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/> <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.5" colorSpace="custom" customColorSpace="sRGB"/> <nil key="highlightedColor"/> </label> </subviews> <color key="backgroundColor" systemColor="systemBackgroundColor"/> <constraints> <constraint firstItem="yMR-Dc-npY" firstAttribute="leading" secondItem="UVr-MA-unU" secondAttribute="trailing" constant="6" id="3BL-7W-wNs"/> <constraint firstItem="Rt3-Eu-BSw" firstAttribute="centerY" secondItem="3pi-pt-Vi8" secondAttribute="centerY" id="Aqn-oM-Hb3"/> <constraint firstAttribute="trailing" secondItem="3pi-pt-Vi8" secondAttribute="trailing" constant="10" id="G33-rI-ZCM"/> <constraint firstItem="UVr-MA-unU" firstAttribute="top" secondItem="lum-ul-C2O" secondAttribute="top" constant="6" id="Gno-4d-mXu"/> <constraint firstItem="Rt3-Eu-BSw" firstAttribute="leading" secondItem="lum-ul-C2O" secondAttribute="leading" constant="6" id="Irf-Z0-g1o"/> <constraint firstItem="3pi-pt-Vi8" firstAttribute="leading" secondItem="Rt3-Eu-BSw" secondAttribute="trailing" constant="6" id="JHw-Ko-BKn"/> <constraint firstItem="M0R-mB-dHV" firstAttribute="top" secondItem="ljO-52-jbV" secondAttribute="top" constant="6" id="QFe-bl-Vnq"/> <constraint firstItem="M0R-mB-dHV" firstAttribute="top" secondItem="Rt3-Eu-BSw" secondAttribute="bottom" constant="21" id="RyY-JU-yUa"/> <constraint firstItem="Rt3-Eu-BSw" firstAttribute="top" secondItem="Y3b-MX-hs7" secondAttribute="bottom" constant="13" id="TZt-mQ-CXc"/> <constraint firstAttribute="trailing" secondItem="Y3b-MX-hs7" secondAttribute="trailing" id="cSv-Q8-AeM"/> <constraint firstItem="Y3b-MX-hs7" firstAttribute="top" secondItem="UVr-MA-unU" secondAttribute="bottom" constant="7" id="cn4-w2-FcI"/> <constraint firstItem="yMR-Dc-npY" firstAttribute="centerY" secondItem="UVr-MA-unU" secondAttribute="centerY" id="gcL-Yp-y3q"/> <constraint firstItem="UVr-MA-unU" firstAttribute="leading" secondItem="lum-ul-C2O" secondAttribute="leading" constant="6" id="hJQ-bp-EFa"/> <constraint firstItem="M0R-mB-dHV" firstAttribute="leading" secondItem="lum-ul-C2O" secondAttribute="leading" constant="6" id="l2L-te-rFE"/> <constraint firstAttribute="bottom" secondItem="ljO-52-jbV" secondAttribute="bottom" constant="11" id="qYN-Tw-Aph"/> <constraint firstItem="ljO-52-jbV" firstAttribute="leading" secondItem="M0R-mB-dHV" secondAttribute="trailing" constant="6" id="xHR-vU-WGs"/> <constraint firstItem="Y3b-MX-hs7" firstAttribute="leading" secondItem="lum-ul-C2O" secondAttribute="leading" constant="6" id="xi5-Ze-Pqu"/> </constraints> <userDefinedRuntimeAttributes> <userDefinedRuntimeAttribute type="boolean" keyPath="maskToBounds" value="YES"/> <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius"> <real key="value" value="6"/> </userDefinedRuntimeAttribute> </userDefinedRuntimeAttributes> </view> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Mff-Qq-Y4Y"> <rect key="frame" x="14" y="766" width="365" height="40"/> <color key="backgroundColor" red="0.27058823529999998" green="0.70588235290000001" blue="0.58039215690000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <constraints> <constraint firstAttribute="height" constant="40" id="Uk9-0C-Zju"/> </constraints> <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"/> <state key="normal" title="立即开启车内录音"/> <userDefinedRuntimeAttributes> <userDefinedRuntimeAttribute type="boolean" keyPath="maskToBounds" value="YES"/> <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius"> <real key="value" value="4"/> </userDefinedRuntimeAttribute> </userDefinedRuntimeAttributes> <connections> <action selector="handleAction:" destination="-1" eventType="touchUpInside" id="G1U-bd-erE"/> </connections> </button> </subviews> <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/> <color key="backgroundColor" systemColor="systemBackgroundColor"/> <constraints> <constraint firstItem="Mff-Qq-Y4Y" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="14" id="GKu-C4-dU3"/> <constraint firstItem="g21-F7-G40" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" id="JL1-Hm-kwm"/> <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="lum-ul-C2O" secondAttribute="trailing" constant="14" id="R3L-ga-8Iw"/> <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="g21-F7-G40" secondAttribute="trailing" id="Soa-qm-Tbc"/> <constraint firstItem="H4f-Q8-wfM" firstAttribute="top" secondItem="g21-F7-G40" secondAttribute="bottom" constant="11" id="Sza-Yf-DSy"/> <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="Mff-Qq-Y4Y" secondAttribute="trailing" constant="14" id="jhj-C1-Sed"/> <constraint firstItem="lum-ul-C2O" firstAttribute="top" secondItem="H4f-Q8-wfM" secondAttribute="bottom" constant="11" id="mFO-hp-CWp"/> <constraint firstItem="fnl-2z-Ty3" firstAttribute="bottom" secondItem="Mff-Qq-Y4Y" secondAttribute="bottom" constant="12" id="mdT-6q-ahb"/> <constraint firstItem="lum-ul-C2O" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="14" id="mv7-Oo-IJU"/> <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="H4f-Q8-wfM" secondAttribute="trailing" constant="14" id="qe8-UP-pAQ"/> <constraint firstItem="g21-F7-G40" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="ttm-1B-e7K"/> <constraint firstItem="H4f-Q8-wfM" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="14" id="xwM-dg-CPm"/> </constraints> <point key="canvasLocation" x="139.69465648854961" y="20.422535211267608"/> </view> </objects> <resources> <image name="icon_vioce" width="22" height="22"/> <image name="icon_warining" width="14" height="14"/> <systemColor name="systemBackgroundColor"> <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> </systemColor> </resources> </document> OKProject/Class/LeftMenu/View/AuthRecordView.swift
New file @@ -0,0 +1,55 @@ // // AuthRecordView.swift // OKProject // // Created by 杨锴 on 2023/6/12. // Copyright © 2023 yangwang. All rights reserved. // import UIKit class AuthRecordView: UIView,LDNibView{ @IBOutlet weak var view_container: UIView! @IBOutlet weak var label_content: UILabel! private var clouse:(()->Void)! override func awakeFromNib() { super.awakeFromNib() view_container.transform = .init(scaleX: 0.1, y: 0.1) alpha = 0 layoutIfNeeded() } static func show(_ clouse:@escaping ()->Void){ let authRecordView = AuthRecordView.ld_loadNibView() authRecordView.clouse = clouse authRecordView.frame = app.window?.frame ?? .zero app.window?.addSubview(authRecordView) UIView.animate(withDuration: 0.4) { authRecordView.view_container.transform = .init(scaleX: 1.0, y: 1.0) authRecordView.alpha = 1 } } @IBAction func settingAction(_ sender: UIButton) { UIView.animate(withDuration: 0.4) { self.view_container.transform = .init(scaleX: 0.1, y: 0.1) self.alpha = 0 } completion: { _ in self.removeFromSuperview() self.clouse() } } @IBAction func closeAction(_ sender: UIButton) { UIView.animate(withDuration: 0.4) { self.view_container.transform = .init(scaleX: 0.1, y: 0.1) self.alpha = 0 } completion: { _ in self.removeFromSuperview() } } } OKProject/Class/LeftMenu/View/AuthRecordView.xib
New file @@ -0,0 +1,125 @@ <?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" id="iN0-l3-epB" customClass="AuthRecordView" customModule="OK出行" 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="kTB-dH-ACo"> <rect key="frame" x="37" y="250.99999999999997" width="319" height="350.33333333333326"/> <subviews> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="“宽窄优行”需要使用车内录音权限" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="hj6-P8-bgK"> <rect key="frame" x="52.666666666666671" y="36" width="213.66666666666663" 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" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YNJ-p2-Epb"> <rect key="frame" x="16" y="76.000000000000014" width="287" height="179.33333333333337"/> <string key="text">若您选择开启车内录音: .开启后下一订单即生效 .为保障您的出行安全,建议您全程开启车内录音 若您选择关闭车内录音: .关闭后立即生效 .关闭车内录音提示:由于录制设备不同,录音、录像功能需单独设置。若您想关闭车内录像功能,请前往“我的-设置-车内录音设置”进行关闭</string> <fontDescription key="fontDescription" type="system" pointSize="15"/> <color key="textColor" red="0.40000000000000002" green="0.40000000000000002" blue="0.40000000000000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <nil key="highlightedColor"/> </label> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="i1L-Gm-C6V"> <rect key="frame" x="16" y="285.33333333333337" width="139.66666666666666" height="40"/> <color key="backgroundColor" red="0.94117647059999998" green="0.94117647059999998" blue="0.96470588239999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <constraints> <constraint firstAttribute="height" constant="40" id="dw7-cj-Dbw"/> </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" red="0.59607843140000005" green="0.60784313729999995" blue="0.69019607839999997" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> </state> <userDefinedRuntimeAttributes> <userDefinedRuntimeAttribute type="boolean" keyPath="maskToBounds" value="YES"/> <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius"> <real key="value" value="4"/> </userDefinedRuntimeAttribute> </userDefinedRuntimeAttributes> <connections> <action selector="closeAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="uyp-CX-9Ay"/> </connections> </button> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="qy1-em-2b7"> <rect key="frame" x="163.66666666666663" y="286.33333333333337" width="139.33333333333337" height="40"/> <color key="backgroundColor" name="Color"/> <constraints> <constraint firstAttribute="height" constant="40" id="Hkw-40-3vb"/> </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="maskToBounds" value="YES"/> <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius"> <real key="value" value="4"/> </userDefinedRuntimeAttribute> </userDefinedRuntimeAttributes> <connections> <action selector="settingAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="bFf-n2-tQd"/> </connections> </button> </subviews> <color key="backgroundColor" systemColor="systemBackgroundColor"/> <constraints> <constraint firstAttribute="trailing" secondItem="qy1-em-2b7" secondAttribute="trailing" constant="16" id="6xt-qN-sAb"/> <constraint firstItem="hj6-P8-bgK" firstAttribute="centerX" secondItem="kTB-dH-ACo" secondAttribute="centerX" id="6zT-LX-U7D"/> <constraint firstItem="i1L-Gm-C6V" firstAttribute="leading" secondItem="kTB-dH-ACo" secondAttribute="leading" constant="16" id="7Fn-bh-DFW"/> <constraint firstItem="qy1-em-2b7" firstAttribute="width" secondItem="i1L-Gm-C6V" secondAttribute="width" id="GGM-kQ-OJl"/> <constraint firstAttribute="bottom" secondItem="i1L-Gm-C6V" secondAttribute="bottom" constant="25" id="agz-y1-jm6"/> <constraint firstAttribute="trailing" secondItem="YNJ-p2-Epb" secondAttribute="trailing" constant="16" id="ebd-M5-bGX"/> <constraint firstItem="hj6-P8-bgK" firstAttribute="top" secondItem="kTB-dH-ACo" secondAttribute="top" constant="36" id="mHl-M3-UQx"/> <constraint firstAttribute="bottom" secondItem="qy1-em-2b7" secondAttribute="bottom" constant="24" id="nSu-BV-cOE"/> <constraint firstItem="qy1-em-2b7" firstAttribute="leading" secondItem="i1L-Gm-C6V" secondAttribute="trailing" constant="8" id="owF-dV-yCQ"/> <constraint firstItem="i1L-Gm-C6V" firstAttribute="top" secondItem="YNJ-p2-Epb" secondAttribute="bottom" constant="30" id="vxR-k4-Oym"/> <constraint firstItem="YNJ-p2-Epb" firstAttribute="leading" secondItem="kTB-dH-ACo" secondAttribute="leading" constant="16" id="wY1-IO-EXV"/> <constraint firstItem="YNJ-p2-Epb" firstAttribute="top" secondItem="hj6-P8-bgK" secondAttribute="bottom" constant="23" id="zR9-X1-3GC"/> </constraints> <userDefinedRuntimeAttributes> <userDefinedRuntimeAttribute type="boolean" keyPath="maskToBounds" value="YES"/> <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius"> <real key="value" value="6"/> </userDefinedRuntimeAttribute> </userDefinedRuntimeAttributes> </view> </subviews> <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.5" colorSpace="custom" customColorSpace="sRGB"/> <constraints> <constraint firstItem="kTB-dH-ACo" firstAttribute="centerY" secondItem="iN0-l3-epB" secondAttribute="centerY" id="QNr-si-hIh"/> <constraint firstItem="kTB-dH-ACo" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="37" id="Zd4-Bb-G4d"/> <constraint firstAttribute="trailing" secondItem="kTB-dH-ACo" secondAttribute="trailing" constant="37" id="gCU-Mg-wOJ"/> <constraint firstItem="kTB-dH-ACo" firstAttribute="centerX" secondItem="iN0-l3-epB" secondAttribute="centerX" id="jiE-Qx-lvO"/> </constraints> <connections> <outlet property="label_content" destination="YNJ-p2-Epb" id="b6I-i3-TT8"/> <outlet property="view_container" destination="kTB-dH-ACo" id="Oqq-2l-N0Q"/> </connections> <point key="canvasLocation" x="37" y="21"/> </view> </objects> <resources> <namedColor name="Color"> <color red="0.27099999785423279" green="0.70599997043609619" blue="0.57999998331069946" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> </namedColor> <systemColor name="systemBackgroundColor"> <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> </systemColor> </resources> </document> OKProject/Class/LeftMenu/ViewModel/AgreementViewModel.swift
@@ -47,6 +47,9 @@ case carRent case carSale case scenic case vioceRecord func parame() -> Int { switch self { case .privacy: @@ -85,6 +88,9 @@ return 20 case .scenic: return 22 case .vioceRecord: return 23 } } @@ -126,6 +132,8 @@ return "常见问题" case .scenic: return "景区直通车" case .vioceRecord: return "车内录音设置" } } }