liuzhenxing1118 1 жил өмнө
parent
commit
988c00bfaa
36 өөрчлөгдсөн 314 нэмэгдсэн , 209 устгасан
  1. 10 2
      artimenring-iOS/Artimenring/Base.lproj/Localizable.strings
  2. 78 0
      artimenring-iOS/Artimenring/Base.lproj/Main.storyboard
  3. 75 13
      artimenring-iOS/Artimenring/Base.lproj/View.xib
  4. 10 0
      artimenring-iOS/Artimenring/Classes/View/GuideCellView.h
  5. 28 0
      artimenring-iOS/Artimenring/Classes/View/GuideCellView.m
  6. 0 18
      artimenring-iOS/Artimenring/Classes/View/en.lproj/PGCustomBannerView.strings
  7. 0 9
      artimenring-iOS/Artimenring/Classes/View/en.lproj/PickerView.strings
  8. 0 18
      artimenring-iOS/Artimenring/Classes/View/zh-Hans.lproj/EBaseAnnotationView.strings
  9. 0 18
      artimenring-iOS/Artimenring/Classes/View/zh-Hans.lproj/PGCustomBannerView.strings
  10. 0 9
      artimenring-iOS/Artimenring/Classes/ViewController/Fence/en.lproj/FenceDetailHeaderView.strings
  11. 0 18
      artimenring-iOS/Artimenring/Classes/ViewController/Location/en.lproj/PGCustomBannerView.strings
  12. 37 39
      artimenring-iOS/Artimenring/Classes/ViewController/Login/LoginViewController+guide.m
  13. 5 0
      artimenring-iOS/Artimenring/Classes/ViewController/Login/LoginViewController.h
  14. 0 12
      artimenring-iOS/Artimenring/Classes/ViewController/Mine/en.lproj/MineHeaderView.strings
  15. 0 12
      artimenring-iOS/Artimenring/Classes/ViewController/Popup/en.lproj/AddActionView.strings
  16. 0 6
      artimenring-iOS/Artimenring/Classes/ViewController/Popup/en.lproj/HighTemperatureView.strings
  17. 0 21
      artimenring-iOS/Artimenring/Classes/ViewController/Popup/en.lproj/MagicReportView.strings
  18. 0 9
      artimenring-iOS/Artimenring/Classes/ViewController/Popup/en.lproj/WeatherWarnView.strings
  19. 2 2
      artimenring-iOS/Artimenring/Images.xcassets/Guide/guide_0.imageset/Contents.json
  20. BIN
      artimenring-iOS/Artimenring/Images.xcassets/Guide/guide_0.imageset/guide_0@2x.png
  21. BIN
      artimenring-iOS/Artimenring/Images.xcassets/Guide/guide_0.imageset/guide_0@3x.png
  22. BIN
      artimenring-iOS/Artimenring/Images.xcassets/Guide/guide_1.imageset/guide_1@2x.png
  23. BIN
      artimenring-iOS/Artimenring/Images.xcassets/Guide/guide_1.imageset/guide_1@3x.png
  24. BIN
      artimenring-iOS/Artimenring/Images.xcassets/Guide/guide_2.imageset/guide_2@2x.png
  25. BIN
      artimenring-iOS/Artimenring/Images.xcassets/Guide/guide_2.imageset/guide_2@3x.png
  26. 23 0
      artimenring-iOS/Artimenring/Images.xcassets/Guide/guide_dot_0.imageset/Contents.json
  27. BIN
      artimenring-iOS/Artimenring/Images.xcassets/Guide/guide_dot_0.imageset/guide_dot_0.png
  28. BIN
      artimenring-iOS/Artimenring/Images.xcassets/Guide/guide_dot_0.imageset/guide_dot_0@2x.png
  29. BIN
      artimenring-iOS/Artimenring/Images.xcassets/Guide/guide_dot_0.imageset/guide_dot_0@3x.png
  30. 23 0
      artimenring-iOS/Artimenring/Images.xcassets/Guide/guide_dot_1.imageset/Contents.json
  31. BIN
      artimenring-iOS/Artimenring/Images.xcassets/Guide/guide_dot_1.imageset/guide_dot_1.png
  32. BIN
      artimenring-iOS/Artimenring/Images.xcassets/Guide/guide_dot_1.imageset/guide_dot_1@2x.png
  33. BIN
      artimenring-iOS/Artimenring/Images.xcassets/Guide/guide_dot_1.imageset/guide_dot_1@3x.png
  34. 9 1
      artimenring-iOS/Artimenring/de.lproj/Localizable.strings
  35. 8 2
      artimenring-iOS/Artimenring/zh-Hans.lproj/Localizable.strings
  36. 6 0
      artimenring-iOS/VeryFit Kids.xcodeproj/project.pbxproj

+ 10 - 2
artimenring-iOS/Artimenring/Base.lproj/Localizable.strings

@@ -3,6 +3,7 @@
 "Choose" = "Choose";
 "Skip" = "Skip";
 "Is.Open.App" = "Do you need to open the link?";
+"Network.Error" = "Network error";
 
 "Input.Mobile.Number" = "Enter your phone number";
 "Input.Mobile.Number.Verify" = "Enter your phone number again";
@@ -35,7 +36,14 @@
 "Login.Third.Google" = "Google";
 "Login.Read.Agree.0" = "By signing up you agree to our ";
 "Login.Read.Agree.1" = "Privacy Policy and Terms and Conditions";
-"Network.Error" = "Network error";
+
+"Guide.Welcome.0" = "Welcome to use";
+"Guide.Welcome.1" = "VeryFit Kids";
+"Guide.Title.0" = "Voice Chat";
+"Guide.Content.0" = "Easy to follow, anytime, anywhere, voice talk";
+"Guide.Title.1" = "Precise localization";
+"Guide.Content.1" = "Safe and secure, all in your hands";
+"Guide.Button" = "I GOT IT";
 
 "No.Binding.Watch" = "No watch found";
 "Bind.Watch.Hint" = "Follow the binding process between Watch and APP";
@@ -178,7 +186,7 @@
 "Monitor.Member" = "Guardians";
 "Watch.Setting" = "Watch.Setting";
 
-"Social.Share.MSG" = "VeryFit Kidssmart watch, can locate, can call the watch!";
+"Social.Share.MSG" = "VeryFit Kids smart watch, can locate, can call the watch!";
 "About.US.Suggestion" = "Feedback";
 "Social.Share" = "Share Feedback";
 "Contact.US" = "Contact us";

+ 78 - 0
artimenring-iOS/Artimenring/Base.lproj/Main.storyboard

@@ -8395,16 +8395,89 @@
                                     <constraint firstItem="SrL-FD-jV5" firstAttribute="top" secondItem="wbd-7B-AwC" secondAttribute="top" constant="32" id="yqd-9N-gfg"/>
                                 </constraints>
                             </view>
+                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="RW0-i6-9cY">
+                                <rect key="frame" x="0.0" y="-25" width="375" height="843"/>
+                                <subviews>
+                                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="guide_bg" adjustsImageSizeForAccessibilityContentSizeCategory="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Kmb-5P-6HG">
+                                        <rect key="frame" x="0.0" y="0.0" width="375" height="843"/>
+                                        <accessibility key="accessibilityConfiguration">
+                                            <accessibilityTraits key="traits" image="YES" notEnabled="YES"/>
+                                        </accessibility>
+                                    </imageView>
+                                    <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="3" translatesAutoresizingMaskIntoConstraints="NO" id="C0p-Ll-JgT">
+                                        <rect key="frame" x="38" y="140" width="299" height="67.666666666666686"/>
+                                        <subviews>
+                                            <label opaque="NO" userInteractionEnabled="NO" tag="10" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Welcome to use" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ZdL-jh-0cN">
+                                                <rect key="frame" x="0.0" y="0.0" width="299" height="24"/>
+                                                <fontDescription key="fontDescription" type="system" weight="medium" pointSize="20"/>
+                                                <nil key="textColor"/>
+                                                <nil key="highlightedColor"/>
+                                            </label>
+                                            <label opaque="NO" userInteractionEnabled="NO" tag="11" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="VeryFit Kids" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Mmh-4j-UrC">
+                                                <rect key="frame" x="0.0" y="26.999999999999996" width="299" height="40.666666666666657"/>
+                                                <fontDescription key="fontDescription" type="system" weight="medium" pointSize="34"/>
+                                                <nil key="textColor"/>
+                                                <nil key="highlightedColor"/>
+                                            </label>
+                                        </subviews>
+                                    </stackView>
+                                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ofv-8q-Gvf">
+                                        <rect key="frame" x="0.0" y="227.66666666666666" width="375" height="469.33333333333337"/>
+                                        <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                    </view>
+                                    <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="fSl-WK-uAo">
+                                        <rect key="frame" x="70" y="717" width="235" height="46"/>
+                                        <color key="backgroundColor" red="0.074509803921568626" green="0.094117647058823528" blue="0.14509803921568626" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                        <constraints>
+                                            <constraint firstAttribute="height" constant="46" id="4V1-BY-MrZ"/>
+                                        </constraints>
+                                        <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/>
+                                        <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                        <state key="normal" title="Button">
+                                            <color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                        </state>
+                                        <userDefinedRuntimeAttributes>
+                                            <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
+                                                <integer key="value" value="23"/>
+                                            </userDefinedRuntimeAttribute>
+                                        </userDefinedRuntimeAttributes>
+                                        <connections>
+                                            <action selector="skipAction:" destination="BJf-cy-QW1" eventType="touchUpInside" id="9n9-6i-gEA"/>
+                                        </connections>
+                                    </button>
+                                </subviews>
+                                <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                <constraints>
+                                    <constraint firstAttribute="trailing" secondItem="C0p-Ll-JgT" secondAttribute="trailing" constant="38" id="24q-bh-trf"/>
+                                    <constraint firstAttribute="trailing" secondItem="Kmb-5P-6HG" secondAttribute="trailing" id="5R4-ua-h1w"/>
+                                    <constraint firstItem="Kmb-5P-6HG" firstAttribute="leading" secondItem="RW0-i6-9cY" secondAttribute="leading" id="7K9-XP-iWB"/>
+                                    <constraint firstItem="ofv-8q-Gvf" firstAttribute="leading" secondItem="RW0-i6-9cY" secondAttribute="leading" id="99t-TP-ch3"/>
+                                    <constraint firstItem="ofv-8q-Gvf" firstAttribute="top" secondItem="C0p-Ll-JgT" secondAttribute="bottom" constant="20" id="BSO-Pq-bMl"/>
+                                    <constraint firstAttribute="bottom" secondItem="Kmb-5P-6HG" secondAttribute="bottom" id="CEn-Ra-ioP"/>
+                                    <constraint firstAttribute="trailing" secondItem="ofv-8q-Gvf" secondAttribute="trailing" id="HqL-Gi-80b"/>
+                                    <constraint firstAttribute="bottom" secondItem="fSl-WK-uAo" secondAttribute="bottom" constant="80" id="KSl-OF-xSa"/>
+                                    <constraint firstItem="fSl-WK-uAo" firstAttribute="leading" secondItem="RW0-i6-9cY" secondAttribute="leading" constant="70" id="MPj-78-oD5"/>
+                                    <constraint firstItem="C0p-Ll-JgT" firstAttribute="leading" secondItem="RW0-i6-9cY" secondAttribute="leading" constant="38" id="MdX-qo-16L"/>
+                                    <constraint firstItem="C0p-Ll-JgT" firstAttribute="top" secondItem="RW0-i6-9cY" secondAttribute="top" constant="140" id="eIW-Jl-f2S"/>
+                                    <constraint firstAttribute="trailing" secondItem="fSl-WK-uAo" secondAttribute="trailing" constant="70" id="jSw-xP-0rJ"/>
+                                    <constraint firstItem="Kmb-5P-6HG" firstAttribute="top" secondItem="RW0-i6-9cY" secondAttribute="top" id="pDi-k0-im1"/>
+                                    <constraint firstItem="fSl-WK-uAo" firstAttribute="top" secondItem="ofv-8q-Gvf" secondAttribute="bottom" constant="20" id="vEv-dV-zH2"/>
+                                </constraints>
+                            </view>
                         </subviews>
                         <viewLayoutGuide key="safeArea" id="dW4-uC-CZs"/>
                         <color key="backgroundColor" red="0.97647058819999999" green="0.97647058819999999" blue="0.98823529409999999" alpha="1" colorSpace="calibratedRGB"/>
                         <constraints>
                             <constraint firstItem="wbd-7B-AwC" firstAttribute="leading" secondItem="dW4-uC-CZs" secondAttribute="leading" id="DrL-P0-J6c"/>
+                            <constraint firstItem="dW4-uC-CZs" firstAttribute="bottom" secondItem="RW0-i6-9cY" secondAttribute="bottom" constant="-40" id="Efx-8k-3OB"/>
                             <constraint firstItem="qhr-Ih-ZSG" firstAttribute="top" secondItem="dW4-uC-CZs" secondAttribute="top" constant="100" id="FK6-zg-ENY"/>
                             <constraint firstItem="dW4-uC-CZs" firstAttribute="trailing" secondItem="YTt-il-rG4" secondAttribute="trailing" constant="15" id="N3v-Tz-cDN"/>
+                            <constraint firstItem="RW0-i6-9cY" firstAttribute="top" secondItem="dW4-uC-CZs" secondAttribute="top" constant="-75" id="aS1-LN-KYi"/>
                             <constraint firstItem="YTt-il-rG4" firstAttribute="leading" secondItem="dW4-uC-CZs" secondAttribute="leading" constant="15" id="bq8-4h-dxa"/>
                             <constraint firstItem="qhr-Ih-ZSG" firstAttribute="centerX" secondItem="dW4-uC-CZs" secondAttribute="centerX" id="cBV-JW-QU2"/>
+                            <constraint firstItem="RW0-i6-9cY" firstAttribute="leading" secondItem="dW4-uC-CZs" secondAttribute="leading" id="cIy-R6-ow6"/>
                             <constraint firstItem="dW4-uC-CZs" firstAttribute="bottom" secondItem="wbd-7B-AwC" secondAttribute="bottom" id="fm8-ie-yZu"/>
