Commit 9bfb76fe authored by jzhang's avatar jzhang

增加权限弹窗

parent 7c18d702
......@@ -44,6 +44,10 @@
EA14360528E0BF1900FFBE72 /* DemoViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA14360428E0BF1900FFBE72 /* DemoViewController.swift */; };
EA14360828E0CA3100FFBE72 /* LanguageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA14360628E0CA3100FFBE72 /* LanguageCell.swift */; };
EA14360928E0CA3100FFBE72 /* LanguageCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = EA14360728E0CA3100FFBE72 /* LanguageCell.xib */; };
EAD8102728E207A4002A86C9 /* MyTools.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAD8102628E207A4002A86C9 /* MyTools.swift */; };
EAD8102928E207EF002A86C9 /* PermissionAlertView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAD8102828E207EF002A86C9 /* PermissionAlertView.swift */; };
EAD8102B28E207FA002A86C9 /* PermissionAlertView.xib in Resources */ = {isa = PBXBuildFile; fileRef = EAD8102A28E207FA002A86C9 /* PermissionAlertView.xib */; };
EAD8102D28E20A54002A86C9 /* PermissionAlertVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAD8102C28E20A54002A86C9 /* PermissionAlertVC.swift */; };
/* End PBXBuildFile section */
/* Begin PBXCopyFilesBuildPhase section */
......@@ -101,6 +105,10 @@
EA14360428E0BF1900FFBE72 /* DemoViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DemoViewController.swift; sourceTree = "<group>"; };
EA14360628E0CA3100FFBE72 /* LanguageCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LanguageCell.swift; sourceTree = "<group>"; };
EA14360728E0CA3100FFBE72 /* LanguageCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = LanguageCell.xib; sourceTree = "<group>"; };
EAD8102628E207A4002A86C9 /* MyTools.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyTools.swift; sourceTree = "<group>"; };
EAD8102828E207EF002A86C9 /* PermissionAlertView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PermissionAlertView.swift; sourceTree = "<group>"; };
EAD8102A28E207FA002A86C9 /* PermissionAlertView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = PermissionAlertView.xib; sourceTree = "<group>"; };
EAD8102C28E20A54002A86C9 /* PermissionAlertVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PermissionAlertVC.swift; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
......@@ -163,7 +171,11 @@
694B85BB2848EB4C009BEDE1 /* AppDelegate.swift */,
694B85BD2848EB4C009BEDE1 /* SceneDelegate.swift */,
694B85BF2848EB4C009BEDE1 /* ViewController.swift */,
EAD8102828E207EF002A86C9 /* PermissionAlertView.swift */,
EAD8102A28E207FA002A86C9 /* PermissionAlertView.xib */,
EA14360428E0BF1900FFBE72 /* DemoViewController.swift */,
EAD8102C28E20A54002A86C9 /* PermissionAlertVC.swift */,
EAD8102628E207A4002A86C9 /* MyTools.swift */,
697B07EC284F2E5C0051FC23 /* CompleteVC.swift */,
692EC419284C81700043E3EA /* ViewModel.swift */,
EA14360628E0CA3100FFBE72 /* LanguageCell.swift */,
......@@ -277,6 +289,7 @@
692EC421284C8D6F0043E3EA /* french.json in Resources */,
694B85C52848EB4E009BEDE1 /* Assets.xcassets in Resources */,
EA14360928E0CA3100FFBE72 /* LanguageCell.xib in Resources */,
EAD8102B28E207FA002A86C9 /* PermissionAlertView.xib in Resources */,
694B85C32848EB4C009BEDE1 /* Main.storyboard in Resources */,
692EC423284C8D6F0043E3EA /* spanish.json in Resources */,
692EC422284C8D6F0043E3EA /* english.json in Resources */,
......@@ -332,13 +345,16 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
EAD8102928E207EF002A86C9 /* PermissionAlertView.swift in Sources */,
694B85C02848EB4C009BEDE1 /* ViewController.swift in Sources */,
694B85BC2848EB4C009BEDE1 /* AppDelegate.swift in Sources */,
697B07ED284F2E5C0051FC23 /* CompleteVC.swift in Sources */,
EA14360528E0BF1900FFBE72 /* DemoViewController.swift in Sources */,
692EC41A284C81700043E3EA /* ViewModel.swift in Sources */,
EAD8102D28E20A54002A86C9 /* PermissionAlertVC.swift in Sources */,
EA14360828E0CA3100FFBE72 /* LanguageCell.swift in Sources */,
694B85BE2848EB4C009BEDE1 /* SceneDelegate.swift in Sources */,
EAD8102728E207A4002A86C9 /* MyTools.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
......
......@@ -342,11 +342,6 @@
<constraint firstItem="6Tk-OE-BBY" firstAttribute="trailing" secondItem="s7D-fE-2f9" secondAttribute="trailing" constant="16" id="qbc-Wx-uHX"/>
<constraint firstItem="wyh-ZZ-B5n" firstAttribute="top" secondItem="s7D-fE-2f9" secondAttribute="bottom" id="xDi-nb-7fV"/>
</constraints>
<variation key="default">
<mask key="subviews">
<exclude reference="22D-EX-aoe"/>
</mask>
</variation>
</view>
<navigationItem key="navigationItem" id="6kL-xH-Sf2"/>
<connections>
......@@ -670,243 +665,91 @@
</constraints>
</view>
<navigationItem key="navigationItem" id="wDZ-kz-uMC"/>
<connections>
<outlet property="stepL1" destination="w67-cF-HBg" id="1Ps-8K-q2p"/>
<outlet property="stepL2" destination="1CE-uj-Je4" id="f1c-6Q-xvS"/>
<outlet property="stepL3" destination="th8-qp-QwN" id="ZeU-9K-Dfe"/>
<outlet property="titleL" destination="InK-SG-EPm" id="3hR-Bi-u5L"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="Mk8-iF-L3D" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="-649.27536231884062" y="490.84821428571428"/>
</scene>
<!--View Controller-->
<scene sceneID="gf1-YS-oa9">
<!--Permission AlertVC-->
<scene sceneID="Ft5-en-uZP">
<objects>
<viewController id="8Ly-P2-Fxa" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="u0b-Fs-kcy">
<viewController storyboardIdentifier="PermissionAlertVC" id="mvH-dz-jzz" customClass="PermissionAlertVC" customModule="BreastFeedingDemo" customModuleProvider="target" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="3Vl-ge-dvl">
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="UWf-uE-xJe">
<rect key="frame" x="0.0" y="44" width="414" height="818"/>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Bhz-fY-gEC">
<rect key="frame" x="60" y="358" width="294" height="180.5"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Ush-Vd-EkG">
<rect key="frame" x="0.0" y="0.0" width="414" height="2436"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalCompressionResistancePriority="250" verticalCompressionResistancePriority="250" image="message-entry-fullbg" translatesAutoresizingMaskIntoConstraints="NO" id="bBb-Fj-iKI">
<rect key="frame" x="0.0" y="0.0" width="414" height="2436"/>
</imageView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" distribution="equalSpacing" spacing="8" translatesAutoresizingMaskIntoConstraints="NO" id="MNz-Oa-5fc">
<rect key="frame" x="0.0" y="0.0" width="414" height="900"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="WvM-Ym-SfR" userLabel="按钮区域">
<rect key="frame" x="0.0" y="0.0" width="414" height="40"/>
<subviews>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="TgS-uu-gjh">
<rect key="frame" x="358" y="0.0" width="40" height="40"/>
<constraints>
<constraint firstAttribute="height" constant="40" id="34t-Gy-sDc"/>
<constraint firstAttribute="width" constant="40" id="Z1D-YH-Gu5"/>
</constraints>
<color key="tintColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
<state key="normal" title="" backgroundImage="icon_global"/>
<connections>
<action selector="showPanel:" destination="BYZ-38-t0r" eventType="touchUpInside" id="boc-Wd-S4H"/>
</connections>
</button>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="height" constant="40" id="0ki-Hl-UJ5"/>
<constraint firstAttribute="trailing" secondItem="TgS-uu-gjh" secondAttribute="trailing" constant="16" id="9Vu-cb-vJV"/>
<constraint firstAttribute="bottom" secondItem="TgS-uu-gjh" secondAttribute="bottom" id="UyP-mo-ZRs"/>
<constraint firstItem="TgS-uu-gjh" firstAttribute="top" secondItem="WvM-Ym-SfR" secondAttribute="top" id="pVX-9W-xPa"/>
</constraints>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="AHz-Oc-Pwo" userLabel="中间内容">
<rect key="frame" x="0.0" y="48" width="414" height="520"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="aOd-HQ-wPi" userLabel="CenterIntroduceView">
<rect key="frame" x="19.5" y="0.0" width="375" height="520"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" image="swiper1big_new" translatesAutoresizingMaskIntoConstraints="NO" id="REv-PN-hMm">
<rect key="frame" x="0.0" y="0.0" width="375" height="520"/>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="LabelLabelLabelLabelLabelLabelLabelLabel" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="VEB-df-oHa">
<rect key="frame" x="49" y="120" width="118" height="47"/>
<constraints>
<constraint firstAttribute="width" constant="118" id="9iP-FY-Og5"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" systemColor="systemGrayColor"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="LabelLabelLabelLabelLabelLabelLabelLabelLabelLabelLabelLabelLabelLabelLabelLabelLabelLabel" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="SRc-Mn-0Ss">
<rect key="frame" x="153" y="310" width="222" height="47"/>
<constraints>
<constraint firstAttribute="width" constant="222" id="4iU-Pk-Tll"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" systemColor="systemGrayColor"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="LabelLabelLabelLabelLabelLabelLabelLabelLabelLabelLabelLabelLabelLabel" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="bbk-cr-ctl">
<rect key="frame" x="49" y="399" width="286" height="31.5"/>
<constraints>
<constraint firstAttribute="width" constant="286" id="2uX-xn-04A"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" systemColor="systemGrayColor"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Asistente de AI de postura de lactancia" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Ec2-N7-Oup">
<rect key="frame" x="16" y="16" width="343" height="48"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="20"/>
<color key="textColor" red="0.96192914249999995" green="0.52479732040000004" blue="0.52205568550000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="VEB-df-oHa" secondAttribute="trailing" constant="20" symbolic="YES" id="0px-2j-9Mz"/>
<constraint firstAttribute="height" constant="520" id="2i7-FJ-5J2"/>
<constraint firstAttribute="width" constant="375" id="JFK-hK-OAB"/>
<constraint firstItem="VEB-df-oHa" firstAttribute="leading" secondItem="aOd-HQ-wPi" secondAttribute="leading" constant="49" id="MZT-Ha-Dcw"/>
<constraint firstItem="SRc-Mn-0Ss" firstAttribute="top" secondItem="aOd-HQ-wPi" secondAttribute="top" constant="310" id="Mic-cW-Eeh"/>
<constraint firstItem="REv-PN-hMm" firstAttribute="leading" secondItem="aOd-HQ-wPi" secondAttribute="leading" id="OhE-eN-AVS"/>
<constraint firstItem="SRc-Mn-0Ss" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="aOd-HQ-wPi" secondAttribute="leading" constant="20" symbolic="YES" id="QgW-Om-THO"/>
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="bbk-cr-ctl" secondAttribute="trailing" constant="20" symbolic="YES" id="RpC-h3-RDg"/>
<constraint firstAttribute="trailing" secondItem="SRc-Mn-0Ss" secondAttribute="trailing" id="XxG-He-Ebx"/>
<constraint firstAttribute="trailing" secondItem="REv-PN-hMm" secondAttribute="trailing" id="biW-f4-fDc"/>
<constraint firstItem="bbk-cr-ctl" firstAttribute="leading" secondItem="aOd-HQ-wPi" secondAttribute="leading" constant="49" id="eGg-AF-1yq"/>
<constraint firstItem="Ec2-N7-Oup" firstAttribute="top" secondItem="aOd-HQ-wPi" secondAttribute="top" constant="16" id="iB3-fz-K81"/>
<constraint firstItem="bbk-cr-ctl" firstAttribute="top" secondItem="aOd-HQ-wPi" secondAttribute="top" constant="399" id="irz-CX-qfR"/>
<constraint firstAttribute="bottom" secondItem="REv-PN-hMm" secondAttribute="bottom" id="kAU-6b-LeU"/>
<constraint firstItem="Ec2-N7-Oup" firstAttribute="leading" secondItem="aOd-HQ-wPi" secondAttribute="leading" constant="16" id="o8w-bM-guQ"/>
<constraint firstItem="REv-PN-hMm" firstAttribute="top" secondItem="aOd-HQ-wPi" secondAttribute="top" id="vCM-1x-Ij5"/>
<constraint firstItem="VEB-df-oHa" firstAttribute="top" secondItem="aOd-HQ-wPi" secondAttribute="top" constant="120" id="z2T-OP-mnO"/>
<constraint firstAttribute="trailing" secondItem="Ec2-N7-Oup" secondAttribute="trailing" constant="16" id="zHz-vT-yw4"/>
</constraints>
</view>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="aOd-HQ-wPi" firstAttribute="top" secondItem="AHz-Oc-Pwo" secondAttribute="top" id="0BH-Mu-1si"/>
<constraint firstItem="aOd-HQ-wPi" firstAttribute="centerX" secondItem="AHz-Oc-Pwo" secondAttribute="centerX" id="1DR-kz-MDp"/>
<constraint firstAttribute="bottom" secondItem="aOd-HQ-wPi" secondAttribute="bottom" id="l8S-xK-74j"/>
</constraints>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="IQx-JZ-DgV">
<rect key="frame" x="0.0" y="576" width="414" height="324"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Please choose the breastfeeding position" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="JgU-eC-cAT">
<rect key="frame" x="0.0" y="0.0" width="414" height="24"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="20"/>
<color key="textColor" red="0.96192914249999995" green="0.52479732040000004" blue="0.52205568550000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Hi4-HQ-aZe">
<rect key="frame" x="16" y="40" width="382" height="236"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="x0s-hL-K3a">
<rect key="frame" x="0.0" y="0.0" width="382" height="194.5"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="home-gesture-2.7606109a" translatesAutoresizingMaskIntoConstraints="NO" id="z8J-Ah-gKw">
<rect key="frame" x="0.0" y="0.0" width="382" height="194.5"/>
</imageView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" distribution="equalSpacing" alignment="center" spacing="16" translatesAutoresizingMaskIntoConstraints="NO" id="JX6-lf-pKp">
<rect key="frame" x="0.0" y="112" width="382" height="66.5"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" tag="1000" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Gradle hold position" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Xnt-Vd-duG">
<rect key="frame" x="74.5" y="0.0" width="233.5" height="30"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="25"/>
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" tag="1001" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="----" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3ah-kQ-qJO">
<rect key="frame" x="176" y="46" width="30.5" height="20.5"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</stackView>
</subviews>
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
<constraints>
<constraint firstAttribute="trailing" secondItem="z8J-Ah-gKw" secondAttribute="trailing" id="0pf-bQ-Exb"/>
<constraint firstAttribute="trailing" secondItem="JX6-lf-pKp" secondAttribute="trailing" id="5T9-Kt-2X9"/>
<constraint firstAttribute="bottom" secondItem="JX6-lf-pKp" secondAttribute="bottom" constant="16" id="E3x-mq-DGI"/>
<constraint firstItem="z8J-Ah-gKw" firstAttribute="leading" secondItem="x0s-hL-K3a" secondAttribute="leading" id="S97-qT-B5s"/>
<constraint firstItem="JX6-lf-pKp" firstAttribute="leading" secondItem="x0s-hL-K3a" secondAttribute="leading" id="TVK-HI-tQG"/>
<constraint firstItem="z8J-Ah-gKw" firstAttribute="top" secondItem="x0s-hL-K3a" secondAttribute="top" id="aJf-PO-ACy"/>
<constraint firstAttribute="bottom" secondItem="z8J-Ah-gKw" secondAttribute="bottom" id="rGp-ou-vwc"/>
<constraint firstAttribute="width" secondItem="x0s-hL-K3a" secondAttribute="height" multiplier="691:352" id="z2L-KD-Hel"/>
</constraints>
</view>
</subviews>
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
<constraints>
<constraint firstAttribute="trailing" secondItem="x0s-hL-K3a" secondAttribute="trailing" id="Eia-uO-uDg"/>
<constraint firstItem="x0s-hL-K3a" firstAttribute="leading" secondItem="Hi4-HQ-aZe" secondAttribute="leading" id="ORQ-m4-knL"/>
<constraint firstItem="x0s-hL-K3a" firstAttribute="top" secondItem="Hi4-HQ-aZe" secondAttribute="top" id="efM-kH-qzT"/>
<constraint firstAttribute="height" constant="236" id="lcU-11-jFj"/>
</constraints>
</view>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="Hi4-HQ-aZe" firstAttribute="leading" secondItem="IQx-JZ-DgV" secondAttribute="leading" constant="16" id="1BF-3g-aIv"/>
<constraint firstAttribute="trailing" secondItem="JgU-eC-cAT" secondAttribute="trailing" id="8dS-tI-HYY"/>
<constraint firstItem="JgU-eC-cAT" firstAttribute="top" secondItem="IQx-JZ-DgV" secondAttribute="top" id="APt-A0-fLC"/>
<constraint firstItem="Hi4-HQ-aZe" firstAttribute="top" secondItem="JgU-eC-cAT" secondAttribute="bottom" constant="16" id="ZZh-DL-ru3"/>
<constraint firstAttribute="bottom" secondItem="Hi4-HQ-aZe" secondAttribute="bottom" constant="48" id="dDQ-NC-Wwx"/>
<constraint firstAttribute="trailing" secondItem="Hi4-HQ-aZe" secondAttribute="trailing" constant="16" id="vfP-hh-Ojn"/>
<constraint firstItem="JgU-eC-cAT" firstAttribute="leading" secondItem="IQx-JZ-DgV" secondAttribute="leading" id="yLq-jb-rLY"/>
</constraints>
</view>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="IQx-JZ-DgV" firstAttribute="width" secondItem="MNz-Oa-5fc" secondAttribute="width" id="GzE-Hg-fkA"/>
</constraints>
</stackView>
</subviews>
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="vfF-7d-Of5">
<rect key="frame" x="0.0" y="24" width="294" height="23"/>
<fontDescription key="fontDescription" type="system" weight="semibold" pointSize="19"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="PCu-xU-KfL">
<rect key="frame" x="16" y="71" width="262" height="21.5"/>
<fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="mE7-WR-gdb">
<rect key="frame" x="35" y="116.5" width="224" height="40"/>
<constraints>
<constraint firstItem="MNz-Oa-5fc" firstAttribute="top" secondItem="Ush-Vd-EkG" secondAttribute="top" id="6n8-TU-xvT"/>
<constraint firstItem="bBb-Fj-iKI" firstAttribute="top" secondItem="Ush-Vd-EkG" secondAttribute="top" id="H8g-ly-mBp"/>
<constraint firstAttribute="bottom" relation="greaterThanOrEqual" secondItem="MNz-Oa-5fc" secondAttribute="bottom" id="NJE-gy-7GT"/>
<constraint firstItem="bBb-Fj-iKI" firstAttribute="leading" secondItem="Ush-Vd-EkG" secondAttribute="leading" id="SiA-Eb-qMy"/>
<constraint firstItem="MNz-Oa-5fc" firstAttribute="leading" secondItem="Ush-Vd-EkG" secondAttribute="leading" id="bKb-tj-yqo"/>
<constraint firstAttribute="bottom" secondItem="bBb-Fj-iKI" secondAttribute="bottom" id="gqR-Qp-lrp"/>
<constraint firstAttribute="trailing" secondItem="MNz-Oa-5fc" secondAttribute="trailing" id="s2K-16-jqX"/>
<constraint firstAttribute="trailing" secondItem="bBb-Fj-iKI" secondAttribute="trailing" id="tvx-Rt-iTb"/>
<constraint firstAttribute="height" constant="40" id="u6U-cx-7L9"/>
<constraint firstAttribute="width" secondItem="mE7-WR-gdb" secondAttribute="height" multiplier="5.58974" id="uzb-7I-rfA"/>
</constraints>
</view>
<fontDescription key="fontDescription" type="system" weight="heavy" pointSize="15"/>
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
<state key="normal" title="Commencez maintenant" backgroundImage="light-btn-bg">
<color key="titleColor" red="0.9459709181" green="1" blue="0.97093926880000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</state>
<connections>
<action selector="dismissAction:" destination="mvH-dz-jzz" eventType="touchUpInside" id="Plb-oX-jv4"/>
<action selector="dismissPermissimPanel:" destination="BYZ-38-t0r" eventType="touchUpInside" id="Ulq-PR-L11"/>
<action selector="toSetting:" destination="BYZ-38-t0r" eventType="touchUpInside" id="vz3-FY-oGA"/>
</connections>
</button>
</subviews>
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
<constraints>
<constraint firstAttribute="trailing" secondItem="Ush-Vd-EkG" secondAttribute="trailing" id="3AE-Mg-HdA"/>
<constraint firstItem="Ush-Vd-EkG" firstAttribute="top" secondItem="UWf-uE-xJe" secondAttribute="top" id="Xfn-ya-6gu"/>
<constraint firstItem="Ush-Vd-EkG" firstAttribute="width" secondItem="UWf-uE-xJe" secondAttribute="width" id="fBw-YF-fLG"/>
<constraint firstAttribute="bottom" secondItem="Ush-Vd-EkG" secondAttribute="bottom" id="pvY-AD-VLk"/>
<constraint firstItem="Ush-Vd-EkG" firstAttribute="leading" secondItem="UWf-uE-xJe" secondAttribute="leading" id="zAN-PL-DsY"/>
<constraint firstItem="vfF-7d-Of5" firstAttribute="top" secondItem="Bhz-fY-gEC" secondAttribute="top" constant="24" id="6nb-ml-il6"/>
<constraint firstAttribute="bottom" secondItem="mE7-WR-gdb" secondAttribute="bottom" constant="24" id="Gzd-ck-ZSr"/>
<constraint firstItem="PCu-xU-KfL" firstAttribute="leading" secondItem="Bhz-fY-gEC" secondAttribute="leading" constant="16" id="Ioc-wi-rzs"/>
<constraint firstItem="mE7-WR-gdb" firstAttribute="top" secondItem="PCu-xU-KfL" secondAttribute="bottom" constant="24" id="KgU-8L-CHW"/>
<constraint firstItem="mE7-WR-gdb" firstAttribute="width" secondItem="mE7-WR-gdb" secondAttribute="height" multiplier="5.58974" id="Ucm-29-yOH"/>
<constraint firstItem="vfF-7d-Of5" firstAttribute="leading" secondItem="Bhz-fY-gEC" secondAttribute="leading" id="iTk-F1-7dg"/>
<constraint firstItem="PCu-xU-KfL" firstAttribute="top" secondItem="vfF-7d-Of5" secondAttribute="bottom" constant="24" id="trM-QF-b2n"/>
<constraint firstItem="mE7-WR-gdb" firstAttribute="centerX" secondItem="Bhz-fY-gEC" secondAttribute="centerX" id="tz0-o2-Tz9"/>
<constraint firstAttribute="trailing" secondItem="PCu-xU-KfL" secondAttribute="trailing" constant="16" id="wcd-Ay-1xf"/>
<constraint firstAttribute="trailing" secondItem="vfF-7d-Of5" secondAttribute="trailing" id="xo0-I1-3rp"/>
</constraints>
<viewLayoutGuide key="contentLayoutGuide" id="dYD-g7-428"/>
<viewLayoutGuide key="frameLayoutGuide" id="rCg-jv-hIg"/>
</scrollView>
</view>
</subviews>
<viewLayoutGuide key="safeArea" id="PaC-3G-bs7"/>
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
<viewLayoutGuide key="safeArea" id="AOF-IX-FUm"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="PaC-3G-bs7" firstAttribute="bottom" secondItem="UWf-uE-xJe" secondAttribute="bottom" id="Iv4-UP-V6e"/>
<constraint firstItem="PaC-3G-bs7" firstAttribute="trailing" secondItem="UWf-uE-xJe" secondAttribute="trailing" id="nVb-6K-tZg"/>
<constraint firstItem="UWf-uE-xJe" firstAttribute="leading" secondItem="PaC-3G-bs7" secondAttribute="leading" id="og0-8u-t1p"/>
<constraint firstItem="UWf-uE-xJe" firstAttribute="top" secondItem="PaC-3G-bs7" secondAttribute="top" id="zgN-ne-yeg"/>
<constraint firstItem="AOF-IX-FUm" firstAttribute="trailing" secondItem="Bhz-fY-gEC" secondAttribute="trailing" constant="60" id="5Bc-eC-Alg"/>
<constraint firstItem="Bhz-fY-gEC" firstAttribute="leading" secondItem="AOF-IX-FUm" secondAttribute="leading" constant="60" id="i52-4n-bV9"/>
<constraint firstItem="Bhz-fY-gEC" firstAttribute="centerY" secondItem="3Vl-ge-dvl" secondAttribute="centerY" id="qhM-AC-9Ca"/>
</constraints>
</view>
<navigationItem key="navigationItem" id="HE9-zy-YIk"/>
<connections>
<outlet property="permissionOKBtn" destination="mE7-WR-gdb" id="KlZ-s8-X8C"/>
<outlet property="permissionPanel" destination="Bhz-fY-gEC" id="9Qi-ur-4lX"/>
<outlet property="permissionText" destination="PCu-xU-KfL" id="Oee-sq-aq3"/>
<outlet property="permissionTitle" destination="vfF-7d-Of5" id="9IO-z3-guE"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="jvx-4C-w0t" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
<placeholder placeholderIdentifier="IBFirstResponder" id="90y-br-3NR" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="287" y="427"/>
<point key="canvasLocation" x="551" y="504"/>
</scene>
<!--CompleteVC-->
<scene sceneID="3Xf-aW-rpy">
......
......@@ -5,6 +5,8 @@
// Created by jzhang on 2022/9/26.
//
import AVFoundation
import Flutter
import Popover
import UIKit
import ZJTableViewManager
......@@ -13,12 +15,57 @@ class DemoViewController: UIViewController {
fileprivate var popover: Popover!
fileprivate var manager: ZJTableViewManager!
lazy var vm: ViewModel = .init()
@IBOutlet var titleL: UILabel!
@IBOutlet var stepL1: UILabel!
@IBOutlet var stepL2: UILabel!
@IBOutlet var stepL3: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
overrideUserInterfaceStyle = .light
UIApplication.shared.isIdleTimerDisabled = true
navigationController?.setNavigationBarHidden(true, animated: false)
updateUI()
}
fileprivate func updateUI() {
titleL.text = vm.landingPageTitle
stepL1.text = vm.landingPageStep1
stepL2.text = vm.landingPageStep2
stepL3.text = vm.landingPageStep3
}
/// 切换根据选择的语言更新UI
/// - Parameter language: 语言
fileprivate func updateUI(language: ViewModel.Language) {
vm.language = language
updateUI()
}
/// 提示权限问题
fileprivate func showPermissionChalenge() {
let sb = UIStoryboard(name: "Main", bundle: nil)
let vc = sb.instantiateViewController(withIdentifier: "PermissionAlertVC") as! PermissionAlertVC
vc.modalPresentationStyle = .overCurrentContext
vc.vm = vm
present(vc, animated: true)
}
/// 检查权限
/// - Returns: 是否有相机权限
fileprivate func checkCameraPermission() -> Bool? {
let cameraAuthorizationStatus = AVCaptureDevice.authorizationStatus(for: .video)
switch cameraAuthorizationStatus {
case .notDetermined:
return nil
case .authorized:
return true
default:
showPermissionChalenge()
return false
}
}
}
......@@ -43,8 +90,8 @@ extension DemoViewController {
currentItem = item
}
item.setSelectionHandler { [weak self] (callBackItem: LanguageCellItem) in
self?.vm.language = callBackItem.language
self?.popover.dismiss()
self?.updateUI(language: callBackItem.language)
}
}
currentItem?.select()
......@@ -53,28 +100,3 @@ extension DemoViewController {
popover.show(tableView, fromView: sender)
}
}
func hexStringToUIColor(hex: String) -> UIColor {
var cString: String = hex.trimmingCharacters(in: .whitespacesAndNewlines).uppercased()
if cString.hasPrefix("#") {
cString.remove(at: cString.startIndex)
}
if (cString.count) != 6 {
return UIColor.gray
}
var rgbValue: UInt64 = 0
Scanner(string: cString).scanHexInt64(&rgbValue)
return UIColor(
red: CGFloat((rgbValue & 0xFF0000) >> 16) / 255.0,
green: CGFloat((rgbValue & 0x00FF00) >> 8) / 255.0,
blue: CGFloat(rgbValue & 0x0000FF) / 255.0,
alpha: CGFloat(1.0)
)
}
let mainColor = hexStringToUIColor(hex: "F58685")
let blackColor = hexStringToUIColor(hex: "322D31")
//
// MyTools.swift
// BreastFeedingDemo
//
// Created by jzhang on 2022/9/27.
//
import Foundation
import UIKit
protocol XibLoadable: UIView {
static func xibLoad() -> Self
}
extension XibLoadable {
static func xibLoad() -> Self {
return Bundle.main.loadNibNamed("\(Self.self)", owner: nil, options: nil)?.first as! Self
}
}
func hexStringToUIColor(hex: String) -> UIColor {
var cString: String = hex.trimmingCharacters(in: .whitespacesAndNewlines).uppercased()
if cString.hasPrefix("#") {
cString.remove(at: cString.startIndex)
}
if (cString.count) != 6 {
return UIColor.gray
}
var rgbValue: UInt64 = 0
Scanner(string: cString).scanHexInt64(&rgbValue)
return UIColor(
red: CGFloat((rgbValue & 0xFF0000) >> 16) / 255.0,
green: CGFloat((rgbValue & 0x00FF00) >> 8) / 255.0,
blue: CGFloat(rgbValue & 0x0000FF) / 255.0,
alpha: CGFloat(1.0)
)
}
let mainColor = hexStringToUIColor(hex: "F58685")
let blackColor = hexStringToUIColor(hex: "322D31")
//
// PermissionAlertVC.swift
// BreastFeedingDemo
//
// Created by jzhang on 2022/9/27.
//
import UIKit
class PermissionAlertVC: UIViewController {
@IBOutlet var permissionPanel: UIView!
@IBOutlet var permissionTitle: UILabel!
@IBOutlet var permissionText: UILabel!
@IBOutlet var permissionOKBtn: UIButton!
var vm: ViewModel = .init()
override func viewDidLoad() {
super.viewDidLoad()
permissionText.text = vm.cameraText1
permissionTitle.text = vm.cameraText
permissionOKBtn.setTitle(vm.cameraButtonText, for: .normal)
permissionPanel.layer.cornerRadius = 8
permissionPanel.clipsToBounds = true
// Do any additional setup after loading the view.
}
@IBAction func dismissAction(_: Any) {
dismiss(animated: true)
}
/*
// MARK: - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// Get the new view controller using segue.destination.
// Pass the selected object to the new view controller.
}
*/
}
//
// PermissionAlertView.swift
// BreastFeedingDemo
//
// Created by jzhang on 2022/9/27.
//
import UIKit
class PermissionAlertView: UIView, XibLoadable {}
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="20037" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<device id="retina6_1" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="20020"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="System colors in document resources" minToolsVersion="11.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<view contentMode="scaleToFill" id="iN0-l3-epB" customClass="PermissionAlertView" customModule="BreastFeedingDemo" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="414" height="250"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<viewLayoutGuide key="safeArea" id="vUN-kp-3ea"/>
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
<point key="canvasLocation" x="131.8840579710145" y="308.03571428571428"/>
</view>
</objects>
<resources>
<systemColor name="systemBackgroundColor">
<color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</systemColor>
</resources>
</document>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment