younger_times
2023-07-05 c5e94788e59723d189642e8489423ea64271340b
新增
12个文件已修改
2个文件已添加
392 ■■■■ 已修改文件
WanPai.xcodeproj/project.pbxproj 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/AppDelegate.swift 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Base/BaseNav.swift 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Base/BaseVC.swift 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Config/Def.swift 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Info.plist 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Home/VC/HomeVC.swift 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Home/VC/JoinMemberIntroduceVC.swift 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Login/VC/LoginVC.swift 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Other/View/StoresChooseView.xib 144 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/CCell/UploadImgCCell.swift 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/CCell/UploadImgCCell.xib 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/VC/SearchStoreDetailFeedbackVC.swift 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/VC/SearchStoreDetailFeedbackVC.xib 45 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai.xcodeproj/project.pbxproj
@@ -123,6 +123,8 @@
        13AFABC12A4AE3DC001FEA16 /* StudentRemarkListVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13AFABC02A4AE3DC001FEA16 /* StudentRemarkListVC.swift */; };
        13AFABC42A4AE492001FEA16 /* StudentRemarkTCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13AFABC22A4AE492001FEA16 /* StudentRemarkTCell.swift */; };
        13AFABC52A4AE492001FEA16 /* StudentRemarkTCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13AFABC32A4AE492001FEA16 /* StudentRemarkTCell.xib */; };
        13B640C02A54108B00EA33ED /* UploadImgCCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13B640BE2A54108B00EA33ED /* UploadImgCCell.swift */; };
        13B640C12A54108B00EA33ED /* UploadImgCCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13B640BF2A54108B00EA33ED /* UploadImgCCell.xib */; };
        13BEEAE52A4D8DFB00685667 /* WelfareExchangeRecordListVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13BEEAE42A4D8DFB00685667 /* WelfareExchangeRecordListVC.swift */; };
        13BEEAE72A4D927100685667 /* WelfareExchangeRecordSubListVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13BEEAE62A4D927100685667 /* WelfareExchangeRecordSubListVC.swift */; };
        13BEEAEA2A4D92A200685667 /* ExchangeRecordTCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13BEEAE82A4D92A200685667 /* ExchangeRecordTCell.swift */; };
@@ -359,6 +361,8 @@
        13AFABC02A4AE3DC001FEA16 /* StudentRemarkListVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StudentRemarkListVC.swift; sourceTree = "<group>"; };
        13AFABC22A4AE492001FEA16 /* StudentRemarkTCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StudentRemarkTCell.swift; sourceTree = "<group>"; };
        13AFABC32A4AE492001FEA16 /* StudentRemarkTCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = StudentRemarkTCell.xib; sourceTree = "<group>"; };
        13B640BE2A54108B00EA33ED /* UploadImgCCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadImgCCell.swift; sourceTree = "<group>"; };
        13B640BF2A54108B00EA33ED /* UploadImgCCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = UploadImgCCell.xib; sourceTree = "<group>"; };
        13BEEAE42A4D8DFB00685667 /* WelfareExchangeRecordListVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelfareExchangeRecordListVC.swift; sourceTree = "<group>"; };
        13BEEAE62A4D927100685667 /* WelfareExchangeRecordSubListVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelfareExchangeRecordSubListVC.swift; sourceTree = "<group>"; };
        13BEEAE82A4D92A200685667 /* ExchangeRecordTCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExchangeRecordTCell.swift; sourceTree = "<group>"; };
@@ -505,6 +509,8 @@
            children = (
                1304B85A2A4EB0F8000D4F2E /* SearchBannerCCell.swift */,
                1304B85B2A4EB0F8000D4F2E /* SearchBannerCCell.xib */,
                13B640BE2A54108B00EA33ED /* UploadImgCCell.swift */,
                13B640BF2A54108B00EA33ED /* UploadImgCCell.xib */,
            );
            path = CCell;
            sourceTree = "<group>";
@@ -1224,6 +1230,7 @@
                8D8400DB2A2F1432003AF6A2 /* Assets.xcassets in Resources */,
                8DFA9B862A3172BE00E99281 /* HomeVC.xib in Resources */,
                8DFA9B922A317DE900E99281 /* WelfareVC.xib in Resources */,
                13B640C12A54108B00EA33ED /* UploadImgCCell.xib in Resources */,
                8D8DEDF32A31DDC500F2C7FA /* CouponCCell.xib in Resources */,
                138D8B8F2A3FFE36009DCA9E /* YardListVC.xib in Resources */,
                8D4905AE2A31AE7100E38513 /* JoinMemberIntroduceVC.xib in Resources */,