+                            <constraint firstItem="dW4-uC-CZs" firstAttribute="trailing" secondItem="RW0-i6-9cY" secondAttribute="trailing" id="nEy-ph-mP2"/>
                             <constraint firstItem="dW4-uC-CZs" firstAttribute="trailing" secondItem="wbd-7B-AwC" secondAttribute="trailing" id="oH7-n3-6hs"/>
                             <constraint firstItem="YTt-il-rG4" firstAttribute="top" secondItem="qhr-Ih-ZSG" secondAttribute="bottom" constant="55" id="xUN-LB-wXY"/>
                         </constraints>
@@ -8414,7 +8487,11 @@
                         <outlet property="mEmailNumTextField" destination="X7f-JK-ZeY" id="l7j-Mw-bnB"/>
                         <outlet property="mFacebookBtn" destination="ivw-LX-IEd" id="QuX-gd-LYs"/>
                         <outlet property="mGoogleBtn" destination="OiV-Ld-Yt0" id="bP4-qd-6D6"/>
+                        <outlet property="mGuideItemView" destination="ofv-8q-Gvf" id="wxU-Yu-Lgc"/>
+                        <outlet property="mGuideSkipButton" destination="fSl-WK-uAo" id="i1J-eg-P1h"/>
+                        <outlet property="mGuideView" destination="RW0-i6-9cY" id="koW-nB-ZlB"/>
                         <outlet property="mPwdTextField" destination="5fb-l4-1N8" id="3TG-gz-12e"/>
+                        <outlet property="mTitleStackView" destination="C0p-Ll-JgT" id="LyP-Am-sxo"/>
                     </connections>
                 </viewController>
                 <placeholder placeholderIdentifier="IBFirstResponder" id="bbw-nC-8p6" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
@@ -9860,6 +9937,7 @@ If you still can't scan the code properly after inserting it correctly, please s
         <image name="doodle-off.png" width="36" height="36"/>
         <image name="fense_setting_btn" width="46" height="46"/>
         <image name="fense_setting_btn2" width="46" height="46"/>
+        <image name="guide_bg" width="375" height="812"/>
         <image name="ic_location_bg" width="40" height="40"/>
         <image name="ic_location_refresh" width="24" height="24"/>
         <image name="ic_location_strength_off" width="24" height="24"/>

+ 75 - 13
artimenring-iOS/Artimenring/Base.lproj/View.xib

@@ -166,7 +166,7 @@
                 <outlet property="mManagerWhiteView" destination="dW3-Vc-gMF" id="dsG-ak-GIR"/>
                 <outlet property="mNotManagerWhiteView" destination="xBn-cp-o81" id="rkG-mc-omU"/>
             </connections>
-            <point key="canvasLocation" x="-103" y="-48"/>
+            <point key="canvasLocation" x="-92" y="-55"/>
         </view>
         <view contentMode="scaleToFill" id="k8t-Ef-BIZ" customClass="PGCustomBannerView">
             <rect key="frame" x="0.0" y="0.0" width="325" height="133"/>
@@ -429,14 +429,14 @@
                 <outlet property="imageView" destination="Bai-M2-hEy" id="KDA-84-bVk"/>
                 <outlet property="label" destination="Q9L-wg-1Fh" id="OVk-jx-zqH"/>
             </connections>
-            <point key="canvasLocation" x="-74" y="-48"/>
+            <point key="canvasLocation" x="672" y="115"/>
         </view>
         <view contentMode="scaleToFill" id="cy0-Ra-xEO" customClass="ChangeChildView">
             <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
             <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
             <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.40000000000000002" colorSpace="calibratedRGB"/>
             <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
-            <point key="canvasLocation" x="-74" y="-48"/>
+            <point key="canvasLocation" x="-1116" y="-7"/>
         </view>
         <view contentMode="scaleToFill" id="XJP-qP-Prr" customClass="EBaseAnnotationView">
             <rect key="frame" x="0.0" y="0.0" width="90" height="110"/>
@@ -733,7 +733,7 @@
                 <outlet property="mSelectStatusView" destination="Z3s-d9-3s7" id="kw2-EB-xJ6"/>
                 <outlet property="mSelectView" destination="Pte-2t-xjW" id="aEd-sa-IFu"/>
             </connections>
-            <point key="canvasLocation" x="-78" y="-305"/>
+            <point key="canvasLocation" x="-618" y="237"/>
         </view>
         <view contentMode="scaleToFill" id="QkX-2f-f2Z" customClass="EBaseHeaderTitleView">
             <rect key="frame" x="0.0" y="0.0" width="375" height="34"/>
@@ -760,7 +760,7 @@
             <connections>
                 <outlet property="mTitleLabel" destination="hBv-G2-chw" id="3VU-lv-eQX"/>
             </connections>
-            <point key="canvasLocation" x="68" y="-229.38530734632684"/>
+            <point key="canvasLocation" x="705" y="262"/>
         </view>
         <view contentMode="scaleToFill" id="UUh-0L-12p" customClass="EBaseHeaderView">
             <rect key="frame" x="0.0" y="0.0" width="375" height="170"/>
@@ -814,7 +814,7 @@
                 <outlet property="mBaseWhiteView" destination="ZJd-Bf-F9U" id="yx4-70-tIM"/>
                 <outlet property="mButton" destination="qlx-6I-Gb5" id="qYI-IC-nEf"/>
             </connections>
-            <point key="canvasLocation" x="76" y="-169.11544227886057"/>
+            <point key="canvasLocation" x="-1270" y="-429"/>
         </view>
         <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" indentationWidth="10" rowHeight="78" id="6HC-Rg-QRx" customClass="EBaseTableViewCell">
             <rect key="frame" x="0.0" y="0.0" width="375" height="78"/>
@@ -944,7 +944,7 @@
                 <outlet property="mThirdTitleLabel" destination="Wnd-bA-ss4" id="jLt-P8-6o8"/>
                 <outlet property="mThirdView" destination="M7F-uA-DoA" id="Sfr-jE-zco"/>
             </connections>
-            <point key="canvasLocation" x="23.5" y="-112"/>
+            <point key="canvasLocation" x="-897" y="-591"/>
         </tableViewCell>
         <view contentMode="scaleToFill" id="uSe-da-DAJ" customClass="PickerView">
             <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
@@ -1049,7 +1049,7 @@
                 <outlet property="mDatePicker" destination="iA6-yD-xAu" id="Ech-bW-fI5"/>
                 <outlet property="mTitleLabel" destination="OTN-qW-CZB" id="dhW-wJ-RzG"/>
             </connections>
-            <point key="canvasLocation" x="39.200000000000003" y="46.326836581709152"/>
+            <point key="canvasLocation" x="-838" y="659"/>
         </view>
         <view contentMode="scaleToFill" id="DAj-zU-DvB" customClass="BabyDetailInfoHeaderView">
             <rect key="frame" x="0.0" y="0.0" width="375" height="115"/>
@@ -1100,7 +1100,7 @@
                 <outlet property="mHeadImage" destination="0CM-Tn-Mg3" id="4q8-cF-xs1"/>
                 <outlet property="mRelationLabel" destination="Bao-J9-1eP" id="1WP-0I-Adn"/>
             </connections>
