无故事王国
2023-10-26 312a9883c0903c0526e95d72e0b9070580b29aad
新增推荐联系人
5个文件已修改
154 ■■■■■ 已修改文件
WanPai/Network/Services.swift 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Login/VC/BindPhoneVC.swift 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Login/VC/BindPhoneVC.xib 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Login/VC/LoginRegOrForgotVC.swift 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Login/VC/LoginRegOrForgotVC.xib 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Network/Services.swift
@@ -137,12 +137,13 @@
        return NetworkRequest.request(params: params, method: .post, progress: true)
    }
    class func wxPhoneBind(phone:String,code:String,openId:String)->Observable<BaseResponse<SimpleModel>>{
    class func wxPhoneBind(phone:String,code:String,openId:String,invitePhone:String? = nil)->Observable<BaseResponse<SimpleModel>>{
        let params = ParamsAppender.build(url: All_Url)
            .interface(url: "/account/base/appUser/bind")
            .append(key: "phone", value: phone)
            .append(key: "openId", value: openId)
            .append(key: "code", value: code)
            .append(key: "invitePhone", value: invitePhone)
        return NetworkRequest.request(params: params, method: .post, progress: true)
    }
@@ -154,12 +155,13 @@
        return NetworkRequest.request(params: params, method: .post, progress: true)
    }
    class func register(phone:String,password:String,code:String)->Observable<BaseResponse<SimpleModel>>{
    class func register(phone:String,password:String,code:String,invitePhone:String? = nil)->Observable<BaseResponse<SimpleModel>>{
        let params = ParamsAppender.build(url: All_Url)
            .interface(url: "/account/base/appUser/addAppUser")
            .append(key: "phone", value: phone)
            .append(key: "password", value: password.jq_md5String().lowercased())
            .append(key: "code", value: code)
            .append(key: "invitePhone", value: invitePhone)
        return NetworkRequest.request(params: params, method: .post, progress: true)
    }
WanPai/Root/Login/VC/BindPhoneVC.swift
@@ -14,6 +14,7 @@
    @IBOutlet weak var tf_phone: QMUITextField!
    @IBOutlet weak var tf_code: QMUITextField!
    @IBOutlet weak var btn_code: UIButton!
    @IBOutlet weak var tf_invitePhone: QMUITextField!
    private var wxUserInfoModel:WechatUserInfoModel!
    private var token:String!
@@ -53,7 +54,14 @@
            alert(msg: "请输入验证码");return
        }
        Services.wxPhoneBind(phone: tf_phone.text!, code: tf_code.text!, openId: wxUserInfoModel.openid).subscribe(onNext: {[weak self] data in
        var invitePhone:String?
        if !tf_invitePhone.isEmpty{
            guard tf_phone.text!.jq_isPhone else {
                alert(msg: "请输入正确的推广手机号码");return
            }
        }
        Services.wxPhoneBind(phone: tf_phone.text!, code: tf_code.text!, openId: wxUserInfoModel.openid,invitePhone: invitePhone).subscribe(onNext: {[weak self] data in
            guard let weakSelf = self else { return }
            if data.code == 200{
                alertSuccess(msg: "绑定成功")
WanPai/Root/Login/VC/BindPhoneVC.xib
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="22154" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="22155" 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="22130"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22131"/>
        <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"/>
@@ -14,6 +14,7 @@
            <connections>
                <outlet property="btn_code" destination="HBj-1e-rHP" id="aVH-jy-57q"/>
                <outlet property="tf_code" destination="uLi-4i-BeV" id="U7P-Sg-0pn"/>
                <outlet property="tf_invitePhone" destination="VXM-nS-KT3" id="gWF-rF-AoS"/>
                <outlet property="tf_phone" destination="38t-oZ-Tdy" id="fBc-VT-npA"/>
                <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
            </connections>
@@ -131,16 +132,56 @@
                        <action selector="bindAction:" destination="-1" eventType="touchUpInside" id="FDP-to-B1Y"/>
                    </connections>
                </button>
                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="mwx-FU-gHa">
                    <rect key="frame" x="40" y="321" width="313" height="50"/>
                    <subviews>
                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_login_phone" translatesAutoresizingMaskIntoConstraints="NO" id="dIe-9P-FaY">
                            <rect key="frame" x="31" y="16" width="16" height="18"/>
                        </imageView>
                        <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="推广手机号(可选)" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="VXM-nS-KT3" customClass="QMUITextField">
                            <rect key="frame" x="75" y="0.0" width="228" height="50"/>
                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/>
                            <textInputTraits key="textInputTraits" keyboardType="numberPad"/>
                            <userDefinedRuntimeAttributes>
                                <userDefinedRuntimeAttribute type="number" keyPath="maximumTextLength">
                                    <integer key="value" value="11"/>
                                </userDefinedRuntimeAttribute>
                                <userDefinedRuntimeAttribute type="color" keyPath="placeholderColor">
                                    <color key="value" red="0.0" green="0.0" blue="0.0" alpha="0.40000000000000002" colorSpace="custom" customColorSpace="sRGB"/>
                                </userDefinedRuntimeAttribute>
                            </userDefinedRuntimeAttributes>
                        </textField>
                    </subviews>
                    <color key="backgroundColor" red="0.96470588239999999" green="0.96470588239999999" blue="0.96470588239999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                    <constraints>
                        <constraint firstItem="dIe-9P-FaY" firstAttribute="centerY" secondItem="mwx-FU-gHa" secondAttribute="centerY" id="BxU-WY-43M"/>
                        <constraint firstAttribute="trailing" secondItem="VXM-nS-KT3" secondAttribute="trailing" constant="10" id="SGl-8u-KSv"/>
                        <constraint firstItem="VXM-nS-KT3" firstAttribute="leading" secondItem="dIe-9P-FaY" secondAttribute="trailing" constant="28" id="acx-eY-Z4g"/>
                        <constraint firstAttribute="height" constant="50" id="bsR-AW-q4M"/>
                        <constraint firstAttribute="bottom" secondItem="VXM-nS-KT3" secondAttribute="bottom" id="dPd-j8-bfp"/>
                        <constraint firstItem="VXM-nS-KT3" firstAttribute="top" secondItem="mwx-FU-gHa" secondAttribute="top" id="xep-Dk-sG7"/>
                        <constraint firstItem="dIe-9P-FaY" firstAttribute="leading" secondItem="mwx-FU-gHa" secondAttribute="leading" constant="31" id="zHI-bv-jIc"/>
                    </constraints>
                    <userDefinedRuntimeAttributes>
                        <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/>
                        <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB">
                            <real key="value" value="25"/>
                        </userDefinedRuntimeAttribute>
                    </userDefinedRuntimeAttributes>
                </view>
            </subviews>
            <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
            <constraints>
                <constraint firstItem="WPl-pn-8JJ" firstAttribute="top" secondItem="7pY-Sh-GDo" secondAttribute="bottom" constant="30" id="0pd-fR-HyH"/>
                <constraint firstItem="mwx-FU-gHa" firstAttribute="trailing" secondItem="7iL-m6-Iwb" secondAttribute="trailing" id="8GK-7D-hNR"/>
                <constraint firstItem="7iL-m6-Iwb" firstAttribute="top" secondItem="WPl-pn-8JJ" secondAttribute="bottom" constant="20" id="EUo-p4-szH"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="E2r-yp-uyh" secondAttribute="trailing" constant="40" id="VGa-zn-Nhc"/>
                <constraint firstItem="WPl-pn-8JJ" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="40" id="a84-vJ-qRX"/>
                <constraint firstItem="7pY-Sh-GDo" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" constant="20" id="bSg-Zi-eW3"/>
                <constraint firstItem="mwx-FU-gHa" firstAttribute="leading" secondItem="7iL-m6-Iwb" secondAttribute="leading" id="eI6-Nw-SFE"/>
                <constraint firstItem="E2r-yp-uyh" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="40" id="fKj-JO-wQI"/>
                <constraint firstItem="mwx-FU-gHa" firstAttribute="top" secondItem="7iL-m6-Iwb" secondAttribute="bottom" constant="20" id="g4a-Vp-qHi"/>
                <constraint firstItem="7iL-m6-Iwb" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="40" id="iCb-l2-b9e"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="WPl-pn-8JJ" secondAttribute="trailing" constant="40" id="qSE-TR-Ja9"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="bottom" secondItem="E2r-yp-uyh" secondAttribute="bottom" constant="10" id="tWf-9w-2cf"/>
WanPai/Root/Login/VC/LoginRegOrForgotVC.swift
@@ -17,8 +17,10 @@
    @IBOutlet weak var tf_phone: QMUITextField!
    @IBOutlet weak var tf_code: QMUITextField!
    @IBOutlet weak var tf_pwd: QMUITextField!
    required init(type:GetSMSCodeType) {
    @IBOutlet weak var tf_invitePhone: QMUITextField!
    @IBOutlet weak var view_invite: UIView!
    @IBOutlet weak var view_placeholder: UIView!
    required init(type:GetSMSCodeType) {
        super.init(nibName: nil, bundle: nil)
        self.type = type
    }
@@ -31,6 +33,9 @@
        super.viewDidLoad()
        title = type.titleStr
        tf_pwd.maximumTextLength = 18
        view_invite.isHidden = type != .register
        view_placeholder.isHidden = type != .register
    }
    @IBAction func eyeAction(_ sender: UIButton) {
@@ -45,14 +50,22 @@
        guard !tf_pwd.text!.isEmpty else {alertError(msg: tf_pwd.placeholder!);return}
        guard tf_pwd.text!.jq_isComplexPassword else {alertError(msg: "请输入6-18位包含数字和字母的密码");return}
        let phone = tf_phone.text!
        let pwd = tf_pwd.text!
        let code = tf_code.text!
        switch type{
            case .register:
                Services.register(phone: phone, password: pwd, code: code).subscribe(onNext: { result in
                var invitePhone:String?
                if !tf_invitePhone.isEmpty{invitePhone = tf_invitePhone.text!}
                if invitePhone != nil{
                    guard tf_phone.text!.jq_isPhone else {
                        alert(msg: "请输入正确的推广手机号码");return
                    }
                }
                Services.register(phone: phone, password: pwd, code: code,invitePhone: invitePhone).subscribe(onNext: { result in
                    alertSuccess(msg: "注册成功")
                    DispatchQueue.main.asyncAfter(wallDeadline: .now()+1) {
                        app.registerAndLoginSuccess()
WanPai/Root/Login/VC/LoginRegOrForgotVC.xib
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="22154" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="22155" 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="22130"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22131"/>
        <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"/>
@@ -13,9 +13,12 @@
        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="LoginRegOrForgotVC" customModule="WanPai" customModuleProvider="target">
            <connections>
                <outlet property="tf_code" destination="gNj-6t-p9o" id="dc4-A0-9gm"/>
                <outlet property="tf_invitePhone" destination="Tyv-H1-ya9" id="2NV-Ot-rA5"/>
                <outlet property="tf_phone" destination="t2b-ES-vps" id="chL-vl-tdC"/>
                <outlet property="tf_pwd" destination="xxp-hE-Y3y" id="ce7-Z5-2g7"/>
                <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
                <outlet property="view_invite" destination="khS-aY-eIa" id="RJV-gI-KqF"/>
                <outlet property="view_placeholder" destination="yL2-ki-hg8" id="Lkp-6r-JmA"/>
            </connections>
        </placeholder>
        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
@@ -161,7 +164,7 @@
                    </userDefinedRuntimeAttributes>
                </view>
                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="vri-pP-hU6">
                    <rect key="frame" x="100" y="423" width="193" height="40"/>
                    <rect key="frame" x="100" y="502" width="193" height="40"/>
                    <color key="backgroundColor" name="FE6E0D"/>
                    <constraints>
                        <constraint firstAttribute="height" constant="40" id="9Zu-bi-eqQ"/>
@@ -179,11 +182,67 @@
                        <action selector="completeAction:" destination="-1" eventType="touchUpInside" id="T4h-wV-1He"/>
                    </connections>
                </button>
                <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="UlJ-UL-n5e">
                    <rect key="frame" x="40" y="384" width="313" height="98"/>
                    <subviews>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Qjx-Ow-Cs2">
                            <rect key="frame" x="0.0" y="0.0" width="313" height="24"/>
                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                            <constraints>
                                <constraint firstAttribute="height" constant="24" id="Nhk-hZ-Au2"/>
                            </constraints>
                        </view>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="khS-aY-eIa">
                            <rect key="frame" x="0.0" y="24" width="313" height="50"/>
                            <subviews>
                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_login_phone" translatesAutoresizingMaskIntoConstraints="NO" id="ann-JZ-F4D">
                                    <rect key="frame" x="31" y="16" width="16" height="18"/>
                                </imageView>
                                <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="推广手机号(可选)" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="Tyv-H1-ya9" customClass="QMUITextField">
                                    <rect key="frame" x="75" y="0.0" width="228" height="50"/>
                                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/>
                                    <textInputTraits key="textInputTraits" keyboardType="numberPad"/>
                                    <userDefinedRuntimeAttributes>
                                        <userDefinedRuntimeAttribute type="number" keyPath="maximumTextLength">
                                            <integer key="value" value="11"/>
                                        </userDefinedRuntimeAttribute>
                                        <userDefinedRuntimeAttribute type="color" keyPath="placeholderColor">
                                            <color key="value" red="0.0" green="0.0" blue="0.0" alpha="0.40000000000000002" colorSpace="custom" customColorSpace="sRGB"/>
                                        </userDefinedRuntimeAttribute>
                                    </userDefinedRuntimeAttributes>
                                </textField>
                            </subviews>
                            <color key="backgroundColor" red="0.96470588239999999" green="0.96470588239999999" blue="0.96470588239999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                            <constraints>
                                <constraint firstAttribute="trailing" secondItem="Tyv-H1-ya9" secondAttribute="trailing" constant="10" id="9PP-Md-R9L"/>
                                <constraint firstItem="Tyv-H1-ya9" firstAttribute="leading" secondItem="ann-JZ-F4D" secondAttribute="trailing" constant="28" id="CQh-af-AYU"/>
                                <constraint firstItem="ann-JZ-F4D" firstAttribute="leading" secondItem="khS-aY-eIa" secondAttribute="leading" constant="31" id="HJj-ap-d8Z"/>
                                <constraint firstItem="ann-JZ-F4D" firstAttribute="centerY" secondItem="khS-aY-eIa" secondAttribute="centerY" id="I9r-yF-a6Y"/>
                                <constraint firstAttribute="bottom" secondItem="Tyv-H1-ya9" secondAttribute="bottom" id="qzC-kZ-wwV"/>
                                <constraint firstItem="Tyv-H1-ya9" firstAttribute="top" secondItem="khS-aY-eIa" secondAttribute="top" id="tgs-dl-FUc"/>
                                <constraint firstAttribute="height" constant="50" id="zZ9-UN-4pG"/>
                            </constraints>
                            <userDefinedRuntimeAttributes>
                                <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/>
                                <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB">
                                    <real key="value" value="25"/>
                                </userDefinedRuntimeAttribute>
                            </userDefinedRuntimeAttributes>
                        </view>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="yL2-ki-hg8">
                            <rect key="frame" x="0.0" y="74" width="313" height="24"/>
                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                            <constraints>
                                <constraint firstAttribute="height" constant="24" id="jup-bX-8BC"/>
                            </constraints>
                        </view>
                    </subviews>
                </stackView>
            </subviews>
            <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
            <constraints>
                <constraint firstItem="vri-pP-hU6" firstAttribute="top" secondItem="gqc-3H-F7Y" secondAttribute="bottom" constant="39" id="1bl-mL-MaS"/>
                <constraint firstItem="UlJ-UL-n5e" firstAttribute="leading" secondItem="gqc-3H-F7Y" secondAttribute="leading" id="21i-Ga-DSv"/>
                <constraint firstItem="gqc-3H-F7Y" firstAttribute="trailing" secondItem="H0l-HL-WQ6" secondAttribute="trailing" id="27v-LX-ziP"/>
                <constraint firstItem="ju4-6O-Lwi" firstAttribute="centerX" secondItem="fnl-2z-Ty3" secondAttribute="centerX" id="5vk-us-g5I"/>
                <constraint firstItem="H0l-HL-WQ6" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="40" id="6Ty-7f-3BQ"/>
@@ -193,14 +252,17 @@
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="H0l-HL-WQ6" secondAttribute="trailing" constant="40" id="IaL-rX-bcc"/>
                <constraint firstItem="AjG-PX-mug" firstAttribute="leading" secondItem="H0l-HL-WQ6" secondAttribute="leading" id="J9d-bS-7OG"/>
                <constraint firstItem="vri-pP-hU6" firstAttribute="centerX" secondItem="fnl-2z-Ty3" secondAttribute="centerX" id="Mmn-Zj-0z7"/>
                <constraint firstItem="UlJ-UL-n5e" firstAttribute="trailing" secondItem="gqc-3H-F7Y" secondAttribute="trailing" id="Wrw-aE-4gS"/>
                <constraint firstItem="ju4-6O-Lwi" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" constant="20" id="ZoS-rs-UOK"/>
                <constraint firstItem="AjG-PX-mug" firstAttribute="trailing" secondItem="H0l-HL-WQ6" secondAttribute="trailing" id="aeA-76-2dC"/>
                <constraint firstItem="H0l-HL-WQ6" firstAttribute="centerX" secondItem="fnl-2z-Ty3" secondAttribute="centerX" id="bow-BN-4vw"/>
                <constraint firstItem="vri-pP-hU6" firstAttribute="top" secondItem="UlJ-UL-n5e" secondAttribute="bottom" constant="20" id="dZS-ib-5qF"/>
                <constraint firstItem="AjG-PX-mug" firstAttribute="top" secondItem="H0l-HL-WQ6" secondAttribute="bottom" constant="20" id="ewl-qX-Y7E"/>
                <constraint firstItem="UlJ-UL-n5e" firstAttribute="top" secondItem="gqc-3H-F7Y" secondAttribute="bottom" id="mPi-3s-xNe"/>
                <constraint firstItem="gqc-3H-F7Y" firstAttribute="top" secondItem="AjG-PX-mug" secondAttribute="bottom" constant="24" id="mtp-Is-iBP"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="vri-pP-hU6" secondAttribute="trailing" constant="100" id="wnH-HW-tKv"/>
            </constraints>
            <point key="canvasLocation" x="140" y="21"/>
            <point key="canvasLocation" x="139.69465648854961" y="20.422535211267608"/>
        </view>
    </objects>
    <resources>