@@ -1390,6 +1397,7 @@
                8D6D58D12A39906F0003CFE6 /* ActivitySignupListSubVC.swift in Sources */,
                8D70178D2A330E5700473C40 /* CourseDetailVC.swift in Sources */,
                1355ABFD2A4C15C7002B25E4 /* RechargeRecordVC.swift in Sources */,
                13B640C02A54108B00EA33ED /* UploadImgCCell.swift in Sources */,
                130E40262A4EC029003A3D75 /* SearchStoreDetailVC.swift in Sources */,
                139A39F02A41374100737AFB /* YardBookingSubListVC.swift in Sources */,
                136FD9B12A4C354000933B7C /* WelfareRedeemGoodsDetailVC.swift in Sources */,
@@ -1606,11 +1614,11 @@
                GENERATE_INFOPLIST_FILE = YES;
                INFOPLIST_FILE = WanPai/Info.plist;
                INFOPLIST_KEY_CFBundleDisplayName = "玩湃";
                INFOPLIST_KEY_NSLocationWhenInUseUsageDescription = "$(PRODUCT_NAME)需要使用使用定位,来推荐、搜索您附近的门店";
                INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
                INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen;
                INFOPLIST_KEY_UIMainStoryboardFile = Main;
                INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
                INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
                INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait;
                IPHONEOS_DEPLOYMENT_TARGET = 13.0;
                LD_RUNPATH_SEARCH_PATHS = (
                    "$(inherited)",
@@ -1621,9 +1629,12 @@
                PRODUCT_NAME = "$(TARGET_NAME)";
                PROVISIONING_PROFILE_SPECIFIER = "";
                "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = dev_profile;
                SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
                SUPPORTS_MACCATALYST = NO;
                SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
                SWIFT_EMIT_LOC_STRINGS = YES;
                SWIFT_VERSION = 5.0;
                TARGETED_DEVICE_FAMILY = "1,2";
                TARGETED_DEVICE_FAMILY = 1;
            };
            name = Debug;
        };
@@ -1641,11 +1652,11 @@
                GENERATE_INFOPLIST_FILE = YES;
                INFOPLIST_FILE = WanPai/Info.plist;
                INFOPLIST_KEY_CFBundleDisplayName = "玩湃";
                INFOPLIST_KEY_NSLocationWhenInUseUsageDescription = "$(PRODUCT_NAME)需要使用使用定位,来推荐、搜索您附近的门店";
                INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
                INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen;
                INFOPLIST_KEY_UIMainStoryboardFile = Main;
                INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
                INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
                INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait;
                IPHONEOS_DEPLOYMENT_TARGET = 13.0;
                LD_RUNPATH_SEARCH_PATHS = (
                    "$(inherited)",
@@ -1656,9 +1667,12 @@
                PRODUCT_NAME = "$(TARGET_NAME)";
                PROVISIONING_PROFILE_SPECIFIER = "";
                "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = adHoc_profile;
                SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
                SUPPORTS_MACCATALYST = NO;
                SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
                SWIFT_EMIT_LOC_STRINGS = YES;
                SWIFT_VERSION = 5.0;
                TARGETED_DEVICE_FAMILY = "1,2";
                TARGETED_DEVICE_FAMILY = 1;
            };
            name = Release;
        };