-            <point key="canvasLocation" x="17.600000000000001" y="-184.40779610194903"/>
+            <point key="canvasLocation" x="-1791" y="-234"/>
         </view>
         <view contentMode="scaleToFill" id="rTW-P0-plz" customClass="FenceDetailHeaderView">
             <rect key="frame" x="0.0" y="0.0" width="375" height="320"/>
@@ -1174,7 +1174,7 @@
                 <outlet property="mDangerBtn" destination="uKz-Wd-zt4" id="Ejg-DI-9LX"/>
                 <outlet property="mSafeBtn" destination="WGD-Qf-HzG" id="sjs-a9-PcX"/>
             </connections>
-            <point key="canvasLocation" x="43.200000000000003" y="-264.91754122938534"/>
+            <point key="canvasLocation" x="-1804" y="64"/>
         </view>
         <view contentMode="scaleToFill" id="Ga9-id-5z3" customClass="HighTemperatureView">
             <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
@@ -1231,7 +1231,7 @@
                 <outlet property="mLabel" destination="va5-LK-Jat" id="AXo-vN-rax"/>
                 <outlet property="mView" destination="fv2-Yk-vXB" id="7u1-Ch-coU"/>
             </connections>
-            <point key="canvasLocation" x="132" y="-10"/>
+            <point key="canvasLocation" x="-17" y="652"/>
         </view>
         <view contentMode="scaleToFill" id="f2u-gF-f64" customClass="WeatherWarnView">
             <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
@@ -1324,7 +1324,7 @@
                 <outlet property="mWarnTypeImage" destination="5jK-71-cQ4" id="EKE-n5-qr0"/>
                 <outlet property="mWarnWhiteView" destination="ROA-fG-ucc" id="1Kv-W0-WOK"/>
             </connections>
-            <point key="canvasLocation" x="132" y="-10"/>
+            <point key="canvasLocation" x="706" y="652"/>
         </view>
         <view contentMode="scaleToFill" id="IrD-Vb-Iki" customClass="WatchHeaderReusableView">
             <rect key="frame" x="0.0" y="0.0" width="375" height="34"/>
@@ -1381,7 +1381,68 @@
                 <outlet property="mHeaderView" destination="dAq-AE-sQT" id="apJ-YF-6IX"/>
                 <outlet property="mWhiteView" destination="g55-wm-M3t" id="TRD-E0-zOU"/>
             </connections>
-            <point key="canvasLocation" x="12" y="-124.13793103448276"/>
+            <point key="canvasLocation" x="718" y="193"/>
+        </view>
+        <view contentMode="scaleToFill" id="hNV-aN-TZl" customClass="GuideCellView">
+            <rect key="frame" x="0.0" y="0.0" width="353" height="408"/>
+            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+            <subviews>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="iVv-Wy-n09">
+                    <rect key="frame" x="0.0" y="0.0" width="353" height="408"/>
+                    <subviews>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="guide_1" translatesAutoresizingMaskIntoConstraints="NO" id="JRe-Hi-cLP">
+                            <rect key="frame" x="46.5" y="30" width="260" height="260"/>
+                            <constraints>
+                                <constraint firstAttribute="width" constant="260" id="078-jg-EPj"/>
+                                <constraint firstAttribute="height" constant="260" id="hB3-dw-F12"/>
+                            </constraints>
+                        </imageView>
+                        <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="RqD-mg-98B">
+                            <rect key="frame" x="20" y="310" width="313" height="67.5"/>
+                            <subviews>
+                                <label opaque="NO" userInteractionEnabled="NO" tag="10" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Voice Chat" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="fjF-pM-vGE">
+                                    <rect key="frame" x="0.0" y="0.0" width="313" height="24"/>
+                                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="20"/>
+                                    <nil key="textColor"/>
+                                    <nil key="highlightedColor"/>
+                                </label>
+                                <label opaque="NO" userInteractionEnabled="NO" tag="11" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Easy to follow, anytime, anywhere, voice talk" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Bni-8I-Hvl">
+                                    <rect key="frame" x="0.0" y="29" width="313" height="38.5"/>
+                                    <fontDescription key="fontDescription" type="system" pointSize="16"/>
+                                    <nil key="textColor"/>
+                                    <nil key="highlightedColor"/>
+                                </label>
+                            </subviews>
+                        </stackView>
+                    </subviews>
+                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                    <constraints>
+                        <constraint firstAttribute="trailing" secondItem="RqD-mg-98B" secondAttribute="trailing" constant="20" id="9Ut-y6-GDy"/>
+                        <constraint firstItem="JRe-Hi-cLP" firstAttribute="centerX" secondItem="iVv-Wy-n09" secondAttribute="centerX" id="IZS-FR-bQY"/>
+                        <constraint firstItem="RqD-mg-98B" firstAttribute="top" secondItem="JRe-Hi-cLP" secondAttribute="bottom" constant="20" id="Trw-Ey-H3F"/>
+                        <constraint firstItem="JRe-Hi-cLP" firstAttribute="top" secondItem="iVv-Wy-n09" secondAttribute="top" constant="30" id="ctf-0g-On0"/>
+                        <constraint firstItem="RqD-mg-98B" firstAttribute="leading" secondItem="iVv-Wy-n09" secondAttribute="leading" constant="20" id="fBb-UX-dd7"/>
+                    </constraints>
+                </view>
+            </subviews>
+            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+            <constraints>
+                <constraint firstAttribute="trailing" secondItem="iVv-Wy-n09" secondAttribute="trailing" id="V4B-qv-dEh"/>
+                <constraint firstAttribute="bottom" secondItem="iVv-Wy-n09" secondAttribute="bottom" id="bum-WK-mTs"/>
+                <constraint firstItem="iVv-Wy-n09" firstAttribute="leading" secondItem="hNV-aN-TZl" secondAttribute="leading" id="tug-KT-MUr"/>
+                <constraint firstItem="iVv-Wy-n09" firstAttribute="top" secondItem="hNV-aN-TZl" secondAttribute="top" id="y1n-zc-ZEA"/>
+            </constraints>
+            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+            <userDefinedRuntimeAttributes>
+                <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
+                    <integer key="value" value="10"/>
+                </userDefinedRuntimeAttribute>
+            </userDefinedRuntimeAttributes>
+            <connections>
+                <outlet property="imageView" destination="JRe-Hi-cLP" id="vER-U4-mLs"/>
+                <outlet property="mItemStackView" destination="RqD-mg-98B" id="0zq-gb-OeS"/>
+            </connections>
+            <point key="canvasLocation" x="673" y="-141"/>
         </view>
     </objects>
     <resources>
@@ -1394,6 +1455,7 @@
         <image name="fence_icon_safe_sel" width="120" height="160"/>
         <image name="fence_point" width="10" height="10"/>
         <image name="fence_point_red" width="10" height="10"/>
+        <image name="guide_1" width="260" height="260"/>
         <image name="hot warning" width="270" height="110"/>
         <image name="ic_location_call" width="20" height="20"/>
         <image name="ic_location_message" width="20" height="20"/>

+ 10 - 0
artimenring-iOS/Artimenring/Classes/View/GuideCellView.h