WanPai/AppDelegate.swift
@@ -6,11 +6,14 @@
//
import UIKit
import JQTools
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
    var window: UIWindow?
    var orientation:UIInterfaceOrientationMask = .portrait
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        
@@ -31,6 +34,8 @@
        // Use this method to release any resources that were specific to the discarded scenes, as they will not return.
    }
    func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
        return orientation
    }
}
WanPai/Base/BaseNav.swift
@@ -102,7 +102,7 @@
    override var preferredStatusBarStyle: UIStatusBarStyle{
        return .lightContent
    }
}
WanPai/Base/BaseVC.swift
@@ -40,21 +40,6 @@
    }
    func setRx(){
        NotificationCenter.default.rx.notification(UIDevice.orientationDidChangeNotification).take(until:self.rx.deallocated).subscribe {[weak self] _ in
            let orient = UIDevice.current.orientation
            var desc = ""
//            switch orient {
//                case .portrait :desc = Localized("屏幕正常竖向")
//                case .portraitUpsideDown:desc = Localized("屏幕倒立")
//                case .landscapeLeft:desc = Localized("屏幕左旋转")
//                case .landscapeRight:desc = Localized("屏幕右旋转")
//                default:break
//            }
            if !desc.isEmpty{
                self?.receiverNotification(orient: orient, desc: desc)
            }
        }.disposed(by: disposeBag)
    }
    func setUI(){
@@ -85,16 +70,24 @@
        navigationController?.popViewController(animated: true)
    }
    deinit {
        LogInfo(String(format: "%@ 已释放", NSStringFromClass(self.classForCoder).components(separatedBy: ".").last!))
    override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
        coordinator.animate(alongsideTransition: { [weak self] (context) in
            let orient = UIApplication.shared.statusBarOrientation
            switch orient {
            case .landscapeLeft, .landscapeRight:
                //横屏时禁止左拽滑出
                self?.navigationController?.interactivePopGestureRecognizer?.isEnabled = false
            default:
                //竖屏时允许左拽滑出
                self?.navigationController?.interactivePopGestureRecognizer?.isEnabled = true
            }
        })
        super.viewWillTransition(to: size, with: coordinator)
    }
    /// 屏幕旋转:当设备方向改变,需要对UI进行重新布局,子类重写此方法
    @objc open func receiverNotification(orient:UIDeviceOrientation,desc:String){
        LogInfo(desc)
        refreshUI()
    deinit {
        LogInfo(String(format: "%@ 已释放", NSStringFromClass(self.classForCoder).components(separatedBy: ".").last!))
    }
}
WanPai/Config/Def.swift
@@ -7,9 +7,12 @@
import Foundation
import UIKit
import JQTools
let app = UIApplication.shared.delegate as! AppDelegate
let locationTool = JQ_LocationTool.instance()
var screnDelegate:SceneDelegate? = {
    var uiScreen:UIScene?
    UIApplication.shared.connectedScenes.forEach { scenes in
WanPai/Info.plist
@@ -25,5 +25,7 @@
            </array>
        </dict>
    </dict>
    <key>UIViewControllerBasedStatusBarAppearance</key>
    <true/>
</dict>
</plist>
WanPai/Root/Home/VC/HomeVC.swift
@@ -14,9 +14,17 @@
    
    private var layout:WaterFallFlowLayout!
    private var items = Array<String>()
    override func viewDidLoad() {
        super.viewDidLoad()
        locationTool.startLocation { local in
            print("SUCCESS--->\(local.coordinate)")
            locationTool.stopLocation()
        } errorClouse: { error in
            print("ERROR--->\(error.localizedDescription)")
        }
    }
    
    
@@ -48,8 +56,7 @@
    @IBAction func chooseStoresAction(_ sender: TapBtn) {
        StoresChooseView.show()
    }
    override var preferredStatusBarStyle: UIStatusBarStyle{
        return .lightContent
    }
WanPai/Root/Home/VC/JoinMemberIntroduceVC.swift
@@ -14,7 +14,7 @@
    override func viewDidLoad() {
        super.viewDidLoad()
        title = "成为会员"
    }
    
    override func setUI() {
WanPai/Root/Login/VC/LoginVC.swift
@@ -79,7 +79,7 @@
        }).disposed(by: disposeBag)
        
    }
    @IBAction func exchangeLoginTypeAction(_ sender: UIButton) {
        btn_pwdLogin.isSelected = sender.tag == 10
        btn_smsCodeLogin.isSelected = sender.tag == 11
@@ -174,6 +174,10 @@
    override var preferredStatusBarStyle: UIStatusBarStyle{
        return .default
    }
    override var shouldAutorotate: Bool{
        return false
    }
}
extension LoginVC:UITextViewDelegate{
WanPai/Root/Other/View/StoresChooseView.xib
@@ -1,9 +1,9 @@
<?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">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
    <device id="retina6_12" orientation="portrait" appearance="light"/>
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21505"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21679"/>
        <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"/>
@@ -17,25 +17,25 @@
            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
            <subviews>
                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ea6-eG-h1P">
                    <rect key="frame" x="45" y="333.66666666666669" width="303" height="210.00000000000006"/>
                    <rect key="frame" x="45" y="256.66666666666669" width="303" height="364.00000000000006"/>
                    <subviews>
                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="选择门店" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="vnK-Bc-xWN">
                            <rect key="frame" x="114.66666666666666" y="24" width="73.666666666666657" height="21"/>
                            <rect key="frame" x="114.66666666666666" y="24" width="73.666666666666657" height="21.666666666666671"/>
                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/>
                            <nil key="textColor"/>
                            <nil key="highlightedColor"/>
                        </label>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="YCO-sD-KY4" customClass="TapBtn" customModule="WanPai" customModuleProvider="target">
                            <rect key="frame" x="20" y="72" width="263" height="50"/>
                            <rect key="frame" x="95.666666666666643" y="221" width="199.33333333333337" height="50"/>
                            <subviews>
                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="sjM-7I-k3g">
                                    <rect key="frame" x="14.999999999999996" y="15.333333333333313" width="40.666666666666657" height="19.333333333333329"/>
                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="选择门店" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="sjM-7I-k3g">
                                    <rect key="frame" x="15" y="15.333333333333313" width="65.333333333333329" height="19.333333333333329"/>
                                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/>
                                    <nil key="textColor"/>
                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.60999999999999999" colorSpace="custom" customColorSpace="sRGB"/>
                                    <nil key="highlightedColor"/>
                                </label>
                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_down_arrow" translatesAutoresizingMaskIntoConstraints="NO" id="ZlA-4r-lHH">
                                    <rect key="frame" x="231" y="18" width="20" height="14"/>
                                    <rect key="frame" x="167.33333333333334" y="18" width="20" height="14"/>
                                </imageView>
                            </subviews>
                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
@@ -62,7 +62,7 @@
                            </connections>
                        </view>
                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Gtx-K4-ldi">
                            <rect key="frame" x="20.000000000000007" y="150" width="121.66666666666669" height="40"/>
                            <rect key="frame" x="20.000000000000007" y="303.99999999999994" width="121.66666666666669" height="40"/>
                            <color key="backgroundColor" red="0.75294117647058822" green="0.75294117647058822" blue="0.75294117647058822" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                            <constraints>
                                <constraint firstAttribute="height" constant="40" id="VNh-Ns-GXh"/>
@@ -81,7 +81,7 @@
                            </connections>
                        </button>
                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="MK0-Fw-fiO">
                            <rect key="frame" x="161.66666666666666" y="150" width="121.33333333333334" height="40"/>
                            <rect key="frame" x="161.66666666666666" y="303.99999999999994" width="121.33333333333334" height="40"/>
                            <color key="backgroundColor" name="FE6E0D"/>
                            <constraints>
                                <constraint firstAttribute="height" constant="40" id="CGz-wa-xYW"/>
@@ -99,21 +99,131 @@
                                <action selector="completeAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="zmz-SN-Ulx"/>
                            </connections>
                        </button>
                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="门店名称:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Iwt-0W-DTT">
                            <rect key="frame" x="14" y="236.33333333333331" width="81.666666666666671" height="19.333333333333343"/>
                            <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="16"/>
                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.81000000000000005" colorSpace="custom" customColorSpace="sRGB"/>
                            <nil key="highlightedColor"/>
                        </label>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="A9R-Ja-bxD" customClass="TapBtn" customModule="WanPai" customModuleProvider="target">
                            <rect key="frame" x="95.666666666666657" y="76.666666666666629" width="169.99999999999997" height="50"/>
                            <subviews>
                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="选择省份" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="LHk-zb-Nvv">
                                    <rect key="frame" x="15" y="15.333333333333369" width="65.333333333333329" height="19.333333333333329"/>
                                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/>
                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.60999999999999999" colorSpace="custom" customColorSpace="sRGB"/>
                                    <nil key="highlightedColor"/>
                                </label>
                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_down_arrow" translatesAutoresizingMaskIntoConstraints="NO" id="uVb-d4-a48">
                                    <rect key="frame" x="138.00000000000003" y="18" width="20" height="14"/>
                                </imageView>
                            </subviews>
                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                            <constraints>
                                <constraint firstItem="LHk-zb-Nvv" firstAttribute="centerY" secondItem="A9R-Ja-bxD" secondAttribute="centerY" id="5bt-Op-Vmg"/>
                                <constraint firstItem="uVb-d4-a48" firstAttribute="centerY" secondItem="A9R-Ja-bxD" secondAttribute="centerY" id="CRz-Ld-o7W"/>
                                <constraint firstItem="LHk-zb-Nvv" firstAttribute="leading" secondItem="A9R-Ja-bxD" secondAttribute="leading" constant="15" id="FfR-sL-Q12"/>
                                <constraint firstAttribute="height" constant="50" id="Log-tu-XNH"/>
                                <constraint firstAttribute="trailing" secondItem="uVb-d4-a48" secondAttribute="trailing" constant="12" id="dwD-Cy-Ich"/>
                            </constraints>
                            <userDefinedRuntimeAttributes>
                                <userDefinedRuntimeAttribute type="color" keyPath="borderColor">
                                    <color key="value" red="0.80392156859999997" green="0.80392156859999997" blue="0.80392156859999997" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                </userDefinedRuntimeAttribute>
                                <userDefinedRuntimeAttribute type="number" keyPath="borderWidth">
                                    <real key="value" value="1"/>
                                </userDefinedRuntimeAttribute>
                                <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
                                    <real key="value" value="6"/>
                                </userDefinedRuntimeAttribute>
                            </userDefinedRuntimeAttributes>
                            <connections>
                                <action selector="tapChooseAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="rX9-r7-Idz"/>
                            </connections>
                        </view>
                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="省" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="TQ0-7y-gmP">
                            <rect key="frame" x="276.66666666666669" y="92" width="16.333333333333314" height="19.333333333333329"/>
                            <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="16"/>
                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.60999999999999999" 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="reI-TL-hMa">
                            <rect key="frame" x="14" y="92" width="81.666666666666671" height="19"/>
                            <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="16"/>
                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.81000000000000005" colorSpace="custom" customColorSpace="sRGB"/>
                            <nil key="highlightedColor"/>
                        </label>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="s9M-HC-hay" customClass="TapBtn" customModule="WanPai" customModuleProvider="target">
                            <rect key="frame" x="95.666666666666657" y="144.66666666666663" width="169.99999999999997" height="50"/>
                            <subviews>
                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="选择城市" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="flf-S9-xVu">
                                    <rect key="frame" x="15" y="15.333333333333369" width="65.333333333333329" height="19.333333333333329"/>
                                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/>
                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.60999999999999999" colorSpace="custom" customColorSpace="sRGB"/>
                                    <nil key="highlightedColor"/>
                                </label>
                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_down_arrow" translatesAutoresizingMaskIntoConstraints="NO" id="p7S-Td-vXl">
                                    <rect key="frame" x="138.00000000000003" y="18" width="20" height="14"/>
                                </imageView>
                            </subviews>
                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                            <constraints>
                                <constraint firstAttribute="trailing" secondItem="p7S-Td-vXl" secondAttribute="trailing" constant="12" id="BeR-Sm-Kee"/>
                                <constraint firstAttribute="height" constant="50" id="cjw-jM-YU0"/>
                                <constraint firstItem="flf-S9-xVu" firstAttribute="leading" secondItem="s9M-HC-hay" secondAttribute="leading" constant="15" id="cwi-Q5-VRu"/>
                                <constraint firstItem="p7S-Td-vXl" firstAttribute="centerY" secondItem="s9M-HC-hay" secondAttribute="centerY" id="gRf-WW-K2E"/>
                                <constraint firstItem="flf-S9-xVu" firstAttribute="centerY" secondItem="s9M-HC-hay" secondAttribute="centerY" id="rMg-L9-rNT"/>
                            </constraints>
                            <userDefinedRuntimeAttributes>
                                <userDefinedRuntimeAttribute type="color" keyPath="borderColor">
                                    <color key="value" red="0.80392156859999997" green="0.80392156859999997" blue="0.80392156859999997" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                </userDefinedRuntimeAttribute>
                                <userDefinedRuntimeAttribute type="number" keyPath="borderWidth">
                                    <real key="value" value="1"/>
                                </userDefinedRuntimeAttribute>
                                <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
                                    <real key="value" value="6"/>
                                </userDefinedRuntimeAttribute>
                            </userDefinedRuntimeAttributes>
                            <connections>
                                <action selector="tapChooseAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="n7R-6I-v9d"/>
                            </connections>
                        </view>
                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="市" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="bpE-eg-Ouo">
                            <rect key="frame" x="276.66666666666669" y="160" width="16.333333333333314" height="19.333333333333343"/>
                            <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="16"/>
                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.60999999999999999" colorSpace="custom" customColorSpace="sRGB"/>
                            <nil key="highlightedColor"/>
                        </label>
                    </subviews>
                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                    <constraints>
                        <constraint firstItem="YCO-sD-KY4" firstAttribute="top" secondItem="vnK-Bc-xWN" secondAttribute="bottom" constant="27" id="5Sg-XI-tyk"/>
                        <constraint firstItem="YCO-sD-KY4" firstAttribute="leading" secondItem="ea6-eG-h1P" secondAttribute="leading" constant="20" id="Ede-8g-lpm"/>
                        <constraint firstItem="A9R-Ja-bxD" firstAttribute="top" secondItem="vnK-Bc-xWN" secondAttribute="bottom" constant="31" id="01u-Qq-Gvy"/>
                        <constraint firstItem="A9R-Ja-bxD" firstAttribute="centerY" secondItem="reI-TL-hMa" secondAttribute="centerY" id="1nD-04-k7j"/>
                        <constraint firstItem="bpE-eg-Ouo" firstAttribute="centerY" secondItem="s9M-HC-hay" secondAttribute="centerY" id="5ME-wE-s3r"/>
                        <constraint firstItem="Iwt-0W-DTT" firstAttribute="leading" secondItem="ea6-eG-h1P" secondAttribute="leading" constant="14" id="LJ1-JK-oMp"/>
                        <constraint firstItem="A9R-Ja-bxD" firstAttribute="leading" secondItem="reI-TL-hMa" secondAttribute="trailing" id="NCp-A4-fbe"/>
                        <constraint firstItem="MK0-Fw-fiO" firstAttribute="width" secondItem="Gtx-K4-ldi" secondAttribute="width" id="Nhf-NG-Bmn"/>
                        <constraint firstItem="TQ0-7y-gmP" firstAttribute="leading" secondItem="A9R-Ja-bxD" secondAttribute="trailing" constant="11" id="O7C-da-RVS"/>
                        <constraint firstAttribute="bottom" secondItem="MK0-Fw-fiO" secondAttribute="bottom" constant="20" id="R8O-yc-CxM"/>
                        <constraint firstItem="vnK-Bc-xWN" firstAttribute="centerX" secondItem="ea6-eG-h1P" secondAttribute="centerX" id="RF5-nd-8KE"/>
                        <constraint firstItem="vnK-Bc-xWN" firstAttribute="top" secondItem="ea6-eG-h1P" secondAttribute="top" constant="24" id="S7D-zN-YJ6"/>
                        <constraint firstAttribute="trailing" secondItem="YCO-sD-KY4" secondAttribute="trailing" constant="20" id="Wh9-1t-F64"/>
                        <constraint firstItem="s9M-HC-hay" firstAttribute="leading" secondItem="A9R-Ja-bxD" secondAttribute="leading" id="Ss6-Fl-tkl"/>
                        <constraint firstAttribute="trailing" secondItem="YCO-sD-KY4" secondAttribute="trailing" constant="8" id="Wh9-1t-F64"/>
                        <constraint firstAttribute="bottom" secondItem="Gtx-K4-ldi" secondAttribute="bottom" constant="20" id="brJ-st-kuO"/>
                        <constraint firstItem="reI-TL-hMa" firstAttribute="leading" secondItem="ea6-eG-h1P" secondAttribute="leading" constant="14" id="cAD-e4-anQ"/>
                        <constraint firstItem="s9M-HC-hay" firstAttribute="top" secondItem="A9R-Ja-bxD" secondAttribute="bottom" constant="18" id="dWh-FY-cIf"/>
                        <constraint firstItem="YCO-sD-KY4" firstAttribute="leading" secondItem="Iwt-0W-DTT" secondAttribute="trailing" id="dih-tS-QhP"/>
                        <constraint firstItem="MK0-Fw-fiO" firstAttribute="leading" secondItem="Gtx-K4-ldi" secondAttribute="trailing" constant="20" id="iiy-cI-0Cr"/>
                        <constraint firstAttribute="height" constant="210" id="jRa-OG-3Na"/>
                        <constraint firstItem="Gtx-K4-ldi" firstAttribute="top" secondItem="YCO-sD-KY4" secondAttribute="bottom" constant="33" id="jEX-P7-jTU"/>
                        <constraint firstAttribute="height" constant="364" id="jRa-OG-3Na"/>
                        <constraint firstAttribute="trailing" secondItem="MK0-Fw-fiO" secondAttribute="trailing" constant="20" id="kKt-QK-ktq"/>
                        <constraint firstAttribute="trailing" secondItem="bpE-eg-Ouo" secondAttribute="trailing" constant="10" id="ljo-a4-pHf"/>
                        <constraint firstAttribute="trailing" secondItem="TQ0-7y-gmP" secondAttribute="trailing" constant="10" id="qMO-ac-jNi"/>
                        <constraint firstItem="bpE-eg-Ouo" firstAttribute="leading" secondItem="s9M-HC-hay" secondAttribute="trailing" constant="11" id="rxk-cZ-TEc"/>
                        <constraint firstItem="TQ0-7y-gmP" firstAttribute="centerY" secondItem="A9R-Ja-bxD" secondAttribute="centerY" id="u1V-GM-KFn"/>
                        <constraint firstItem="Gtx-K4-ldi" firstAttribute="leading" secondItem="ea6-eG-h1P" secondAttribute="leading" constant="20" id="wLW-ue-oaS"/>
                        <constraint firstItem="YCO-sD-KY4" firstAttribute="centerY" secondItem="Iwt-0W-DTT" secondAttribute="centerY" id="zE5-0h-5Ug"/>
                    </constraints>
                    <userDefinedRuntimeAttributes>
                        <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/>
@@ -135,13 +245,13 @@
                <outlet property="label_currently" destination="sjM-7I-k3g" id="zoR-nM-OxD"/>
                <outlet property="view_container" destination="ea6-eG-h1P" id="BWb-nv-CLC"/>
            </connections>
            <point key="canvasLocation" x="140" y="21"/>
            <point key="canvasLocation" x="139.69465648854961" y="20.422535211267608"/>
        </view>
    </objects>
    <resources>
        <image name="icon_down_arrow" width="20" height="14"/>
        <namedColor name="FE6E0D">
            <color red="0.99599999189376831" green="0.4309999942779541" blue="0.050999999046325684" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
            <color red="0.99199998378753662" green="0.53299999237060547" blue="0.0080000003799796104" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
        </namedColor>
        <systemColor name="systemBackgroundColor">
            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
WanPai/Root/Search/CCell/UploadImgCCell.swift
New file
@@ -0,0 +1,17 @@
//
//  UploadImgCCell.swift
//  WanPai
//
//  Created by 无故事王国 on 2023/7/4.
//
import UIKit
class UploadImgCCell: UICollectionViewCell {
    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
    }
}
WanPai/Root/Search/CCell/UploadImgCCell.xib
New file
@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
    <device id="retina6_12" orientation="portrait" appearance="light"/>
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21679"/>
        <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"/>
        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
        <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="_UploadImgCCell" id="gTV-IL-0wX" customClass="UploadImgCCell" customModule="WanPai" customModuleProvider="target">
            <rect key="frame" x="0.0" y="0.0" width="85" height="90"/>
            <autoresizingMask key="autoresizingMask"/>
            <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
                <rect key="frame" x="0.0" y="0.0" width="85" height="90"/>
                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                <subviews>
                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="btn_evaluate_add" translatesAutoresizingMaskIntoConstraints="NO" id="v5Q-qM-hTv">
                        <rect key="frame" x="2.6666666666666643" y="2.6666666666666643" width="80" height="85"/>
                    </imageView>
                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="fFK-k3-YIh">
                        <rect key="frame" x="67" y="0.0" width="18" height="22"/>
                        <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                        <state key="normal" image="btn_evaluate_delete"/>
                    </button>
                </subviews>
            </view>
            <viewLayoutGuide key="safeArea" id="ZTg-uK-7eu"/>
            <constraints>
                <constraint firstAttribute="trailing" secondItem="fFK-k3-YIh" secondAttribute="trailing" id="0i7-sV-Rz4"/>
                <constraint firstItem="v5Q-qM-hTv" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" constant="2.5" id="2Ms-oS-QmO"/>
                <constraint firstItem="fFK-k3-YIh" firstAttribute="top" secondItem="gTV-IL-0wX" secondAttribute="top" id="6Vv-Pq-ZCc"/>
                <constraint firstItem="v5Q-qM-hTv" firstAttribute="top" secondItem="gTV-IL-0wX" secondAttribute="top" constant="2.5" id="UeD-Ig-O1o"/>
                <constraint firstAttribute="trailing" secondItem="v5Q-qM-hTv" secondAttribute="trailing" constant="2.5" id="VMu-1e-pVO"/>
                <constraint firstAttribute="bottom" secondItem="v5Q-qM-hTv" secondAttribute="bottom" constant="2.5" id="zmu-OG-hSq"/>
            </constraints>
            <size key="customSize" width="85" height="90"/>
            <point key="canvasLocation" x="89.312977099236633" y="34.507042253521128"/>
        </collectionViewCell>
    </objects>
    <resources>
        <image name="btn_evaluate_add" width="55" height="55"/>
        <image name="btn_evaluate_delete" width="18" height="18"/>
    </resources>
</document>
WanPai/Root/Search/VC/SearchStoreDetailFeedbackVC.swift
@@ -8,10 +8,51 @@
import UIKit
class SearchStoreDetailFeedbackVC: BaseVC {
    @IBOutlet weak var stackView: UIStackView!
    @IBOutlet weak var collectionView: UICollectionView!
    override func viewDidLoad() {
        super.viewDidLoad()
        title = "门店评价"
        collectionView.delegate = self
        collectionView.dataSource = self
        collectionView.register(UINib(nibName: "UploadImgCCell", bundle: nil), forCellWithReuseIdentifier: "_UploadImgCCell")
    }
    @IBAction func startAction(_ sender: UIButton) {
        let tag = sender.tag
        for v in (stackView.arrangedSubviews as! [UIButton]){
            v.isSelected = v.tag <= tag
        }
    }
}
extension SearchStoreDetailFeedbackVC:UICollectionViewDelegate{
}
extension SearchStoreDetailFeedbackVC:UICollectionViewDataSource{
    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
       let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "_UploadImgCCell", for: indexPath) as! UploadImgCCell
        return cell
    }
    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        return 2
    }
}
extension SearchStoreDetailFeedbackVC:UICollectionViewDelegateFlowLayout{
    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
        return CGSize(width: 60, height: 60)
    }
    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
        return 0.01
    }
    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
        return 0.01
    }
}
WanPai/Root/Search/VC/SearchStoreDetailFeedbackVC.xib
@@ -11,6 +11,8 @@
    <objects>
        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="SearchStoreDetailFeedbackVC" customModule="WanPai" customModuleProvider="target">
            <connections>
                <outlet property="collectionView" destination="Bdf-BC-sQU" id="6At-sV-EKq"/>
                <outlet property="stackView" destination="eVR-tY-BNf" id="bu9-4c-oDW"/>
                <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
            </connections>
        </placeholder>