@@ -0,0 +1,10 @@
+#import <UIKit/UIKit.h>
+
+@interface GuideCellView : UICollectionViewCell
+
+@property(nonatomic, strong) IBOutlet UIImageView* imageView;
+@property(nonatomic, strong) IBOutlet UIStackView * mItemStackView;
+
+- (void)setDatas:(NSInteger)index;
+
+@end

+ 28 - 0
artimenring-iOS/Artimenring/Classes/View/GuideCellView.m

@@ -0,0 +1,28 @@
+#import "GuideCellView.h"
+
+@implementation GuideCellView
+
+- (instancetype)initWithFrame:(CGRect)frame {
+    if (self = [super initWithFrame:frame]) {
+        GuideCellView *v = [EUtil getBundleView:@"GuideCellView"];
+        [v setFrame:self.bounds];
+        return v;
+    }
+    return self;
+}
+
+- (void)setDatas:(NSInteger)index {
+    NSString* imageName = [NSString stringWithFormat:@"%@%ld", @"guide_", (long)index];
+    [self.imageView setImage:[UIImage imageNamed:imageName]];
+    
+    UILabel* titleLabel = [self.mItemStackView viewWithTag:10];
+    UILabel* contentLabel = [self.mItemStackView viewWithTag:11];
+    
+    NSString* titleKey = [NSString stringWithFormat:@"%@%ld", @"Guide.Title.", (long)index];
+    [titleLabel setText:NSLocalizedString(titleKey, nil)];
+    
+    NSString* contentKey = [NSString stringWithFormat:@"%@%ld", @"Guide.Content.", (long)index];
+    [contentLabel setText:NSLocalizedString(contentKey, nil)];
+}
+
+@end

+ 0 - 18
artimenring-iOS/Artimenring/Classes/View/en.lproj/PGCustomBannerView.strings

@@ -1,18 +0,0 @@
-
-/* Class = "UILabel"; text = "Label"; ObjectID = "2hN-Uf-MuU"; */
-"2hN-Uf-MuU.text" = "Label";
-
-/* Class = "UIButton"; normalTitle = "拨号"; ObjectID = "IMh-di-YXu"; */
-"IMh-di-YXu.normalTitle" = "拨号";
-
-/* Class = "UIButton"; normalTitle = "监听"; ObjectID = "R7q-SG-IY6"; */
-"R7q-SG-IY6.normalTitle" = "监听";
-
-/* Class = "UIButton"; normalTitle = "重新绑定"; ObjectID = "bxb-cw-pBo"; */
-"bxb-cw-pBo.normalTitle" = "Re-binding";
-
-/* Class = "UIButton"; normalTitle = "导航"; ObjectID = "uwx-9r-ska"; */
-"uwx-9r-ska.normalTitle" = "导航";
-
-/* Class = "UIButton"; normalTitle = "发消息"; ObjectID = "yOR-Bl-ckQ"; */
-"yOR-Bl-ckQ.normalTitle" = "Message";

+ 0 - 9
artimenring-iOS/Artimenring/Classes/View/en.lproj/PickerView.strings

@@ -1,9 +0,0 @@
-
-/* Class = "UIButton"; normalTitle = "完成"; ObjectID = "3zl-En-u3j"; */
-"3zl-En-u3j.normalTitle" = "Save";
-
-/* Class = "UILabel"; text = "标题"; ObjectID = "6Ru-qL-d16"; */
-"6Ru-qL-d16.text" = "Title";
-
-/* Class = "UIButton"; normalTitle = "取消"; ObjectID = "dEC-2M-iwL"; */
-"dEC-2M-iwL.normalTitle" = "Cancel";

+ 0 - 18
artimenring-iOS/Artimenring/Classes/View/zh-Hans.lproj/EBaseAnnotationView.strings

@@ -1,18 +0,0 @@
-
-/* Class = "UILabel"; text = "手表运动中"; ObjectID = "0DO-eb-EG3"; */
-"0DO-eb-EG3.text" = "手表运动中";
-
-/* Class = "UILabel"; text = "安全"; ObjectID = "12N-yi-dRy"; */
-"12N-yi-dRy.text" = "安全";
-
-/* Class = "UILabel"; text = "手表静止中"; ObjectID = "1Dz-Q3-x2I"; */
-"1Dz-Q3-x2I.text" = "手表静止中";
-
-/* Class = "UILabel"; text = "手表静止中"; ObjectID = "1wl-gg-AUH"; */
-"1wl-gg-AUH.text" = "手表静止中";
-
-/* Class = "UILabel"; text = "危险"; ObjectID = "fFI-dn-2bM"; */
-"fFI-dn-2bM.text" = "危险";
-
-/* Class = "UILabel"; text = "手表运动中"; ObjectID = "yrn-22-6fw"; */
-"yrn-22-6fw.text" = "手表运动中";

+ 0 - 18
artimenring-iOS/Artimenring/Classes/View/zh-Hans.lproj/PGCustomBannerView.strings

@@ -1,18 +0,0 @@
-
-/* Class = "UILabel"; text = "Label"; ObjectID = "2hN-Uf-MuU"; */
-"2hN-Uf-MuU.text" = "Label";
-
-/* Class = "UIButton"; normalTitle = "拨号"; ObjectID = "IMh-di-YXu"; */
-"IMh-di-YXu.normalTitle" = "拨号";
-
-/* Class = "UIButton"; normalTitle = "监听"; ObjectID = "R7q-SG-IY6"; */
-"R7q-SG-IY6.normalTitle" = "监听";
-
-/* Class = "UIButton"; normalTitle = "重新绑定"; ObjectID = "bxb-cw-pBo"; */
-"bxb-cw-pBo.normalTitle" = "重新绑定";
-
-/* Class = "UIButton"; normalTitle = "导航"; ObjectID = "uwx-9r-ska"; */
-"uwx-9r-ska.normalTitle" = "导航";
-
-/* Class = "UIButton"; normalTitle = "发消息"; ObjectID = "yOR-Bl-ckQ"; */
-"yOR-Bl-ckQ.normalTitle" = "发消息";

+ 0 - 9
artimenring-iOS/Artimenring/Classes/ViewController/Fence/en.lproj/FenceDetailHeaderView.strings

@@ -1,9 +0,0 @@
-
-/* Class = "UILabel"; text = "危险区域"; ObjectID = "Kch-K5-esV"; */
-"Kch-K5-esV.text" = "Dangerous Area";
-
-/* Class = "UILabel"; text = "安全区域"; ObjectID = "Udo-he-FiT"; */
-"Udo-he-FiT.text" = "Safe Area";
-
-/* Class = "UILabel"; text = "选择围栏类型"; ObjectID = "uXx-ck-dV3"; */
-"uXx-ck-dV3.text" = "Select Fence Type";

+ 0 - 18
artimenring-iOS/Artimenring/Classes/ViewController/Location/en.lproj/PGCustomBannerView.strings

@@ -1,18 +0,0 @@
-
-/* Class = "UILabel"; text = "Label"; ObjectID = "2hN-Uf-MuU"; */
-"2hN-Uf-MuU.text" = "Label";
-
-/* Class = "UIButton"; normalTitle = "拨号"; ObjectID = "IMh-di-YXu"; */
-"IMh-di-YXu.normalTitle" = "拨号";
-
-/* Class = "UIButton"; normalTitle = "监听"; ObjectID = "R7q-SG-IY6"; */
-"R7q-SG-IY6.normalTitle" = "监听";
-
-/* Class = "UIButton"; normalTitle = "重新绑定"; ObjectID = "bxb-cw-pBo"; */
-"bxb-cw-pBo.normalTitle" = "Re-binding";
-
-/* Class = "UIButton"; normalTitle = "导航"; ObjectID = "uwx-9r-ska"; */
-"uwx-9r-ska.normalTitle" = "导航";
-
-/* Class = "UIButton"; normalTitle = "发消息"; ObjectID = "yOR-Bl-ckQ"; */
-"yOR-Bl-ckQ.normalTitle" = "Message";

+ 37 - 39
artimenring-iOS/Artimenring/Classes/ViewController/Login/LoginViewController+guide.m

@@ -7,9 +7,10 @@
 //
 
 #import "LoginViewController+guide.h"
-#import "MYBlurIntroductionView.h"
+#import "SDCycleScrollView.h"
+#import "GuideCellView.h"
 
-@interface LoginViewController()<MYIntroductionDelegate>
+@interface LoginViewController()<SDCycleScrollViewDelegate>
 
 @end
 
@@ -18,52 +19,49 @@
 - (void)createGuideView {
     if([EUtil getShowGuideKey] != nil)
         return;
-    [self createGuideViewEx];
+    [self initGuideTitle];
+    [self initGuideItem];
 }
 