@@ -28,35 +30,50 @@
                <stackView opaque="NO" contentMode="scaleToFill" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="eVR-tY-BNf">
                    <rect key="frame" x="88.666666666666686" y="76.666666666666671" width="110" height="22"/>
                    <subviews>
                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="UoP-cT-TEF">
                        <button opaque="NO" tag="10" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="UoP-cT-TEF">
                            <rect key="frame" x="0.0" y="0.0" width="18" height="22"/>
                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                            <state key="normal" image="btn_start_u"/>
                            <state key="selected" image="btn_start"/>
                            <connections>
                                <action selector="startAction:" destination="-1" eventType="touchUpInside" id="Jr1-xo-EUj"/>
                            </connections>
                        </button>
                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="GFD-em-bLY">
                        <button opaque="NO" tag="11" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="GFD-em-bLY">
                            <rect key="frame" x="23" y="0.0" width="18" height="22"/>
                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                            <state key="normal" image="btn_start_u"/>
                            <state key="selected" image="btn_start"/>
                            <connections>
                                <action selector="startAction:" destination="-1" eventType="touchUpInside" id="RNK-J1-NbV"/>
                            </connections>
                        </button>
                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="zc9-Uc-1xK">
                        <button opaque="NO" tag="12" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="zc9-Uc-1xK">
                            <rect key="frame" x="45.999999999999986" y="0.0" width="18" height="22"/>
                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                            <state key="normal" image="btn_start_u"/>
                            <state key="selected" image="btn_start"/>
                            <connections>
                                <action selector="startAction:" destination="-1" eventType="touchUpInside" id="yew-Vq-oWc"/>
                            </connections>
                        </button>
                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="yHm-w0-pr4">
                        <button opaque="NO" tag="13" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="yHm-w0-pr4">
                            <rect key="frame" x="68.999999999999986" y="0.0" width="18" height="22"/>
                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                            <state key="normal" image="btn_start_u"/>
                            <state key="selected" image="btn_start"/>
                            <connections>
                                <action selector="startAction:" destination="-1" eventType="touchUpInside" id="6jh-L5-DD2"/>
                            </connections>
                        </button>
                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Ub1-EE-3Ax">
                        <button opaque="NO" tag="14" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Ub1-EE-3Ax">
                            <rect key="frame" x="91.999999999999986" y="0.0" width="18" height="22"/>
                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                            <state key="normal" image="btn_start_u"/>
                            <state key="selected" image="btn_start"/>
                            <connections>
                                <action selector="startAction:" destination="-1" eventType="touchUpInside" id="gRh-95-SGw"/>
                            </connections>
                        </button>
                    </subviews>
                </stackView>