-- (void)createGuideViewEx {
-    [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
+- (void)initGuideTitle {
+    UILabel* titleLabel = [self.mTitleStackView viewWithTag:10];
+    UILabel* contentLabel = [self.mTitleStackView viewWithTag:11];
     
-    UIScreen *screen = [UIScreen mainScreen];
-    MYIntroductionPanel *panel1 = [[MYIntroductionPanel alloc] initWithFrame:CGRectMake(0, 0, screen.bounds.size.width, screen.bounds.size.height) title:nil description:@"" image:[UIImage imageNamed:@"guide1.png"]];
+    [titleLabel setText:NSLocalizedString(@"Guide.Welcome.0", nil)];
+    [contentLabel setText:NSLocalizedString(@"Guide.Welcome.1", nil)];
     
-    MYIntroductionPanel *panel2 = [[MYIntroductionPanel alloc] initWithFrame:CGRectMake(0, 0, screen.bounds.size.width, screen.bounds.size.height) title:nil description:@"" image:[UIImage imageNamed:@"guide2.png"]];
-    
-    MYIntroductionPanel *panel3 = [[MYIntroductionPanel alloc] initWithFrame:CGRectMake(0, 0, screen.bounds.size.width, screen.bounds.size.height) title:nil description:@"" image:[UIImage imageNamed:@"guide3.png"]];
-    
-    NSArray *panels = @[panel1, panel2, panel3];
-    
-    //Create the introduction view and set its delegate
-    MYBlurIntroductionView *introductionView = [[MYBlurIntroductionView alloc] initWithFrame:CGRectMake(0, 0, screen.bounds.size.width, screen.bounds.size.height)];
-    introductionView.delegate = self;
-    //introductionView.BackgroundImageView.image = [UIImage imageNamed:@"Toronto, ON.jpg"];
-    [introductionView setBackgroundColor:[UIColor whiteColor]];
-    //introductionView.LanguageDirection = MYLanguageDirectionRightToLeft;
-    
-    //Build the introduction with desired panels
-    [introductionView buildIntroductionWithPanels:panels];
-    
-    [introductionView.PageControl setHidden:YES];
-    
-    //Add the introduction to your view
-    [self.view addSubview:introductionView];
+    [self.mGuideSkipButton setTitle:NSLocalizedString(@"Guide.Button", nil) forState:UIControlStateNormal];
+    [self.mGuideSkipButton setTitle:NSLocalizedString(@"Guide.Button", nil) forState:UIControlStateSelected];
 }
 
-#pragma mark - MYIntroduction Delegate
-- (void)introduction:(MYBlurIntroductionView *)introductionView didChangeToPanel:(MYIntroductionPanel *)panel withIndex:(NSInteger)panelIndex{
-    NSLog(@"Introduction did change to panel %ld", (long)panelIndex);
-    
-    //You can edit introduction view properties right from the delegate method!
-    //If it is the first panel, change the color to green!
-    //if (panelIndex == 0)
-    {
-        [introductionView setBackgroundColor:[UIColor whiteColor]];
-    }
+- (void)initGuideItem {
+    SDCycleScrollView* view = [SDCycleScrollView cycleScrollViewWithFrame:CGRectMake(0, 0, self.mGuideItemView.frame.size.width, self.mGuideItemView.frame.size.height) delegate:self placeholderImage:nil];
+    [view setBackgroundColor:[UIColor clearColor]];
+    view.autoScroll = NO;
+    view.infiniteLoop = NO;
+    view.currentPageDotImage = [UIImage imageNamed:@"guide_dot_1"];
+    view.pageDotImage = [UIImage imageNamed:@"guide_dot_0"];
+    view.imageURLStringsGroup = @[@"", @""];
+    [self.mGuideItemView addSubview:view];
+}
+
+- (Class)customCollectionViewCellClassForCycleScrollView:(SDCycleScrollView *)view {
+    return [GuideCellView class];
+}
+
+- (void)setupCustomCell:(UICollectionViewCell *)cell forIndex:(NSInteger)index cycleScrollView:(SDCycleScrollView *)view {
+    GuideCellView *myCell = (GuideCellView *)cell;
+    [myCell setDatas:index];
+}
+
+/** 图片滚动回调 */
+- (void)cycleScrollView:(SDCycleScrollView *)cycleScrollView didScrollToIndex:(NSInteger)index {
+    [self.mGuideSkipButton setHidden:index == 0];
 }
 
-- (void)introduction:(MYBlurIntroductionView *)introductionView didFinishWithType:(MYFinishType)finishType {
-    NSLog(@"Introduction did finish");
+- (IBAction)skipAction:(id)sender {
     [EUtil setHasShownGuideKey];
+    [self.mGuideView setHidden:YES];
     [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationSlide];
 }
 

+ 5 - 0
artimenring-iOS/Artimenring/Classes/ViewController/Login/LoginViewController.h

@@ -19,6 +19,11 @@ NS_ASSUME_NONNULL_BEGIN
 @property(nonatomic, strong) IBOutlet UIButton* mFacebookBtn;
 @property(nonatomic, strong) IBOutlet GIDSignInButton* mGoogleBtn;
 
+@property(nonatomic, strong) IBOutlet UIView* mGuideView;
+@property(nonatomic, strong) IBOutlet UIView* mGuideItemView;
+@property(nonatomic, strong) IBOutlet UIButton* mGuideSkipButton;
+@property(nonatomic, strong) IBOutlet UIStackView * mTitleStackView;
+
 @end
 
 NS_ASSUME_NONNULL_END

+ 0 - 12
artimenring-iOS/Artimenring/Classes/ViewController/Mine/en.lproj/MineHeaderView.strings

@@ -1,12 +0,0 @@
-
-/* Class = "UILabel"; text = "未知"; ObjectID = "OsD-dS-n3f"; */
-"OsD-dS-n3f.text" = "未知";
-
-/* Class = "UILabel"; text = "当前手表宝贝:甜甜"; ObjectID = "bXS-eX-dS7"; */
-"bXS-eX-dS7.text" = "当前手表宝贝:甜甜";
-
-/* Class = "UILabel"; text = "还没有数据哦"; ObjectID = "ohR-wF-Ao7"; */
-"ohR-wF-Ao7.text" = "No datas";
-
-/* Class = "UIButton"; normalTitle = "管理员"; ObjectID = "vBF-1u-JgF"; */
-"vBF-1u-JgF.normalTitle" = "Admin";

+ 0 - 12
artimenring-iOS/Artimenring/Classes/ViewController/Popup/en.lproj/AddActionView.strings

@@ -1,12 +0,0 @@
-
-/* Class = "UILabel"; text = "添加好友"; ObjectID = "Pmv-zE-V3i"; */
-"Pmv-zE-V3i.text" = "Add Friend";
-
-/* Class = "UILabel"; text = "添加新手表"; ObjectID = "haV-3Z-6nk"; */
-"haV-3Z-6nk.text" = "Add New Watch";
-
-/* Class = "UILabel"; text = "添加新手表"; ObjectID = "nDX-Zc-GK1"; */
-"nDX-Zc-GK1.text" = "Add New Watch";
-
-/* Class = "UILabel"; text = "添加家人"; ObjectID = "ncH-uH-2Xl"; */
-"ncH-uH-2Xl.text" = "Add Family Member";

+ 0 - 6
artimenring-iOS/Artimenring/Classes/ViewController/Popup/en.lproj/HighTemperatureView.strings

@@ -1,6 +0,0 @@
-
-/* Class = "UIButton"; normalTitle = "我知道了"; ObjectID = "c27-Pz-pB7"; */
-"c27-Pz-pB7.normalTitle" = "OK";
-
-/* Class = "UILabel"; text = "宝贝的手表即将温度过高,请休息一下再使用哦"; ObjectID = "egg-Ts-TB2"; */
-"egg-Ts-TB2.text" = "Baby's watch will be overheated soon. Please take a rest and use it again.";

+ 0 - 21
artimenring-iOS/Artimenring/Classes/ViewController/Popup/en.lproj/MagicReportView.strings

@@ -1,21 +0,0 @@
-
-/* Class = "UILabel"; text = "正确题目:"; ObjectID = "6E5-L1-qmi"; */
-"6E5-L1-qmi.text" = "Right:";
-
-/* Class = "UILabel"; text = "5"; ObjectID = "YIA-Eq-6y9"; */
-"YIA-Eq-6y9.text" = "5";
-
-/* Class = "UILabel"; text = "完成题目:"; ObjectID = "aiS-Au-lXK"; */
-"aiS-Au-lXK.text" = "Complete:";
-
-/* Class = "UIButton"; normalTitle = "我知道了"; ObjectID = "c27-Pz-pB7"; */
-"c27-Pz-pB7.normalTitle" = "OK";
-
-/* Class = "UITextView"; text = "宝贝1在魔法学院完成了数学几何空间的挑战。"; ObjectID = "cow-7R-x0q"; */
-"cow-7R-x0q.text" = "";
-
-/* Class = "UILabel"; text = "学习报告"; ObjectID = "jXL-hS-AgZ"; */
-"jXL-hS-AgZ.text" = "Study Report";
-
-/* Class = "UILabel"; text = "10"; ObjectID = "r69-0f-oAa"; */
-"r69-0f-oAa.text" = "";

+ 0 - 9
artimenring-iOS/Artimenring/Classes/ViewController/Popup/en.lproj/WeatherWarnView.strings

@@ -1,9 +0,0 @@
-
-/* Class = "UIButton"; normalTitle = "查看详情"; ObjectID = "IWd-JW-bY2"; */
-"IWd-JW-bY2.normalTitle" = "Detail";
-
-/* Class = "UILabel"; text = "高温预警"; ObjectID = "s0j-eu-K9a"; */
-"s0j-eu-K9a.text" = "";
-
-/* Class = "UILabel"; text = "上海市气象台发布高温蓝色预警"; ObjectID = "ure-Nm-Jkw"; */
-"ure-Nm-Jkw.text" = "";

+ 2 - 2
artimenring-iOS/Artimenring/Images.xcassets/Guide/guide_2.imageset/Contents.json → artimenring-iOS/Artimenring/Images.xcassets/Guide/guide_0.imageset/Contents.json

@@ -5,12 +5,12 @@
       "scale" : "1x"
     },
     {
-      "filename" : "guide_2@2x.png",
+      "filename" : "guide_0@2x.png",
       "idiom" : "universal",
       "scale" : "2x"
     },
     {
-      "filename" : "guide_2@3x.png",
+      "filename" : "guide_0@3x.png",
       "idiom" : "universal",
       "scale" : "3x"
     }

BIN
artimenring-iOS/Artimenring/Images.xcassets/Guide/guide_0.imageset/guide_0@2x.png


BIN
artimenring-iOS/Artimenring/Images.xcassets/Guide/guide_0.imageset/guide_0@3x.png


BIN
artimenring-iOS/Artimenring/Images.xcassets/Guide/guide_1.imageset/guide_1@2x.png


BIN
artimenring-iOS/Artimenring/Images.xcassets/Guide/guide_1.imageset/guide_1@3x.png


BIN
artimenring-iOS/Artimenring/Images.xcassets/Guide/guide_2.imageset/guide_2@2x.png


BIN
artimenring-iOS/Artimenring/Images.xcassets/Guide/guide_2.imageset/guide_2@3x.png


+ 23 - 0
artimenring-iOS/Artimenring/Images.xcassets/Guide/guide_dot_0.imageset/Contents.json

@@ -0,0 +1,23 @@
+{
+  "images" : [
+    {
+      "filename" : "guide_dot_0.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "guide_dot_0@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "guide_dot_0@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
artimenring-iOS/Artimenring/Images.xcassets/Guide/guide_dot_0.imageset/guide_dot_0.png


BIN
artimenring-iOS/Artimenring/Images.xcassets/Guide/guide_dot_0.imageset/guide_dot_0@2x.png


BIN
artimenring-iOS/Artimenring/Images.xcassets/Guide/guide_dot_0.imageset/guide_dot_0@3x.png


+ 23 - 0
artimenring-iOS/Artimenring/Images.xcassets/Guide/guide_dot_1.imageset/Contents.json

@@ -0,0 +1,23 @@
+{
+  "images" : [
+    {
+      "filename" : "guide_dot_1.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "guide_dot_1@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "guide_dot_1@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
artimenring-iOS/Artimenring/Images.xcassets/Guide/guide_dot_1.imageset/guide_dot_1.png


BIN
artimenring-iOS/Artimenring/Images.xcassets/Guide/guide_dot_1.imageset/guide_dot_1@2x.png


BIN
artimenring-iOS/Artimenring/Images.xcassets/Guide/guide_dot_1.imageset/guide_dot_1@3x.png


+ 9 - 1
artimenring-iOS/Artimenring/de.lproj/Localizable.strings

@@ -3,6 +3,7 @@
 "Choose" = "Choose";
 "Skip" = "Überspringen";
 "Is.Open.App" = "Müssen Sie den Link öffnen?";
+"Network.Error" = "Netzwerkfehler";
 
 "Input.Mobile.Number" = "Geben Sie Ihre Telefonnummer ein";
 "Input.Mobile.Number.Verify" = "Geben Sie Ihre Handynummer erneut ein";
@@ -35,7 +36,14 @@
 "Login.Third.Google" = "Google";
 "Login.Read.Agree.0" = "Mit der Anmeldung stimmen Sie unserem zu";
 "Login.Read.Agree.1" = "Datenschutzerklärung und Geschäftsbedingungen";
-"Network.Error" = "Netzwerkfehler";
+
+"Guide.Welcome.0" = "Willkommen bei der Verwendung";
+"Guide.Welcome.1" = "VeryFit Kids";
+"Guide.Title.0" = "Voice-Chat";
+"Guide.Content.0" = "Einfach zu verfolgen, jederzeit und überall, Sprachausgabe";
+"Guide.Title.1" = "Präzise Lokalisierung";
+"Guide.Content.1" = "Sicher und geschützt, alles in Ihren Händen";
+"Guide.Button" = "ICH HABE ES";
 
 "No.Binding.Watch" = "Keine Uhr gefunden";
 "Bind.Watch.Hint" = "Verfolgen Sie den Bindungsprozess zwischen Watch und APP";

+ 8 - 2
artimenring-iOS/Artimenring/zh-Hans.lproj/Localizable.strings

@@ -3,6 +3,7 @@
 "Choose" = "选择";
 "Skip" = "跳过";
 "Is.Open.App" = "是否需要打开链接?";
+"Network.Error" = "网络错误";
 
 "Input.Mobile.Number" = "请输入手机号码";
 "Input.Mobile.Number.Verify" = "请再次输入手机号码";
@@ -22,7 +23,6 @@
 "Input.Phone.Not.Match" = "手机号码不一致";
 "Input.Email.Not.Match" = "邮箱地址不一致";
 
-
 "Register.Account" = "创建账号";
 "Register.Account.Success" = "创建账号成功";
 "Login..." = "登录中...";
@@ -38,7 +38,13 @@
 "Login.Read.Agree.0" = "注册即表示您同意我们的";
 "Login.Read.Agree.1" = "隐私政策和条款";
 
-"Network.Error" = "网络错误";
+"Guide.Welcome.0" = "欢迎使用";
+"Guide.Welcome.1" = "VeryFit Kids";
+"Guide.Title.0" = "语音聊天";
+"Guide.Content.0" = "轻松跟读,随时随地,语音对讲";
+"Guide.Title.1" = "精确定位";
+"Guide.Content.1" = "安全放心,一切尽在掌握";
+"Guide.Button" = "我知道了";
 
 "No.Binding.Watch" = "未绑定手表";
 "Bind.Watch.Hint" = "当前小孩未绑定手表,请点击\"绑定\"按钮,前往手表设置界面绑定手表";

+ 6 - 0
artimenring-iOS/VeryFit Kids.xcodeproj/project.pbxproj

@@ -314,6 +314,7 @@
 		E4DE9E522B31786900A8B7FB /* DataManager+api.m in Sources */ = {isa = PBXBuildFile; fileRef = E4DE9E512B31786900A8B7FB /* DataManager+api.m */; };
 		E4DE9E552B31892B00A8B7FB /* TabbarViewController+function.m in Sources */ = {isa = PBXBuildFile; fileRef = E4DE9E542B31892B00A8B7FB /* TabbarViewController+function.m */; };
 		E4E00F9E2B918164009ED24A /* SKWebSocket+send.m in Sources */ = {isa = PBXBuildFile; fileRef = E4E00F9D2B918164009ED24A /* SKWebSocket+send.m */; };
+		E4E40BB62BA9641900F36FD3 /* GuideCellView.m in Sources */ = {isa = PBXBuildFile; fileRef = E4E40BB42BA9641900F36FD3 /* GuideCellView.m */; };
 		E4E75FB52B9EFB6E00236F73 /* ChangeChildView.m in Sources */ = {isa = PBXBuildFile; fileRef = E4E75FB22B9EFB6E00236F73 /* ChangeChildView.m */; };
 		E4E75FBA2B9F146C00236F73 /* ChangeChildButtonView.m in Sources */ = {isa = PBXBuildFile; fileRef = E4E75FB72B9F146C00236F73 /* ChangeChildButtonView.m */; };
 		E4E75FBE2B9F1C6100236F73 /* PGCustomBannerView.m in Sources */ = {isa = PBXBuildFile; fileRef = E4E75FBC2B9F1C6100236F73 /* PGCustomBannerView.m */; };
@@ -968,6 +969,8 @@
 		E4DE9E542B31892B00A8B7FB /* TabbarViewController+function.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "TabbarViewController+function.m"; sourceTree = "<group>"; };
 		E4E00F9C2B918164009ED24A /* SKWebSocket+send.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "SKWebSocket+send.h"; sourceTree = "<group>"; };
 		E4E00F9D2B918164009ED24A /* SKWebSocket+send.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "SKWebSocket+send.m"; sourceTree = "<group>"; };
+		E4E40BB42BA9641900F36FD3 /* GuideCellView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GuideCellView.m; sourceTree = "<group>"; };
+		E4E40BB52BA9641900F36FD3 /* GuideCellView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GuideCellView.h; sourceTree = "<group>"; };
 		E4E75FB22B9EFB6E00236F73 /* ChangeChildView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ChangeChildView.m; sourceTree = "<group>"; };
 		E4E75FB42B9EFB6E00236F73 /* ChangeChildView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChangeChildView.h; sourceTree = "<group>"; };
 		E4E75FB72B9F146C00236F73 /* ChangeChildButtonView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ChangeChildButtonView.m; sourceTree = "<group>"; };
@@ -1875,6 +1878,8 @@
 		28159BFB1A3FC46C00A3E1A3 /* View */ = {
 			isa = PBXGroup;
 			children = (
+				E4E40BB52BA9641900F36FD3 /* GuideCellView.h */,
+				E4E40BB42BA9641900F36FD3 /* GuideCellView.m */,
 				E4E75FE02BA07B9300236F73 /* WatchHeaderReusableView.xib */,
 				E4E75FDB2BA0703F00236F73 /* WatchHeaderReusableView.h */,
 				E4E75FDC2BA0703F00236F73 /* WatchHeaderReusableView.m */,
@@ -3112,6 +3117,7 @@
 				E43714602B4CE748003CA842 /* MainViewController+banner.m in Sources */,
 				27649686219534B700526E05 /* CountryCodeViewController.m in Sources */,
 				27BECA421CBB51BF00E3FD19 /* ZSChatDB.m in Sources */,
+				E4E40BB62BA9641900F36FD3 /* GuideCellView.m in Sources */,
 				E4FE9B702AD9465100DEABCA /* NSDate+FSExtension.m in Sources */,
 				27F64DBE205124620004B6CD /* PushAllMessage+CoreDataProperties.m in Sources */,
 				E4FE9B622AD9465100DEABCA /* SSHolidayCountry.m in Sources */,