@@ -106,14 +123,30 @@
                    <nil key="textColor"/>
                    <nil key="highlightedColor"/>
                </label>
                <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" dataMode="none" translatesAutoresizingMaskIntoConstraints="NO" id="Bdf-BC-sQU">
                    <rect key="frame" x="14" y="416.33333333333331" width="365" height="65"/>
                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                    <constraints>
                        <constraint firstAttribute="height" constant="65" id="X5m-a8-WfI"/>
                    </constraints>
                    <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="10" minimumInteritemSpacing="10" id="YLS-E1-VOS">
                        <size key="itemSize" width="128" height="128"/>
                        <size key="headerReferenceSize" width="0.0" height="0.0"/>
                        <size key="footerReferenceSize" width="0.0" height="0.0"/>
                        <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
                    </collectionViewFlowLayout>
                </collectionView>
            </subviews>
            <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
            <constraints>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="oDM-kN-KPX" secondAttribute="trailing" constant="14" id="2aT-mi-vng"/>
                <constraint firstItem="Bdf-BC-sQU" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="14" id="FQn-ws-DNf"/>
                <constraint firstItem="Bdf-BC-sQU" firstAttribute="top" secondItem="aOL-oD-g8G" secondAttribute="bottom" constant="6" id="MOi-6C-9JU"/>
                <constraint firstItem="JaJ-JT-dcZ" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="14" id="PnD-Zo-hhG"/>
                <constraint firstItem="aOL-oD-g8G" firstAttribute="top" secondItem="oDM-kN-KPX" secondAttribute="bottom" constant="22" id="XXj-4r-mQ1"/>
                <constraint firstItem="oDM-kN-KPX" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="14" id="bNu-Bl-8PE"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="Bdf-BC-sQU" secondAttribute="trailing" constant="14" id="eYU-ax-TcF"/>
                <constraint firstItem="JaJ-JT-dcZ" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="topMargin" constant="20" id="h3p-DZ-GDN"/>
                <constraint firstItem="eVR-tY-BNf" firstAttribute="leading" secondItem="JaJ-JT-dcZ" secondAttribute="trailing" constant="3" id="ksM-IT-LLv"/>
                <constraint firstItem="aOL-oD-g8G" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="14" id="m1D-88-DgM"/>
@@ -122,7 +155,7 @@
                <constraint firstItem="4n5-rh-U3q" firstAttribute="leading" secondItem="JaJ-JT-dcZ" secondAttribute="leading" id="usU-rf-zql"/>
                <constraint firstItem="eVR-tY-BNf" firstAttribute="centerY" secondItem="JaJ-JT-dcZ" secondAttribute="centerY" id="w8g-vQ-ggi"/>
            </constraints>
            <point key="canvasLocation" x="140" y="21"/>
            <point key="canvasLocation" x="139.69465648854961" y="20.422535211267608"/>
        </view>
    </objects>
    <resources>