diff --git a/BreastFeedingDemo.xcodeproj/project.pbxproj b/BreastFeedingDemo.xcodeproj/project.pbxproj index 4d97939a985eeeaa8b127223dd51387576dfe3cb..477481a418d5c35510bd82eb11d19f629fd48a17 100644 --- a/BreastFeedingDemo.xcodeproj/project.pbxproj +++ b/BreastFeedingDemo.xcodeproj/project.pbxproj @@ -51,6 +51,8 @@ EA8F42CB28EE99D900983014 /* string_english.json in Resources */ = {isa = PBXBuildFile; fileRef = EA8F42C828EE99D900983014 /* string_english.json */; }; EA8F42CC28EE99D900983014 /* string_french.json in Resources */ = {isa = PBXBuildFile; fileRef = EA8F42C928EE99D900983014 /* string_french.json */; }; EA8F42CD28EE99D900983014 /* string_spanish.json in Resources */ = {isa = PBXBuildFile; fileRef = EA8F42CA28EE99D900983014 /* string_spanish.json */; }; + EA8F42CF28EEA85200983014 /* CradleHoldLandingVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA8F42CE28EEA85200983014 /* CradleHoldLandingVC.swift */; }; + EA8F42D128EEA87A00983014 /* SideLyingLandingVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA8F42D028EEA87A00983014 /* SideLyingLandingVC.swift */; }; EAD8102728E207A4002A86C9 /* MyTools.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAD8102628E207A4002A86C9 /* MyTools.swift */; }; EAD8102D28E20A54002A86C9 /* PermissionAlertVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAD8102C28E20A54002A86C9 /* PermissionAlertVC.swift */; }; /* End PBXBuildFile section */ @@ -117,6 +119,8 @@ EA8F42C828EE99D900983014 /* string_english.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = string_english.json; sourceTree = "<group>"; }; EA8F42C928EE99D900983014 /* string_french.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = string_french.json; sourceTree = "<group>"; }; EA8F42CA28EE99D900983014 /* string_spanish.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = string_spanish.json; sourceTree = "<group>"; }; + EA8F42CE28EEA85200983014 /* CradleHoldLandingVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CradleHoldLandingVC.swift; sourceTree = "<group>"; }; + EA8F42D028EEA87A00983014 /* SideLyingLandingVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SideLyingLandingVC.swift; sourceTree = "<group>"; }; EAD8102628E207A4002A86C9 /* MyTools.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyTools.swift; sourceTree = "<group>"; }; EAD8102C28E20A54002A86C9 /* PermissionAlertVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PermissionAlertVC.swift; sourceTree = "<group>"; }; /* End PBXFileReference section */ @@ -265,6 +269,8 @@ isa = PBXGroup; children = ( EA14360428E0BF1900FFBE72 /* DemoViewController.swift */, + EA8F42CE28EEA85200983014 /* CradleHoldLandingVC.swift */, + EA8F42D028EEA87A00983014 /* SideLyingLandingVC.swift */, EAD8102C28E20A54002A86C9 /* PermissionAlertVC.swift */, 697B07EC284F2E5C0051FC23 /* CompleteVC.swift */, ); @@ -396,10 +402,12 @@ files = ( EA8F42C528EE998000983014 /* StringModel.swift in Sources */, 694B85C02848EB4C009BEDE1 /* ViewController.swift in Sources */, + EA8F42D128EEA87A00983014 /* SideLyingLandingVC.swift in Sources */, 694B85BC2848EB4C009BEDE1 /* AppDelegate.swift in Sources */, EA8F42C328EE998000983014 /* StringLyingGestureIntroduce.swift in Sources */, 697B07ED284F2E5C0051FC23 /* CompleteVC.swift in Sources */, EA8F42C628EE998000983014 /* StringLyingGesture.swift in Sources */, + EA8F42CF28EEA85200983014 /* CradleHoldLandingVC.swift in Sources */, EA14360528E0BF1900FFBE72 /* DemoViewController.swift in Sources */, 692EC41A284C81700043E3EA /* ViewModel.swift in Sources */, EAD8102D28E20A54002A86C9 /* PermissionAlertVC.swift in Sources */, diff --git a/BreastFeedingDemo/Assets.xcassets/summary/Contents.json b/BreastFeedingDemo/Assets.xcassets/summary/Contents.json new file mode 100644 index 0000000000000000000000000000000000000000..73c00596a7fca3f3d4bdd64053b69d86745f9e10 --- /dev/null +++ b/BreastFeedingDemo/Assets.xcassets/summary/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/BreastFeedingDemo/Assets.xcassets/summary/summaryBg.imageset/Contents.json b/BreastFeedingDemo/Assets.xcassets/summary/summaryBg.imageset/Contents.json new file mode 100644 index 0000000000000000000000000000000000000000..c3514a53903d542dd108e2518cde479d378a90c0 --- /dev/null +++ b/BreastFeedingDemo/Assets.xcassets/summary/summaryBg.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "summaryBg.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/BreastFeedingDemo/Assets.xcassets/summary/summaryBg.imageset/summaryBg.png b/BreastFeedingDemo/Assets.xcassets/summary/summaryBg.imageset/summaryBg.png new file mode 100644 index 0000000000000000000000000000000000000000..534e47ac2c40057d67d69e5035cff9c89c5c454b Binary files /dev/null and b/BreastFeedingDemo/Assets.xcassets/summary/summaryBg.imageset/summaryBg.png differ diff --git a/BreastFeedingDemo/Assets.xcassets/summary/summaryWireframe.imageset/Contents.json b/BreastFeedingDemo/Assets.xcassets/summary/summaryWireframe.imageset/Contents.json new file mode 100644 index 0000000000000000000000000000000000000000..f6f8206544f33f13fe86bf0dfd489d7ce3108bdc --- /dev/null +++ b/BreastFeedingDemo/Assets.xcassets/summary/summaryWireframe.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "summaryWireframe.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/BreastFeedingDemo/Assets.xcassets/summary/summaryWireframe.imageset/summaryWireframe.png b/BreastFeedingDemo/Assets.xcassets/summary/summaryWireframe.imageset/summaryWireframe.png new file mode 100644 index 0000000000000000000000000000000000000000..fd8c2461c52290f3d1b299b2791685956a44684d Binary files /dev/null and b/BreastFeedingDemo/Assets.xcassets/summary/summaryWireframe.imageset/summaryWireframe.png differ diff --git a/BreastFeedingDemo/Assets.xcassets/summary/summaryWireframeLie.imageset/Contents.json b/BreastFeedingDemo/Assets.xcassets/summary/summaryWireframeLie.imageset/Contents.json new file mode 100644 index 0000000000000000000000000000000000000000..2e3adb081bf68987f521023f853de8ae82a4d817 --- /dev/null +++ b/BreastFeedingDemo/Assets.xcassets/summary/summaryWireframeLie.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "summaryWireframeLie.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/BreastFeedingDemo/Assets.xcassets/summary/summaryWireframeLie.imageset/summaryWireframeLie.png b/BreastFeedingDemo/Assets.xcassets/summary/summaryWireframeLie.imageset/summaryWireframeLie.png new file mode 100644 index 0000000000000000000000000000000000000000..326c1d858407ac97b4ce40a4019b9e83b20427a4 Binary files /dev/null and b/BreastFeedingDemo/Assets.xcassets/summary/summaryWireframeLie.imageset/summaryWireframeLie.png differ diff --git a/BreastFeedingDemo/Assets.xcassets/summary/summaryleftbottom.imageset/Contents.json b/BreastFeedingDemo/Assets.xcassets/summary/summaryleftbottom.imageset/Contents.json new file mode 100644 index 0000000000000000000000000000000000000000..48ae4e5b486724fd23d3af3eca2277f95f5bcd99 --- /dev/null +++ b/BreastFeedingDemo/Assets.xcassets/summary/summaryleftbottom.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "summaryleftbottom.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/BreastFeedingDemo/Assets.xcassets/summary/summaryleftbottom.imageset/summaryleftbottom.png b/BreastFeedingDemo/Assets.xcassets/summary/summaryleftbottom.imageset/summaryleftbottom.png new file mode 100644 index 0000000000000000000000000000000000000000..4d9531c55895171819bc282a6fef92caae58ccc0 Binary files /dev/null and b/BreastFeedingDemo/Assets.xcassets/summary/summaryleftbottom.imageset/summaryleftbottom.png differ diff --git a/BreastFeedingDemo/Assets.xcassets/summary/summarylinelefttop.imageset/Contents.json b/BreastFeedingDemo/Assets.xcassets/summary/summarylinelefttop.imageset/Contents.json new file mode 100644 index 0000000000000000000000000000000000000000..d3d3888ceab3c08b143276b750766786b343181d --- /dev/null +++ b/BreastFeedingDemo/Assets.xcassets/summary/summarylinelefttop.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "summarylinelefttop.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/BreastFeedingDemo/Assets.xcassets/summary/summarylinelefttop.imageset/summarylinelefttop.png b/BreastFeedingDemo/Assets.xcassets/summary/summarylinelefttop.imageset/summarylinelefttop.png new file mode 100644 index 0000000000000000000000000000000000000000..5047786c57cc1c56c750ac14624c6624e1195384 Binary files /dev/null and b/BreastFeedingDemo/Assets.xcassets/summary/summarylinelefttop.imageset/summarylinelefttop.png differ diff --git a/BreastFeedingDemo/Assets.xcassets/summary/summarylinelie1.imageset/Contents.json b/BreastFeedingDemo/Assets.xcassets/summary/summarylinelie1.imageset/Contents.json new file mode 100644 index 0000000000000000000000000000000000000000..9fd3f00867b5c776c04666e6e91174df84f517fc --- /dev/null +++ b/BreastFeedingDemo/Assets.xcassets/summary/summarylinelie1.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "summarylinelie1.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/BreastFeedingDemo/Assets.xcassets/summary/summarylinelie1.imageset/summarylinelie1.png b/BreastFeedingDemo/Assets.xcassets/summary/summarylinelie1.imageset/summarylinelie1.png new file mode 100644 index 0000000000000000000000000000000000000000..7eba403e7efccce3097322fa552f5fd360023b73 Binary files /dev/null and b/BreastFeedingDemo/Assets.xcassets/summary/summarylinelie1.imageset/summarylinelie1.png differ diff --git a/BreastFeedingDemo/Assets.xcassets/summary/summarylinelie2.imageset/Contents.json b/BreastFeedingDemo/Assets.xcassets/summary/summarylinelie2.imageset/Contents.json new file mode 100644 index 0000000000000000000000000000000000000000..f9fdd9e924fc09c088fd3a146b78ee1336a0f248 --- /dev/null +++ b/BreastFeedingDemo/Assets.xcassets/summary/summarylinelie2.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "summarylinelie2.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/BreastFeedingDemo/Assets.xcassets/summary/summarylinelie2.imageset/summarylinelie2.png b/BreastFeedingDemo/Assets.xcassets/summary/summarylinelie2.imageset/summarylinelie2.png new file mode 100644 index 0000000000000000000000000000000000000000..db49d9536f278267842b01692ed12085c09006e0 Binary files /dev/null and b/BreastFeedingDemo/Assets.xcassets/summary/summarylinelie2.imageset/summarylinelie2.png differ diff --git a/BreastFeedingDemo/Assets.xcassets/summary/summarylinelie3.imageset/Contents.json b/BreastFeedingDemo/Assets.xcassets/summary/summarylinelie3.imageset/Contents.json new file mode 100644 index 0000000000000000000000000000000000000000..e7ebe326aeb7e715bdbf867ce77d2d1d30c26639 --- /dev/null +++ b/BreastFeedingDemo/Assets.xcassets/summary/summarylinelie3.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "summarylinelie3.heic", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/BreastFeedingDemo/Assets.xcassets/summary/summarylinelie3.imageset/summarylinelie3.heic b/BreastFeedingDemo/Assets.xcassets/summary/summarylinelie3.imageset/summarylinelie3.heic new file mode 100644 index 0000000000000000000000000000000000000000..a091dda35dad8b60c6d76113e4a3438a0b7954d6 Binary files /dev/null and b/BreastFeedingDemo/Assets.xcassets/summary/summarylinelie3.imageset/summarylinelie3.heic differ diff --git a/BreastFeedingDemo/Assets.xcassets/summary/summarylinelie4.imageset/Contents.json b/BreastFeedingDemo/Assets.xcassets/summary/summarylinelie4.imageset/Contents.json new file mode 100644 index 0000000000000000000000000000000000000000..1ccca33db16359f799af74d9a4b8386c8a6e60e5 --- /dev/null +++ b/BreastFeedingDemo/Assets.xcassets/summary/summarylinelie4.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "summarylinelie4.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/BreastFeedingDemo/Assets.xcassets/summary/summarylinelie4.imageset/summarylinelie4.png b/BreastFeedingDemo/Assets.xcassets/summary/summarylinelie4.imageset/summarylinelie4.png new file mode 100644 index 0000000000000000000000000000000000000000..da03a5c047a1450c8f0f5a3449faa9398a1a6a51 Binary files /dev/null and b/BreastFeedingDemo/Assets.xcassets/summary/summarylinelie4.imageset/summarylinelie4.png differ diff --git a/BreastFeedingDemo/Assets.xcassets/summary/summarylinelie5.imageset/Contents.json b/BreastFeedingDemo/Assets.xcassets/summary/summarylinelie5.imageset/Contents.json new file mode 100644 index 0000000000000000000000000000000000000000..8047449c4b30e2209a5f54b888ed6279e65b8b28 --- /dev/null +++ b/BreastFeedingDemo/Assets.xcassets/summary/summarylinelie5.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "summarylinelie5.heic", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/BreastFeedingDemo/Assets.xcassets/summary/summarylinelie5.imageset/summarylinelie5.heic b/BreastFeedingDemo/Assets.xcassets/summary/summarylinelie5.imageset/summarylinelie5.heic new file mode 100644 index 0000000000000000000000000000000000000000..6ce693d225ff62d84f64fca7d6ad263664f133da Binary files /dev/null and b/BreastFeedingDemo/Assets.xcassets/summary/summarylinelie5.imageset/summarylinelie5.heic differ diff --git a/BreastFeedingDemo/Assets.xcassets/summary/summaryrightbottom.imageset/Contents.json b/BreastFeedingDemo/Assets.xcassets/summary/summaryrightbottom.imageset/Contents.json new file mode 100644 index 0000000000000000000000000000000000000000..59bb4717ef6b53f397d7b80e40a4cb287993f9f6 --- /dev/null +++ b/BreastFeedingDemo/Assets.xcassets/summary/summaryrightbottom.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "summaryrightbottom.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/BreastFeedingDemo/Assets.xcassets/summary/summaryrightbottom.imageset/summaryrightbottom.png b/BreastFeedingDemo/Assets.xcassets/summary/summaryrightbottom.imageset/summaryrightbottom.png new file mode 100644 index 0000000000000000000000000000000000000000..6fcb71dea84c4df5cb014614d23ecc29986e6fd4 Binary files /dev/null and b/BreastFeedingDemo/Assets.xcassets/summary/summaryrightbottom.imageset/summaryrightbottom.png differ diff --git a/BreastFeedingDemo/Assets.xcassets/summary/summaryrighttop.imageset/Contents.json b/BreastFeedingDemo/Assets.xcassets/summary/summaryrighttop.imageset/Contents.json new file mode 100644 index 0000000000000000000000000000000000000000..576e0dc0d1c4aa58e9e4ee4ea9687b20fc3bfc51 --- /dev/null +++ b/BreastFeedingDemo/Assets.xcassets/summary/summaryrighttop.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "summaryrighttop.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/BreastFeedingDemo/Assets.xcassets/summary/summaryrighttop.imageset/summaryrighttop.png b/BreastFeedingDemo/Assets.xcassets/summary/summaryrighttop.imageset/summaryrighttop.png new file mode 100644 index 0000000000000000000000000000000000000000..3fcd3ca34eb375a00c6f508c0651c57f700a362d Binary files /dev/null and b/BreastFeedingDemo/Assets.xcassets/summary/summaryrighttop.imageset/summaryrighttop.png differ diff --git a/BreastFeedingDemo/Base.lproj/Main.storyboard b/BreastFeedingDemo/Base.lproj/Main.storyboard index 9e56c68bc4b1109abb546b8e3455a71c1feca065..2fdf909380f86e9011681caafe0ac6ade44321af 100644 --- a/BreastFeedingDemo/Base.lproj/Main.storyboard +++ b/BreastFeedingDemo/Base.lproj/Main.storyboard @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="20037" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="sh4-Ff-iOb"> - <device id="retina6_1" orientation="portrait" appearance="light"/> + <device id="retina6_0" orientation="portrait" appearance="light"/> <dependencies> <deployment identifier="iOS"/> <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="20020"/> @@ -14,41 +14,41 @@ <objects> <viewController id="BYZ-38-t0r" customClass="ViewController" customModule="BreastFeedingDemo" customModuleProvider="target" sceneMemberID="viewController"> <view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC"> - <rect key="frame" x="0.0" y="0.0" width="414" height="896"/> + <rect key="frame" x="0.0" y="0.0" width="390" height="844"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <subviews> <imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" translatesAutoresizingMaskIntoConstraints="NO" id="xYn-g0-EZC" userLabel="notUsed"> - <rect key="frame" x="0.0" y="0.0" width="414" height="631"/> + <rect key="frame" x="0.0" y="0.0" width="390" height="594.33333333333337"/> <constraints> <constraint firstAttribute="width" secondItem="xYn-g0-EZC" secondAttribute="height" multiplier="1125:1714" id="QEj-5E-sTS"/> </constraints> </imageView> <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" image="message-entry-fullbg" translatesAutoresizingMaskIntoConstraints="NO" id="lk7-e2-yOu"> - <rect key="frame" x="0.0" y="0.0" width="414" height="896.5"/> + <rect key="frame" x="0.0" y="0.0" width="390" height="844.33333333333337"/> <constraints> <constraint firstAttribute="width" secondItem="lk7-e2-yOu" secondAttribute="height" multiplier="375:812" id="gLS-jj-IUi"/> </constraints> </imageView> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="w7E-9g-1V7" userLabel="CenterIntroduceView"> - <rect key="frame" x="19.5" y="111" width="375" height="520"/> + <rect key="frame" x="7.6666666666666572" y="74.333333333333314" width="375" height="520"/> <subviews> <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" image="swiper1big_new" translatesAutoresizingMaskIntoConstraints="NO" id="Dhs-89-5Gr"> <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="Label" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1Ki-U8-ZmO"> - <rect key="frame" x="49" y="120" width="118" height="16"/> + <rect key="frame" x="49" y="120.00000000000001" width="118" height="15.666666666666671"/> <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="Label" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gBm-Jn-Yuw"> - <rect key="frame" x="153" y="310" width="222" height="16"/> + <rect key="frame" x="153" y="310" width="222" height="15.666666666666686"/> <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="Label" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="5WO-Br-BXn"> - <rect key="frame" x="49" y="399" width="286" height="16"/> + <rect key="frame" x="49" y="399" width="286" height="15.666666666666686"/> <fontDescription key="fontDescription" type="system" pointSize="13"/> <color key="textColor" systemColor="systemGrayColor"/> <nil key="highlightedColor"/> @@ -83,7 +83,7 @@ </constraints> </view> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="s7D-fE-2f9"> - <rect key="frame" x="358" y="88" width="40" height="40"/> + <rect key="frame" x="334" y="88" width="40" height="40"/> <constraints> <constraint firstAttribute="height" constant="40" id="JlQ-c6-MTE"/> <constraint firstAttribute="width" constant="40" id="QfK-8H-GP3"/> @@ -96,10 +96,10 @@ </connections> </button> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Ul6-yG-7a1" userLabel="buttonBoard"> - <rect key="frame" x="0.0" y="631" width="414" height="231"/> + <rect key="frame" x="0.0" y="594.33333333333337" width="390" height="215.66666666666663"/> <subviews> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="eST-58-iE6"> - <rect key="frame" x="67.5" y="90.5" width="279" height="50"/> + <rect key="frame" x="55.333333333333343" y="82.666666666666629" width="279.33333333333326" height="50"/> <constraints> <constraint firstAttribute="width" secondItem="eST-58-iE6" secondAttribute="height" multiplier="5.58974" id="5Ll-2F-jZ5"/> <constraint firstAttribute="height" constant="50" id="VCb-UE-ur6"/> @@ -121,7 +121,7 @@ </constraints> </view> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="wyh-ZZ-B5n"> - <rect key="frame" x="312" y="128" width="100" height="120"/> + <rect key="frame" x="288" y="128" width="100" height="120"/> <subviews> <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" image="popup" translatesAutoresizingMaskIntoConstraints="NO" id="d65-2N-aD0"> <rect key="frame" x="60" y="0.0" width="12" height="13"/> @@ -134,17 +134,17 @@ <rect key="frame" x="0.0" y="13" width="100" height="107"/> <subviews> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="kkA-95-vje"> - <rect key="frame" x="0.0" y="0.0" width="100" height="35.5"/> + <rect key="frame" x="0.0" y="0.0" width="100" height="35.666666666666664"/> <subviews> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="vkh-af-zMa"> - <rect key="frame" x="0.0" y="34.5" width="100" height="1"/> + <rect key="frame" x="0.0" y="34.666666666666657" width="100" height="1"/> <color key="backgroundColor" systemColor="systemGray6Color"/> <constraints> <constraint firstAttribute="height" constant="1" id="6mo-Hr-Xgx"/> </constraints> </view> <button opaque="NO" tag="1000" contentMode="scaleToFill" selected="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="f1P-II-Bc9"> - <rect key="frame" x="10" y="0.0" width="90" height="34.5"/> + <rect key="frame" x="10" y="0.0" width="90" height="34.666666666666664"/> <fontDescription key="fontDescription" type="system" pointSize="14"/> <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> <state key="normal" title=" English" image="noselect"> @@ -171,17 +171,17 @@ </constraints> </view> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="5Rk-KM-CWf"> - <rect key="frame" x="0.0" y="35.5" width="100" height="36"/> + <rect key="frame" x="0.0" y="35.666666666666657" width="100" height="35.666666666666657"/> <subviews> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="KTt-nn-85a"> - <rect key="frame" x="0.0" y="35" width="100" height="1"/> + <rect key="frame" x="0.0" y="34.666666666666686" width="100" height="1"/> <color key="backgroundColor" systemColor="systemGray6Color"/> <constraints> <constraint firstAttribute="height" constant="1" id="qQP-a0-Ud3"/> </constraints> </view> <button opaque="NO" tag="1001" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Klj-Kh-EXj"> - <rect key="frame" x="10" y="0.0" width="90" height="35"/> + <rect key="frame" x="10" y="0.0" width="90" height="34.666666666666664"/> <fontDescription key="fontDescription" type="system" pointSize="14"/> <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> <state key="normal" title=" Français" image="noselect"> @@ -208,17 +208,17 @@ </constraints> </view> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="DXg-F9-hEj"> - <rect key="frame" x="0.0" y="71.5" width="100" height="35.5"/> + <rect key="frame" x="0.0" y="71.333333333333343" width="100" height="35.666666666666657"/> <subviews> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="lkt-8D-r6n"> - <rect key="frame" x="0.0" y="34.5" width="100" height="1"/> + <rect key="frame" x="0.0" y="34.666666666666657" width="100" height="1"/> <color key="backgroundColor" systemColor="systemGray6Color"/> <constraints> <constraint firstAttribute="height" constant="1" id="Xcu-jN-x2v"/> </constraints> </view> <button opaque="NO" tag="1002" contentMode="scaleToFill" horizontalCompressionResistancePriority="250" verticalCompressionResistancePriority="250" contentHorizontalAlignment="left" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Fd7-qZ-tll"> - <rect key="frame" x="10" y="0.0" width="90" height="34.5"/> + <rect key="frame" x="10" y="0.0" width="90" height="34.666666666666664"/> <fontDescription key="fontDescription" type="system" pointSize="14"/> <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> <state key="normal" title=" Español" image="noselect"> @@ -259,25 +259,25 @@ </constraints> </view> <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="22D-EX-aoe"> - <rect key="frame" x="0.0" y="0.0" width="414" height="896"/> + <rect key="frame" x="0.0" y="0.0" width="390" height="844"/> <subviews> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="AI5-gW-mDn"> - <rect key="frame" x="60" y="358" width="294" height="180.5"/> + <rect key="frame" x="60" y="331.66666666666669" width="270" height="180.66666666666669"/> <subviews> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Cwa-eM-zJh"> - <rect key="frame" x="0.0" y="24" width="294" height="23"/> + <rect key="frame" x="0.0" y="24" width="270" 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="LGs-i4-o3S"> - <rect key="frame" x="16" y="71" width="262" height="21.5"/> + <rect key="frame" x="16" y="71" width="238" height="21.666666666666671"/> <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="tzj-jo-egI"> - <rect key="frame" x="35" y="116.5" width="224" height="40"/> + <rect key="frame" x="23.333333333333329" y="116.66666666666663" width="223.33333333333337" height="40"/> <constraints> <constraint firstAttribute="width" secondItem="tzj-jo-egI" secondAttribute="height" multiplier="5.58974" id="1d7-Ih-q0T"/> <constraint firstAttribute="height" constant="40" id="b7T-6N-TMX"/> @@ -436,23 +436,23 @@ <objects> <viewController storyboardIdentifier="DemoViewController" id="XVX-uo-beN" customClass="DemoViewController" customModule="BreastFeedingDemo" customModuleProvider="target" sceneMemberID="viewController"> <view key="view" contentMode="scaleToFill" id="vsR-gb-RGA"> - <rect key="frame" x="0.0" y="0.0" width="414" height="896"/> + <rect key="frame" x="0.0" y="0.0" width="390" height="844"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <subviews> <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="QYB-GY-fMM"> - <rect key="frame" x="0.0" y="0.0" width="414" height="896"/> + <rect key="frame" x="0.0" y="0.0" width="390" height="844"/> <subviews> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="TkO-Eu-DJp" userLabel="ContentView"> - <rect key="frame" x="0.0" y="0.0" width="414" height="1133"/> + <rect key="frame" x="0.0" y="0.0" width="390" height="1108.6666666666667"/> <subviews> <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalCompressionResistancePriority="250" verticalCompressionResistancePriority="250" image="message-entry-fullbg" translatesAutoresizingMaskIntoConstraints="NO" id="K6J-XQ-4BC"> - <rect key="frame" x="0.0" y="0.0" width="414" height="1133"/> + <rect key="frame" x="0.0" y="0.0" width="390" height="1108.6666666666667"/> </imageView> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Qgu-bY-TpW" userLabel="按钮区域"> - <rect key="frame" x="0.0" y="64" width="414" height="40"/> + <rect key="frame" x="0.0" y="64" width="390" height="40"/> <subviews> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="1cF-QQ-NxO"> - <rect key="frame" x="358" y="0.0" width="40" height="40"/> + <rect key="frame" x="334" y="0.0" width="40" height="40"/> <constraints> <constraint firstAttribute="height" constant="40" id="MIf-8I-JDv"/> <constraint firstAttribute="width" constant="40" id="rAo-DR-uM4"/> @@ -475,13 +475,13 @@ </constraints> </view> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="n2T-Dl-efl" userLabel="CenterIntroduceView"> - <rect key="frame" x="19.5" y="112" width="375" height="520"/> + <rect key="frame" x="7.6666666666666572" y="112" width="375" height="520"/> <subviews> <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" image="swiper1big_new" translatesAutoresizingMaskIntoConstraints="NO" id="0vs-bV-3OU"> <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="w67-cF-HBg"> - <rect key="frame" x="49" y="120" width="118" height="47"/> + <rect key="frame" x="49" y="120.00000000000001" width="118" height="46.666666666666671"/> <constraints> <constraint firstAttribute="width" constant="118" id="z8x-T6-Knn"/> </constraints> @@ -490,7 +490,7 @@ <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="1CE-uj-Je4"> - <rect key="frame" x="153" y="310" width="222" height="47"/> + <rect key="frame" x="153" y="310" width="222" height="46.666666666666686"/> <constraints> <constraint firstAttribute="width" constant="222" id="Bzw-nJ-rxE"/> </constraints> @@ -499,7 +499,7 @@ <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="th8-qp-QwN"> - <rect key="frame" x="49" y="399" width="286" height="31.5"/> + <rect key="frame" x="49" y="399" width="286" height="31.333333333333314"/> <constraints> <constraint firstAttribute="width" constant="286" id="Mjw-vH-nPo"/> </constraints> @@ -537,31 +537,31 @@ </constraints> </view> <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="foZ-BE-ftk"> - <rect key="frame" x="0.0" y="640" width="414" height="24"/> + <rect key="frame" x="0.0" y="640" width="390" 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> <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="16" translatesAutoresizingMaskIntoConstraints="NO" id="YC3-mE-Ldw"> - <rect key="frame" x="16" y="680" width="382" height="405"/> + <rect key="frame" x="16" y="680" width="358" height="380.66666666666674"/> <subviews> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="flX-LQ-FEL" customClass="UIControl"> - <rect key="frame" x="0.0" y="0.0" width="382" height="194.5"/> + <rect key="frame" x="0.0" y="0.0" width="358" height="182.33333333333334"/> <subviews> <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="home-gesture-2.7606109a" translatesAutoresizingMaskIntoConstraints="NO" id="KCh-Z8-bas"> - <rect key="frame" x="0.0" y="0.0" width="382" height="194.5"/> + <rect key="frame" x="0.0" y="0.0" width="358" height="182.33333333333334"/> </imageView> - <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" distribution="equalSpacing" alignment="center" spacing="16" translatesAutoresizingMaskIntoConstraints="NO" id="aC7-1b-hqa"> - <rect key="frame" x="0.0" y="112" width="382" height="66.5"/> + <stackView opaque="NO" userInteractionEnabled="NO" contentMode="scaleToFill" axis="vertical" distribution="equalSpacing" alignment="center" spacing="16" translatesAutoresizingMaskIntoConstraints="NO" id="aC7-1b-hqa"> + <rect key="frame" x="0.0" y="100" width="358" height="66.333333333333314"/> <subviews> - <label opaque="NO" userInteractionEnabled="NO" tag="1000" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Gradle hold position" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="TCv-FQ-Df0"> - <rect key="frame" x="74.5" y="0.0" width="233.5" height="30"/> + <label opaque="NO" tag="1000" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Gradle hold position" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="TCv-FQ-Df0"> + <rect key="frame" x="62.333333333333329" y="0.0" width="233.33333333333337" 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" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="0KH-av-NLw"> - <rect key="frame" x="176" y="46" width="30.5" height="20.5"/> + <label opaque="NO" tag="1001" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="----" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="0KH-av-NLw"> + <rect key="frame" x="163.66666666666666" y="46" width="30.666666666666657" height="20.333333333333329"/> <fontDescription key="fontDescription" type="system" pointSize="17"/> <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> <nil key="highlightedColor"/> @@ -585,22 +585,22 @@ </connections> </view> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="NG1-gm-Ffn" customClass="UIControl"> - <rect key="frame" x="0.0" y="210.5" width="382" height="194.5"/> + <rect key="frame" x="0.0" y="198.33333333333337" width="358" height="182.33333333333337"/> <subviews> <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="home-gesture-1.e0d3ede0" translatesAutoresizingMaskIntoConstraints="NO" id="mzG-KZ-ZFU"> - <rect key="frame" x="0.0" y="0.0" width="382" height="194.5"/> + <rect key="frame" x="0.0" y="0.0" width="358" height="182.33333333333334"/> </imageView> - <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" distribution="equalSpacing" alignment="center" spacing="16" translatesAutoresizingMaskIntoConstraints="NO" id="ke4-El-H0U"> - <rect key="frame" x="0.0" y="112" width="382" height="66.5"/> + <stackView opaque="NO" userInteractionEnabled="NO" contentMode="scaleToFill" axis="vertical" distribution="equalSpacing" alignment="center" spacing="16" translatesAutoresizingMaskIntoConstraints="NO" id="ke4-El-H0U"> + <rect key="frame" x="0.0" y="100" width="358" height="66.333333333333314"/> <subviews> - <label opaque="NO" userInteractionEnabled="NO" tag="1000" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Gradle hold position" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="WKu-n7-UAR"> - <rect key="frame" x="74.5" y="0.0" width="233.5" height="30"/> + <label opaque="NO" tag="1000" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Gradle hold position" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="WKu-n7-UAR"> + <rect key="frame" x="62.333333333333329" y="0.0" width="233.33333333333337" 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" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="2Ep-ve-IWq"> - <rect key="frame" x="176" y="46" width="30.5" height="20.5"/> + <label opaque="NO" tag="1001" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="----" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="2Ep-ve-IWq"> + <rect key="frame" x="163.66666666666666" y="45.999999999999886" width="30.666666666666657" height="20.333333333333329"/> <fontDescription key="fontDescription" type="system" pointSize="17"/> <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> <nil key="highlightedColor"/> @@ -619,6 +619,9 @@ <constraint firstAttribute="bottom" secondItem="ke4-El-H0U" secondAttribute="bottom" constant="16" id="hwZ-zk-YiC"/> <constraint firstItem="mzG-KZ-ZFU" firstAttribute="top" secondItem="NG1-gm-Ffn" secondAttribute="top" id="qCm-nJ-SLG"/> </constraints> + <connections> + <action selector="sideLyingAction:" destination="XVX-uo-beN" eventType="touchUpInside" id="bbW-Nn-AQ1"/> + </connections> </view> </subviews> <constraints> @@ -685,31 +688,307 @@ </objects> <point key="canvasLocation" x="-649.27536231884062" y="490.84821428571428"/> </scene> + <!--Side Lying LandingVC--> + <scene sceneID="pXw-Cd-TWn"> + <objects> + <viewController storyboardIdentifier="SideLyingLandingVC" id="2ZC-tX-YAa" customClass="SideLyingLandingVC" customModule="BreastFeedingDemo" customModuleProvider="target" sceneMemberID="viewController"> + <view key="view" contentMode="scaleToFill" id="0Uv-Gy-UmI"> + <rect key="frame" x="0.0" y="0.0" width="390" height="844"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <subviews> + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" image="message-entry-fullbg" translatesAutoresizingMaskIntoConstraints="NO" id="GyO-kl-JJO"> + <rect key="frame" x="0.0" y="0.0" width="390" height="844"/> + </imageView> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="psm-S4-nuq"> + <rect key="frame" x="7.6666666666666572" y="172" width="375" height="500"/> + <subviews> + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" image="summaryWireframeLie" translatesAutoresizingMaskIntoConstraints="NO" id="OFe-H9-oZH"> + <rect key="frame" x="0.0" y="100" width="375" height="300"/> + <constraints> + <constraint firstAttribute="height" constant="300" id="fxU-ff-dll"/> + </constraints> + </imageView> + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" image="summarylinelie1" translatesAutoresizingMaskIntoConstraints="NO" id="T6L-Sh-kff"> + <rect key="frame" x="15" y="166" width="37" height="61"/> + <constraints> + <constraint firstAttribute="width" constant="37" id="fSz-Lj-xtS"/> + <constraint firstAttribute="height" constant="61" id="gAa-Z5-GsL"/> + </constraints> + </imageView> + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" image="summarylinelie2" translatesAutoresizingMaskIntoConstraints="NO" id="osj-QP-Ah2"> + <rect key="frame" x="190" y="134" width="75" height="108"/> + <constraints> + <constraint firstAttribute="width" constant="75" id="mqf-JX-oMk"/> + <constraint firstAttribute="height" constant="108" id="tWc-hi-jHj"/> + </constraints> + </imageView> + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" image="summarylinelie4" translatesAutoresizingMaskIntoConstraints="NO" id="8wW-lq-Bvf"> + <rect key="frame" x="24" y="298" width="44" height="69"/> + <constraints> + <constraint firstAttribute="width" constant="44" id="93e-I6-Lla"/> + <constraint firstAttribute="height" constant="69" id="lHd-rs-dSz"/> + </constraints> + </imageView> + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" image="summarylinelie5" translatesAutoresizingMaskIntoConstraints="NO" id="yxJ-cJ-2SQ"> + <rect key="frame" x="190" y="301" width="27" height="62"/> + <constraints> + <constraint firstAttribute="height" constant="62" id="Qan-dv-s6U"/> + <constraint firstAttribute="width" constant="27" id="YHs-NJ-cJe"/> + </constraints> + </imageView> + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" image="summarylinelie5" translatesAutoresizingMaskIntoConstraints="NO" id="WsC-Qn-Mq7"> + <rect key="frame" x="257" y="234" width="27" height="62"/> + <constraints> + <constraint firstAttribute="width" constant="27" id="Ajb-6O-lAk"/> + <constraint firstAttribute="height" constant="62" id="vRh-wk-D5L"/> + </constraints> + </imageView> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="1." textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="rDC-YO-rUc"> + <rect key="frame" x="1" y="85.666666666666686" width="18" height="30"/> + <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="25"/> + <color key="textColor" red="0.96192914249999995" green="0.52479732040000004" blue="0.52205568550000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <nil key="highlightedColor"/> + </label> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Keep baby's head in higher position so you can see baby's face" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="LXf-JR-cPC"> + <rect key="frame" x="23" y="95.333333333333314" width="157" height="46.666666666666657"/> + <constraints> + <constraint firstAttribute="width" constant="157" id="y6Q-kY-fCf"/> + </constraints> + <fontDescription key="fontDescription" type="system" pointSize="13"/> + <color key="textColor" red="0.19438669089999999" green="0.17716249819999999" blue="0.19208657740000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <nil key="highlightedColor"/> + </label> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="2." textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="miQ-tB-a7c"> + <rect key="frame" x="248.66666666666666" y="85.666666666666686" width="21.333333333333343" height="30"/> + <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="25"/> + <color key="textColor" red="0.96192914249999995" green="0.52479732040000004" blue="0.52205568550000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <nil key="highlightedColor"/> + </label> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Keep baby's head in higher position so you can see baby's face" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="j6E-3U-jLn"> + <rect key="frame" x="274" y="95.333333333333314" width="100" height="77.666666666666686"/> + <constraints> + <constraint firstAttribute="width" constant="100" id="RSa-lr-mf9"/> + </constraints> + <fontDescription key="fontDescription" type="system" pointSize="13"/> + <color key="textColor" red="0.19438669089999999" green="0.17716249819999999" blue="0.19208657740000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <nil key="highlightedColor"/> + </label> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="3." textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Oje-xy-mpe"> + <rect key="frame" x="259.66666666666663" y="196" width="21.666666666666686" height="30"/> + <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="25"/> + <color key="textColor" red="0.96192914249999995" green="0.52479732040000004" blue="0.52205568550000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <nil key="highlightedColor"/> + </label> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Keep baby's head in higher position so you can see baby's face" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="TbB-hz-Z4d"> + <rect key="frame" x="285.33333333333331" y="205.66666666666669" width="89.666666666666686" height="77.666666666666686"/> + <fontDescription key="fontDescription" type="system" pointSize="13"/> + <color key="textColor" red="0.19438669089999999" green="0.17716249819999999" blue="0.19208657740000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <nil key="highlightedColor"/> + </label> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="6Ga-8e-7nN"> + <rect key="frame" x="0.0" y="375" width="179" height="56.333333333333314"/> + <subviews> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="1000" verticalHuggingPriority="1000" horizontalCompressionResistancePriority="1000" verticalCompressionResistancePriority="1000" text="4." textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="hWr-Qo-jja"> + <rect key="frame" x="0.0" y="0.0" width="22.333333333333332" height="30"/> + <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="25"/> + <color key="textColor" red="0.96192914249999995" green="0.52479732040000004" blue="0.52205568550000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <nil key="highlightedColor"/> + </label> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Keep baby's head in higher position so you can see baby's face" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qUY-bd-12a"> + <rect key="frame" x="22.333333333333329" y="9.6666666666666252" width="156.66666666666669" height="46.666666666666657"/> + <fontDescription key="fontDescription" type="system" pointSize="13"/> + <color key="textColor" red="0.19438669089999999" green="0.17716249819999999" blue="0.19208657740000001" 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="width" constant="179" id="0yO-pq-T8l"/> + <constraint firstItem="qUY-bd-12a" firstAttribute="leading" secondItem="hWr-Qo-jja" secondAttribute="trailing" id="5mI-5t-FDd"/> + <constraint firstAttribute="trailing" secondItem="qUY-bd-12a" secondAttribute="trailing" id="D70-FP-Nq8"/> + <constraint firstItem="qUY-bd-12a" firstAttribute="top" secondItem="hWr-Qo-jja" secondAttribute="bottom" constant="-20.333333333333314" id="MPP-xE-PLP"/> + <constraint firstItem="qUY-bd-12a" firstAttribute="top" secondItem="6Ga-8e-7nN" secondAttribute="top" constant="9.6699999999999999" id="Pdn-Bz-B41"/> + <constraint firstItem="hWr-Qo-jja" firstAttribute="top" secondItem="6Ga-8e-7nN" secondAttribute="top" id="R3n-Xg-IaD"/> + <constraint firstAttribute="bottom" secondItem="qUY-bd-12a" secondAttribute="bottom" id="bTs-HB-N9T"/> + <constraint firstItem="hWr-Qo-jja" firstAttribute="leading" secondItem="6Ga-8e-7nN" secondAttribute="leading" id="j9c-CZ-ZKn"/> + </constraints> + </view> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Cqx-6X-Ta1"> + <rect key="frame" x="190" y="375" width="179" height="149.33333333333337"/> + <subviews> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="1000" verticalHuggingPriority="1000" horizontalCompressionResistancePriority="1000" verticalCompressionResistancePriority="1000" text="5." textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="HGc-AJ-Prb"> + <rect key="frame" x="0.0" y="0.0" width="21.666666666666668" height="30"/> + <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="25"/> + <color key="textColor" red="0.96192914249999995" green="0.52479732040000004" blue="0.52205568550000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <nil key="highlightedColor"/> + </label> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="IEB-Rr-6ps"> + <rect key="frame" x="21.666666666666686" y="9.6666666666666288" width="157.33333333333334" height="139.66666666666666"/> + <string key="text">Always pay attention to your baby's breath. Do not squeeze the breast. Make the baby's butt closer to the your abdomen, and leave some space between your breast and your baby's nose</string> + <fontDescription key="fontDescription" type="system" pointSize="13"/> + <color key="textColor" red="0.19438669089999999" green="0.17716249819999999" blue="0.19208657740000001" 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 firstItem="HGc-AJ-Prb" firstAttribute="top" secondItem="Cqx-6X-Ta1" secondAttribute="top" id="8uu-L8-0AX"/> + <constraint firstItem="IEB-Rr-6ps" firstAttribute="top" secondItem="Cqx-6X-Ta1" secondAttribute="top" constant="9.6699999999999999" id="Q9Q-oF-6Ly"/> + <constraint firstItem="HGc-AJ-Prb" firstAttribute="leading" secondItem="Cqx-6X-Ta1" secondAttribute="leading" id="bJP-GP-PhJ"/> + <constraint firstItem="IEB-Rr-6ps" firstAttribute="leading" secondItem="HGc-AJ-Prb" secondAttribute="trailing" id="bbZ-zo-9Xw"/> + <constraint firstAttribute="trailing" secondItem="IEB-Rr-6ps" secondAttribute="trailing" id="bmu-1A-ZhL"/> + <constraint firstAttribute="bottom" secondItem="IEB-Rr-6ps" secondAttribute="bottom" id="hvS-io-ZdR"/> + <constraint firstItem="IEB-Rr-6ps" firstAttribute="top" secondItem="HGc-AJ-Prb" secondAttribute="bottom" constant="-20.333333333333314" id="mDB-FK-YsE"/> + <constraint firstAttribute="width" constant="179" id="qp8-7f-HME"/> + </constraints> + </view> + </subviews> + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> + <constraints> + <constraint firstItem="TbB-hz-Z4d" firstAttribute="top" secondItem="Oje-xy-mpe" secondAttribute="bottom" constant="-20.333333333333314" id="1Bk-RQ-pkt"/> + <constraint firstAttribute="trailing" secondItem="j6E-3U-jLn" secondAttribute="trailing" constant="1" id="36f-y0-ckD"/> + <constraint firstItem="osj-QP-Ah2" firstAttribute="top" secondItem="psm-S4-nuq" secondAttribute="top" constant="134" id="9iF-ks-LGh"/> + <constraint firstItem="j6E-3U-jLn" firstAttribute="leading" secondItem="miQ-tB-a7c" secondAttribute="trailing" constant="4" id="B5W-UY-aWe"/> + <constraint firstAttribute="width" constant="375" id="CSb-Nm-xQa"/> + <constraint firstItem="j6E-3U-jLn" firstAttribute="top" secondItem="LXf-JR-cPC" secondAttribute="top" id="Cqf-0y-BSF"/> + <constraint firstAttribute="trailing" secondItem="osj-QP-Ah2" secondAttribute="trailing" constant="110" id="D9R-V4-4du"/> + <constraint firstItem="6Ga-8e-7nN" firstAttribute="top" secondItem="8wW-lq-Bvf" secondAttribute="bottom" constant="8" symbolic="YES" id="GSK-uq-D0s"/> + <constraint firstItem="T6L-Sh-kff" firstAttribute="top" secondItem="psm-S4-nuq" secondAttribute="top" constant="166" id="Geg-tf-xGQ"/> + <constraint firstItem="WsC-Qn-Mq7" firstAttribute="top" secondItem="Oje-xy-mpe" secondAttribute="bottom" constant="8" id="GpB-XX-TBf"/> + <constraint firstItem="OFe-H9-oZH" firstAttribute="centerY" secondItem="psm-S4-nuq" secondAttribute="centerY" id="HlZ-JR-46F"/> + <constraint firstAttribute="bottom" secondItem="yxJ-cJ-2SQ" secondAttribute="bottom" constant="137" id="KyX-au-0aJ"/> + <constraint firstItem="Cqx-6X-Ta1" firstAttribute="leading" secondItem="yxJ-cJ-2SQ" secondAttribute="leading" id="Li8-3C-x2L"/> + <constraint firstAttribute="trailing" secondItem="OFe-H9-oZH" secondAttribute="trailing" id="N2E-dC-FCj"/> + <constraint firstAttribute="trailing" secondItem="WsC-Qn-Mq7" secondAttribute="trailing" constant="91" id="OiJ-MR-xvs"/> + <constraint firstAttribute="height" constant="500" id="P1K-RM-HzU"/> + <constraint firstAttribute="trailing" secondItem="yxJ-cJ-2SQ" secondAttribute="trailing" constant="158" id="Pe6-X1-oGC"/> + <constraint firstItem="rDC-YO-rUc" firstAttribute="leading" secondItem="psm-S4-nuq" secondAttribute="leading" constant="1" id="VwI-Nz-gwc"/> + <constraint firstItem="TbB-hz-Z4d" firstAttribute="leading" secondItem="Oje-xy-mpe" secondAttribute="trailing" constant="4" id="adC-aw-P7s"/> + <constraint firstAttribute="bottom" secondItem="8wW-lq-Bvf" secondAttribute="bottom" constant="133" id="ajy-JP-nzR"/> + <constraint firstAttribute="trailing" secondItem="TbB-hz-Z4d" secondAttribute="trailing" id="bCc-J1-pu0"/> + <constraint firstItem="LXf-JR-cPC" firstAttribute="top" secondItem="rDC-YO-rUc" secondAttribute="bottom" constant="-20.333333333333314" id="f8k-f1-eSz"/> + <constraint firstItem="T6L-Sh-kff" firstAttribute="leading" secondItem="psm-S4-nuq" secondAttribute="leading" constant="15" id="fiS-J1-MzK"/> + <constraint firstItem="OFe-H9-oZH" firstAttribute="leading" secondItem="psm-S4-nuq" secondAttribute="leading" id="hPP-kA-Quh"/> + <constraint firstItem="8wW-lq-Bvf" firstAttribute="leading" secondItem="psm-S4-nuq" secondAttribute="leading" constant="24" id="k4N-VS-OTA"/> + <constraint firstItem="6Ga-8e-7nN" firstAttribute="leading" secondItem="psm-S4-nuq" secondAttribute="leading" id="lwD-ME-gKT"/> + <constraint firstItem="LXf-JR-cPC" firstAttribute="leading" secondItem="rDC-YO-rUc" secondAttribute="trailing" constant="4" id="nZC-fc-gBl"/> + <constraint firstItem="j6E-3U-jLn" firstAttribute="top" secondItem="miQ-tB-a7c" secondAttribute="bottom" constant="-20.333333333333314" id="oG9-La-R8r"/> + <constraint firstItem="T6L-Sh-kff" firstAttribute="top" secondItem="LXf-JR-cPC" secondAttribute="bottom" constant="24" id="oso-Q0-O53"/> + <constraint firstItem="Cqx-6X-Ta1" firstAttribute="top" secondItem="6Ga-8e-7nN" secondAttribute="top" id="uJU-T9-13W"/> + <constraint firstItem="Oje-xy-mpe" firstAttribute="centerX" secondItem="WsC-Qn-Mq7" secondAttribute="centerX" id="wpC-UN-APr"/> + <constraint firstAttribute="bottom" secondItem="WsC-Qn-Mq7" secondAttribute="bottom" constant="204" id="yKE-B1-5au"/> + </constraints> + </view> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="xnb-wa-CHQ"> + <rect key="frame" x="55.333333333333343" y="736.33333333333337" width="279.33333333333326" height="50"/> + <constraints> + <constraint firstAttribute="width" secondItem="xnb-wa-CHQ" secondAttribute="height" multiplier="5.58974" id="I5p-Wg-3bh"/> + <constraint firstAttribute="height" constant="50" id="URd-7K-Lp1"/> + </constraints> + <fontDescription key="fontDescription" type="system" weight="heavy" pointSize="20"/> + <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> + <state key="normal" title="Start Now" 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="okAction:" destination="kbc-T2-Z4j" eventType="touchUpInside" id="ukf-Bw-3lq"/> + </connections> + </button> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="a0G-Ge-cAP"> + <rect key="frame" x="16" y="794.33333333333337" width="358" height="15.666666666666629"/> + <fontDescription key="fontDescription" type="system" pointSize="13"/> + <color key="textColor" red="0.19438669089999999" green="0.17716249819999999" blue="0.19208657740000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <nil key="highlightedColor"/> + </label> + <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="8" translatesAutoresizingMaskIntoConstraints="NO" id="ILt-6W-p4E"> + <rect key="frame" x="16" y="52" width="358" height="131.33333333333334"/> + <subviews> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Side-lying position" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="RZp-Ng-Szl"> + <rect key="frame" x="0.0" y="0.0" width="358" height="30"/> + <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="25"/> + <color key="textColor" red="0.96192914249999995" green="0.52479732040000004" blue="0.52205568550000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <nil key="highlightedColor"/> + </label> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="v9P-Dg-MR3"> + <rect key="frame" x="0.0" y="37.999999999999993" width="358" height="93.333333333333314"/> + <string key="text">It is suitable for mothers who are in the recovery period of cesarean section or mothers who have experienced episiotomy. It is easy for feeding at night, and it allows mothers to have a better rest and for babies to sleep better. Please pay attention to avoid the breast blocking baby's breath.</string> + <fontDescription key="fontDescription" type="system" weight="medium" pointSize="13"/> + <color key="textColor" red="0.96192914249999995" green="0.52479732040000004" blue="0.52205568550000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <nil key="highlightedColor"/> + </label> + </subviews> + </stackView> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="dUp-lH-41z"> + <rect key="frame" x="0.0" y="53" width="65.666666666666671" height="31"/> + <state key="normal" title="Button"/> + <buttonConfiguration key="configuration" style="plain" image="chevron.backward" catalog="system" title="返回"/> + <connections> + <action selector="back:" destination="2ZC-tX-YAa" eventType="touchUpInside" id="Mlz-Qb-g7f"/> + </connections> + </button> + </subviews> + <viewLayoutGuide key="safeArea" id="4f9-kO-9fn"/> + <color key="backgroundColor" systemColor="systemBackgroundColor"/> + <constraints> + <constraint firstItem="4f9-kO-9fn" firstAttribute="trailing" secondItem="ILt-6W-p4E" secondAttribute="trailing" constant="16" id="91e-tT-fno"/> + <constraint firstItem="4f9-kO-9fn" firstAttribute="bottom" secondItem="a0G-Ge-cAP" secondAttribute="bottom" id="9D8-vS-kpv"/> + <constraint firstItem="4f9-kO-9fn" firstAttribute="trailing" secondItem="a0G-Ge-cAP" secondAttribute="trailing" constant="16" id="9Vs-AS-7WY"/> + <constraint firstItem="ILt-6W-p4E" firstAttribute="leading" secondItem="4f9-kO-9fn" secondAttribute="leading" constant="16" id="CQ6-2u-ea3"/> + <constraint firstAttribute="bottom" secondItem="GyO-kl-JJO" secondAttribute="bottom" id="KTm-bP-xyM"/> + <constraint firstItem="psm-S4-nuq" firstAttribute="centerX" secondItem="0Uv-Gy-UmI" secondAttribute="centerX" id="Tuo-uj-Tn2"/> + <constraint firstItem="GyO-kl-JJO" firstAttribute="leading" secondItem="0Uv-Gy-UmI" secondAttribute="leading" id="UDf-gr-yYm"/> + <constraint firstItem="a0G-Ge-cAP" firstAttribute="leading" secondItem="4f9-kO-9fn" secondAttribute="leading" constant="16" id="WkA-CW-udd"/> + <constraint firstItem="xnb-wa-CHQ" firstAttribute="centerX" secondItem="0Uv-Gy-UmI" secondAttribute="centerX" id="bGp-zt-Exo"/> + <constraint firstItem="a0G-Ge-cAP" firstAttribute="top" secondItem="xnb-wa-CHQ" secondAttribute="bottom" constant="8" id="f1r-bN-5s8"/> + <constraint firstAttribute="trailing" secondItem="GyO-kl-JJO" secondAttribute="trailing" id="hu2-p7-asY"/> + <constraint firstItem="dUp-lH-41z" firstAttribute="top" secondItem="4f9-kO-9fn" secondAttribute="top" constant="9" id="ieN-BF-7Vq"/> + <constraint firstItem="ILt-6W-p4E" firstAttribute="top" secondItem="4f9-kO-9fn" secondAttribute="top" constant="8" id="sZi-Tg-VPZ"/> + <constraint firstItem="dUp-lH-41z" firstAttribute="leading" secondItem="4f9-kO-9fn" secondAttribute="leading" id="uMi-6w-J5m"/> + <constraint firstItem="GyO-kl-JJO" firstAttribute="top" secondItem="0Uv-Gy-UmI" secondAttribute="top" id="x4e-UT-fe4"/> + <constraint firstItem="psm-S4-nuq" firstAttribute="centerY" secondItem="0Uv-Gy-UmI" secondAttribute="centerY" id="y0h-zH-9tF"/> + </constraints> + </view> + <connections> + <outlet property="startBtn" destination="xnb-wa-CHQ" id="I4B-7F-7GI"/> + <outlet property="subtitleL" destination="v9P-Dg-MR3" id="ur5-rx-JLs"/> + <outlet property="text1L" destination="LXf-JR-cPC" id="kuA-pE-gX3"/> + <outlet property="text2L" destination="j6E-3U-jLn" id="fl1-Ny-muO"/> + <outlet property="text3L" destination="TbB-hz-Z4d" id="L2V-n2-5FO"/> + <outlet property="text4L" destination="qUY-bd-12a" id="3zV-j5-Ee7"/> + <outlet property="text5L" destination="IEB-Rr-6ps" id="1bI-Bu-oE2"/> + <outlet property="tipsL" destination="a0G-Ge-cAP" id="BVd-Pm-9uW"/> + <outlet property="titleL" destination="RZp-Ng-Szl" id="E7b-EX-mQt"/> + </connections> + </viewController> + <placeholder placeholderIdentifier="IBFirstResponder" id="teA-Om-LCe" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/> + </objects> + <point key="canvasLocation" x="-650.76923076923072" y="1217.0616113744074"/> + </scene> <!--Permission AlertVC--> <scene sceneID="Ft5-en-uZP"> <objects> <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"/> + <rect key="frame" x="0.0" y="0.0" width="390" height="844"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <subviews> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Bhz-fY-gEC"> - <rect key="frame" x="60" y="358" width="294" height="180.5"/> + <rect key="frame" x="60" y="331.66666666666669" width="270" height="180.66666666666669"/> <subviews> <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"/> + <rect key="frame" x="0.0" y="24" width="270" 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"/> + <rect key="frame" x="16" y="71" width="238" height="21.666666666666671"/> <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"/> + <rect key="frame" x="23.333333333333329" y="116.66666666666663" width="223.33333333333337" height="40"/> <constraints> <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"/> @@ -765,32 +1044,32 @@ <objects> <viewController storyboardIdentifier="CompleteVC" id="kbc-T2-Z4j" customClass="CompleteVC" customModule="BreastFeedingDemo" customModuleProvider="target" sceneMemberID="viewController"> <view key="view" contentMode="scaleToFill" id="z71-uq-A9X"> - <rect key="frame" x="0.0" y="0.0" width="414" height="896"/> + <rect key="frame" x="0.0" y="0.0" width="390" height="844"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <subviews> <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" image="message-entry-fullbg" translatesAutoresizingMaskIntoConstraints="NO" id="hnl-sp-Qoi"> - <rect key="frame" x="0.0" y="0.0" width="414" height="896.5"/> + <rect key="frame" x="0.0" y="0.0" width="390" height="844.33333333333337"/> <constraints> <constraint firstAttribute="width" secondItem="hnl-sp-Qoi" secondAttribute="height" multiplier="375:812" id="ujd-9I-Qnh"/> </constraints> </imageView> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Hhw-cG-Fcy"> - <rect key="frame" x="24" y="348" width="366" height="200"/> + <rect key="frame" x="24" y="322" width="342" height="200"/> <subviews> <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="center" spacing="36" translatesAutoresizingMaskIntoConstraints="NO" id="pqD-mn-5kx"> - <rect key="frame" x="72" y="49" width="222" height="102"/> + <rect key="frame" x="59.666666666666671" y="49" width="222.66666666666663" height="102"/> <subviews> <stackView opaque="NO" contentMode="scaleToFill" alignment="center" spacing="18" translatesAutoresizingMaskIntoConstraints="NO" id="MSB-gJ-7zl"> - <rect key="frame" x="0.0" y="0.0" width="222" height="30"/> + <rect key="frame" x="0.0" y="0.0" width="222.66666666666666" height="30"/> <subviews> <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" image="massage-complete-title-icon" translatesAutoresizingMaskIntoConstraints="NO" id="oXV-Gy-HSk"> - <rect key="frame" x="0.0" y="0.0" width="45.5" height="30"/> + <rect key="frame" x="0.0" y="0.0" width="46" height="30"/> <constraints> <constraint firstAttribute="width" secondItem="oXV-Gy-HSk" secondAttribute="height" multiplier="26:17" id="mOK-98-KKU"/> </constraints> </imageView> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Congratulations" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Xvm-3y-De7"> - <rect key="frame" x="63.5" y="2.5" width="158.5" height="25.5"/> + <rect key="frame" x="63.999999999999986" y="2.3333333333333144" width="158.66666666666663" height="25.333333333333332"/> <fontDescription key="fontDescription" type="boldSystem" pointSize="21"/> <color key="textColor" red="0.96078431372549022" green="0.52549019607843139" blue="0.52156862745098043" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <nil key="highlightedColor"/> @@ -801,7 +1080,7 @@ </constraints> </stackView> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Nee-0V-QG4"> - <rect key="frame" x="10.5" y="66" width="201" height="36"/> + <rect key="frame" x="10.666666666666657" y="66" width="201.33333333333334" height="36"/> <constraints> <constraint firstAttribute="width" secondItem="Nee-0V-QG4" secondAttribute="height" multiplier="5.58974" id="k5B-7F-tUq"/> <constraint firstAttribute="height" constant="36" id="tum-aY-BTv"/> @@ -852,7 +1131,7 @@ <objects> <navigationController id="sh4-Ff-iOb" sceneMemberID="viewController"> <navigationBar key="navigationBar" contentMode="scaleToFill" id="Taj-fv-Fxb"> - <rect key="frame" x="0.0" y="44" width="414" height="44"/> + <rect key="frame" x="0.0" y="44" width="390" height="44"/> <autoresizingMask key="autoresizingMask"/> </navigationBar> <connections> @@ -868,7 +1147,7 @@ <objects> <navigationController id="Wid-yi-NNM" sceneMemberID="viewController"> <navigationBar key="navigationBar" contentMode="scaleToFill" id="1zp-f1-jQK"> - <rect key="frame" x="0.0" y="44" width="414" height="44"/> + <rect key="frame" x="0.0" y="44" width="390" height="44"/> <autoresizingMask key="autoresizingMask"/> </navigationBar> <connections> @@ -879,8 +1158,278 @@ </objects> <point key="canvasLocation" x="-1694" y="-224"/> </scene> + <!--Cradle Hold LandingVC--> + <scene sceneID="q9M-a4-hgB"> + <objects> + <viewController storyboardIdentifier="CradleHoldLandingVC" id="ny1-NH-dmJ" customClass="CradleHoldLandingVC" customModule="BreastFeedingDemo" customModuleProvider="target" sceneMemberID="viewController"> + <view key="view" contentMode="scaleToFill" id="qXk-YW-KvN"> + <rect key="frame" x="0.0" y="0.0" width="390" height="844"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <subviews> + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" image="message-entry-fullbg" translatesAutoresizingMaskIntoConstraints="NO" id="tuB-k2-Cyv"> + <rect key="frame" x="0.0" y="0.0" width="390" height="844"/> + </imageView> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="v5z-dH-tLo"> + <rect key="frame" x="55.333333333333343" y="736.33333333333337" width="279.33333333333326" height="50"/> + <constraints> + <constraint firstAttribute="height" constant="50" id="GbN-sd-r53"/> + <constraint firstAttribute="width" secondItem="v5z-dH-tLo" secondAttribute="height" multiplier="5.58974" id="QFJ-wt-30w"/> + </constraints> + <fontDescription key="fontDescription" type="system" weight="heavy" pointSize="20"/> + <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> + <state key="normal" title="Start Now" 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="okAction:" destination="kbc-T2-Z4j" eventType="touchUpInside" id="fHv-G0-4fD"/> + </connections> + </button> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text=" " textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Mpe-0M-8jL"> + <rect key="frame" x="16" y="794.33333333333337" width="358" height="15.666666666666629"/> + <fontDescription key="fontDescription" type="system" pointSize="13"/> + <color key="textColor" red="0.19438669089999999" green="0.17716249819999999" blue="0.19208657740000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <nil key="highlightedColor"/> + </label> + <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="8" translatesAutoresizingMaskIntoConstraints="NO" id="wab-R9-Td9"> + <rect key="frame" x="16" y="52" width="358" height="53.666666666666657"/> + <subviews> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Side-lying position" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Cdp-Nn-mCO"> + <rect key="frame" x="0.0" y="0.0" width="358" height="30"/> + <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="25"/> + <color key="textColor" red="0.96192914249999995" green="0.52479732040000004" blue="0.52205568550000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <nil key="highlightedColor"/> + </label> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text=" " textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="F0m-kS-0cT"> + <rect key="frame" x="0.0" y="38" width="358" height="15.666666666666664"/> + <fontDescription key="fontDescription" type="system" weight="medium" pointSize="13"/> + <color key="textColor" red="0.96192914249999995" green="0.52479732040000004" blue="0.52205568550000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <nil key="highlightedColor"/> + </label> + </subviews> + </stackView> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Ro8-mz-Pz3"> + <rect key="frame" x="7.6666666666666572" y="172" width="375" height="500"/> + <subviews> + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" image="summaryWireframe" translatesAutoresizingMaskIntoConstraints="NO" id="mac-n1-a60"> + <rect key="frame" x="0.0" y="100" width="375" height="300"/> + <constraints> + <constraint firstAttribute="height" constant="300" id="zfp-dz-2fU"/> + </constraints> + </imageView> + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" image="summarylinelie1" translatesAutoresizingMaskIntoConstraints="NO" id="KAZ-wU-XsY"> + <rect key="frame" x="8" y="190" width="37" height="61"/> + <constraints> + <constraint firstAttribute="width" constant="37" id="4qz-fd-hr6"/> + <constraint firstAttribute="height" constant="61" id="Ds7-Z9-Eaa"/> + </constraints> + </imageView> + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" image="summarylinelie4" translatesAutoresizingMaskIntoConstraints="NO" id="d85-pF-tLl"> + <rect key="frame" x="33" y="346" width="44" height="69"/> + <constraints> + <constraint firstAttribute="width" constant="44" id="0iR-wy-HKK"/> + <constraint firstAttribute="height" constant="69" id="O0s-q5-vCt"/> + </constraints> + </imageView> + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" image="summaryrightbottom" translatesAutoresizingMaskIntoConstraints="NO" id="Xim-EQ-gJ2"> + <rect key="frame" x="228" y="346" width="30" height="79"/> + <constraints> + <constraint firstAttribute="height" constant="79" id="WOf-Zp-Wos"/> + <constraint firstAttribute="width" constant="30" id="h8G-bZ-Y50"/> + </constraints> + </imageView> + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" fixedFrame="YES" image="summaryrighttop" translatesAutoresizingMaskIntoConstraints="NO" id="vaR-yO-cPv"> + <rect key="frame" x="228" y="168" width="72" height="91"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + </imageView> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="g0A-25-uzV"> + <rect key="frame" x="0.0" y="109.33333333333331" width="179" height="72"/> + <subviews> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="1000" verticalHuggingPriority="1000" horizontalCompressionResistancePriority="1000" verticalCompressionResistancePriority="1000" text="1." textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="DsX-jH-wn4"> + <rect key="frame" x="0.0" y="0.0" width="18" height="30"/> + <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="25"/> + <color key="textColor" red="0.96192914249999995" green="0.52479732040000004" blue="0.52205568550000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <nil key="highlightedColor"/> + </label> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="r28-ez-yVC"> + <rect key="frame" x="18" y="9.6666666666666892" width="161" height="62.333333333333343"/> + <string key="text">Keep baby's head in higher position so you can see baby's face +</string> + <fontDescription key="fontDescription" type="system" pointSize="13"/> + <color key="textColor" red="0.19438669089999999" green="0.17716249819999999" blue="0.19208657740000001" 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 firstItem="r28-ez-yVC" firstAttribute="leading" secondItem="DsX-jH-wn4" secondAttribute="trailing" id="6O5-qh-dd4"/> + <constraint firstItem="DsX-jH-wn4" firstAttribute="top" secondItem="g0A-25-uzV" secondAttribute="top" id="Eed-ni-ziD"/> + <constraint firstAttribute="bottom" secondItem="r28-ez-yVC" secondAttribute="bottom" id="FxJ-j9-paO"/> + <constraint firstItem="r28-ez-yVC" firstAttribute="top" secondItem="g0A-25-uzV" secondAttribute="top" constant="9.6699999999999999" id="KiG-Di-vjR"/> + <constraint firstAttribute="trailing" secondItem="r28-ez-yVC" secondAttribute="trailing" id="L7m-2y-OHE"/> + <constraint firstItem="r28-ez-yVC" firstAttribute="top" secondItem="DsX-jH-wn4" secondAttribute="bottom" constant="-20.333333333333314" id="Rs4-Td-qff"/> + <constraint firstAttribute="width" constant="179" id="ra2-c4-GjI"/> + <constraint firstItem="DsX-jH-wn4" firstAttribute="leading" secondItem="g0A-25-uzV" secondAttribute="leading" id="zS9-Wx-IuD"/> + </constraints> + </view> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="c1W-rA-wiw"> + <rect key="frame" x="255" y="109.33333333333331" width="120" height="103"/> + <subviews> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="1000" verticalHuggingPriority="1000" horizontalCompressionResistancePriority="1000" verticalCompressionResistancePriority="1000" text="2." textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="sxU-xu-Ges"> + <rect key="frame" x="0.0" y="0.0" width="21.333333333333332" height="30"/> + <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="25"/> + <color key="textColor" red="0.96192914249999995" green="0.52479732040000004" blue="0.52205568550000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <nil key="highlightedColor"/> + </label> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="IDE-sg-Xll"> + <rect key="frame" x="21.333333333333321" y="9.6666666666666856" width="98.666666666666686" height="93.333333333333329"/> + <string key="text">Keep baby's head in higher position so you can see baby's face +</string> + <fontDescription key="fontDescription" type="system" pointSize="13"/> + <color key="textColor" red="0.19438669089999999" green="0.17716249819999999" blue="0.19208657740000001" 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 firstItem="sxU-xu-Ges" firstAttribute="top" secondItem="c1W-rA-wiw" secondAttribute="top" id="09a-fV-i1L"/> + <constraint firstAttribute="width" constant="120" id="Boa-jx-RiQ"/> + <constraint firstItem="IDE-sg-Xll" firstAttribute="top" secondItem="sxU-xu-Ges" secondAttribute="bottom" constant="-20.333333333333314" id="L6t-2H-tny"/> + <constraint firstItem="IDE-sg-Xll" firstAttribute="top" secondItem="c1W-rA-wiw" secondAttribute="top" constant="9.6699999999999999" id="NVa-uQ-u6T"/> + <constraint firstAttribute="trailing" secondItem="IDE-sg-Xll" secondAttribute="trailing" id="Pzt-Pb-XOR"/> + <constraint firstItem="IDE-sg-Xll" firstAttribute="leading" secondItem="sxU-xu-Ges" secondAttribute="trailing" id="giL-K8-1QA"/> + <constraint firstAttribute="bottom" secondItem="IDE-sg-Xll" secondAttribute="bottom" id="k0g-xh-Npi"/> + <constraint firstItem="sxU-xu-Ges" firstAttribute="leading" secondItem="c1W-rA-wiw" secondAttribute="leading" id="pLN-EH-31A"/> + </constraints> + </view> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="9fq-Fz-9Pp"> + <rect key="frame" x="0.0" y="415" width="200" height="56.333333333333314"/> + <subviews> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="1000" verticalHuggingPriority="1000" horizontalCompressionResistancePriority="1000" verticalCompressionResistancePriority="1000" text="3." textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="rus-BG-m6G"> + <rect key="frame" x="0.0" y="0.0" width="21.666666666666668" height="30"/> + <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="25"/> + <color key="textColor" red="0.96192914249999995" green="0.52479732040000004" blue="0.52205568550000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <nil key="highlightedColor"/> + </label> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Keep baby's head on your elbow, and do not restrict baby's head with your hand" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gjn-5T-0je"> + <rect key="frame" x="21.666666666666671" y="9.6666666666666252" width="178.33333333333331" height="46.666666666666657"/> + <fontDescription key="fontDescription" type="system" pointSize="13"/> + <color key="textColor" red="0.19438669089999999" green="0.17716249819999999" blue="0.19208657740000001" 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 firstItem="gjn-5T-0je" firstAttribute="top" secondItem="9fq-Fz-9Pp" secondAttribute="top" constant="9.6699999999999999" id="Eob-pl-0Fv"/> + <constraint firstAttribute="trailing" secondItem="gjn-5T-0je" secondAttribute="trailing" id="P7Z-2g-gHy"/> + <constraint firstItem="gjn-5T-0je" firstAttribute="leading" secondItem="rus-BG-m6G" secondAttribute="trailing" id="PvW-OQ-32i"/> + <constraint firstItem="rus-BG-m6G" firstAttribute="leading" secondItem="9fq-Fz-9Pp" secondAttribute="leading" id="Qc9-GO-lgC"/> + <constraint firstItem="rus-BG-m6G" firstAttribute="top" secondItem="9fq-Fz-9Pp" secondAttribute="top" id="awN-mo-JYB"/> + <constraint firstAttribute="width" constant="200" id="j2B-5R-hrh"/> + <constraint firstItem="gjn-5T-0je" firstAttribute="top" secondItem="rus-BG-m6G" secondAttribute="bottom" constant="-20.333333333333314" id="m9O-07-dFN"/> + <constraint firstAttribute="bottom" secondItem="gjn-5T-0je" secondAttribute="bottom" id="oSY-WN-kPD"/> + </constraints> + </view> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="pKq-Bf-QS4"> + <rect key="frame" x="205" y="415" width="170" height="72"/> + <subviews> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="1000" verticalHuggingPriority="1000" horizontalCompressionResistancePriority="1000" verticalCompressionResistancePriority="1000" text="4." textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="eHQ-sB-Xnw"> + <rect key="frame" x="0.0" y="0.0" width="22.333333333333332" height="30"/> + <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="25"/> + <color key="textColor" red="0.96192914249999995" green="0.52479732040000004" blue="0.52205568550000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <nil key="highlightedColor"/> + </label> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Keep baby's head on your elbow, and do not restrict baby's head with your hand" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="7vh-ye-96n"> + <rect key="frame" x="22.333333333333343" y="9.6666666666666323" width="147.66666666666666" height="62.333333333333343"/> + <fontDescription key="fontDescription" type="system" pointSize="13"/> + <color key="textColor" red="0.19438669089999999" green="0.17716249819999999" blue="0.19208657740000001" 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="bottom" secondItem="7vh-ye-96n" secondAttribute="bottom" id="7Og-N8-LIH"/> + <constraint firstItem="7vh-ye-96n" firstAttribute="top" secondItem="pKq-Bf-QS4" secondAttribute="top" constant="9.6699999999999999" id="9fz-2h-qna"/> + <constraint firstItem="7vh-ye-96n" firstAttribute="top" secondItem="eHQ-sB-Xnw" secondAttribute="bottom" constant="-20.333333333333314" id="I8P-l8-sWt"/> + <constraint firstAttribute="trailing" secondItem="7vh-ye-96n" secondAttribute="trailing" id="YBf-ig-XYu"/> + <constraint firstItem="eHQ-sB-Xnw" firstAttribute="top" secondItem="pKq-Bf-QS4" secondAttribute="top" id="bmX-L0-SRb"/> + <constraint firstAttribute="width" constant="170" id="d2m-bV-Zjv"/> + <constraint firstItem="eHQ-sB-Xnw" firstAttribute="leading" secondItem="pKq-Bf-QS4" secondAttribute="leading" id="eR3-iI-pDc"/> + <constraint firstItem="7vh-ye-96n" firstAttribute="leading" secondItem="eHQ-sB-Xnw" secondAttribute="trailing" id="ydj-EG-d07"/> + </constraints> + </view> + </subviews> + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> + <constraints> + <constraint firstItem="mac-n1-a60" firstAttribute="centerY" secondItem="Ro8-mz-Pz3" secondAttribute="centerY" id="3zR-wh-rDJ"/> + <constraint firstItem="c1W-rA-wiw" firstAttribute="top" secondItem="g0A-25-uzV" secondAttribute="top" id="4aI-uN-Cud"/> + <constraint firstAttribute="width" constant="375" id="6dN-BY-scY"/> + <constraint firstAttribute="trailing" secondItem="c1W-rA-wiw" secondAttribute="trailing" id="7C7-P8-iU5"/> + <constraint firstItem="d85-pF-tLl" firstAttribute="leading" secondItem="Ro8-mz-Pz3" secondAttribute="leading" constant="33" id="9C8-aq-yIE"/> + <constraint firstAttribute="trailing" secondItem="pKq-Bf-QS4" secondAttribute="trailing" id="H5Y-06-3be"/> + <constraint firstItem="9fq-Fz-9Pp" firstAttribute="top" secondItem="d85-pF-tLl" secondAttribute="bottom" id="Pi0-WJ-Ffv"/> + <constraint firstAttribute="bottom" secondItem="d85-pF-tLl" secondAttribute="bottom" constant="85" id="SQj-C6-jB8"/> + <constraint firstItem="mac-n1-a60" firstAttribute="leading" secondItem="Ro8-mz-Pz3" secondAttribute="leading" id="T1Q-jv-XCy"/> + <constraint firstItem="KAZ-wU-XsY" firstAttribute="top" secondItem="Ro8-mz-Pz3" secondAttribute="top" constant="190" id="TpE-cY-gqA"/> + <constraint firstItem="pKq-Bf-QS4" firstAttribute="top" secondItem="9fq-Fz-9Pp" secondAttribute="top" id="cfF-Si-BvS"/> + <constraint firstItem="KAZ-wU-XsY" firstAttribute="top" secondItem="g0A-25-uzV" secondAttribute="bottom" constant="8.6666666666666856" id="d8i-sw-MR4"/> + <constraint firstAttribute="trailing" secondItem="mac-n1-a60" secondAttribute="trailing" id="dAQ-hO-vjJ"/> + <constraint firstItem="9fq-Fz-9Pp" firstAttribute="leading" secondItem="Ro8-mz-Pz3" secondAttribute="leading" id="eL0-JG-sTE"/> + <constraint firstItem="g0A-25-uzV" firstAttribute="leading" secondItem="Ro8-mz-Pz3" secondAttribute="leading" id="eq4-b4-cOC"/> + <constraint firstAttribute="bottom" secondItem="Xim-EQ-gJ2" secondAttribute="bottom" constant="75" id="hRg-kJ-ktJ"/> + <constraint firstAttribute="trailing" secondItem="Xim-EQ-gJ2" secondAttribute="trailing" constant="117" id="pJ7-ZP-YBQ"/> + <constraint firstAttribute="height" constant="500" id="wSQ-ty-gAj"/> + <constraint firstItem="KAZ-wU-XsY" firstAttribute="leading" secondItem="Ro8-mz-Pz3" secondAttribute="leading" constant="8" id="z4D-iR-bXR"/> + </constraints> + </view> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="CVa-MV-JZw"> + <rect key="frame" x="0.0" y="53" width="65.666666666666671" height="31"/> + <state key="normal" title="Button"/> + <buttonConfiguration key="configuration" style="plain" image="chevron.backward" catalog="system" title="返回"/> + <connections> + <action selector="back:" destination="ny1-NH-dmJ" eventType="touchUpInside" id="jRT-Py-5go"/> + </connections> + </button> + </subviews> + <viewLayoutGuide key="safeArea" id="doz-TF-7pp"/> + <color key="backgroundColor" systemColor="systemBackgroundColor"/> + <constraints> + <constraint firstItem="Mpe-0M-8jL" firstAttribute="top" secondItem="v5z-dH-tLo" secondAttribute="bottom" constant="8" id="28v-nq-Oxk"/> + <constraint firstItem="Ro8-mz-Pz3" firstAttribute="centerX" secondItem="qXk-YW-KvN" secondAttribute="centerX" id="6Hh-8c-FOk"/> + <constraint firstItem="tuB-k2-Cyv" firstAttribute="top" secondItem="qXk-YW-KvN" secondAttribute="top" id="8Fh-if-ObH"/> + <constraint firstItem="tuB-k2-Cyv" firstAttribute="leading" secondItem="qXk-YW-KvN" secondAttribute="leading" id="9Ub-Ej-yvb"/> + <constraint firstItem="doz-TF-7pp" firstAttribute="bottom" secondItem="Mpe-0M-8jL" secondAttribute="bottom" id="ARx-LC-V48"/> + <constraint firstAttribute="trailing" secondItem="tuB-k2-Cyv" secondAttribute="trailing" id="CqO-R9-n4E"/> + <constraint firstItem="CVa-MV-JZw" firstAttribute="top" secondItem="doz-TF-7pp" secondAttribute="top" constant="9" id="Fwf-mn-ADj"/> + <constraint firstItem="doz-TF-7pp" firstAttribute="trailing" secondItem="Mpe-0M-8jL" secondAttribute="trailing" constant="16" id="Mre-jg-fLL"/> + <constraint firstItem="Mpe-0M-8jL" firstAttribute="leading" secondItem="doz-TF-7pp" secondAttribute="leading" constant="16" id="Nf3-Mf-dIA"/> + <constraint firstItem="wab-R9-Td9" firstAttribute="centerX" secondItem="qXk-YW-KvN" secondAttribute="centerX" id="NfH-5u-SPV"/> + <constraint firstItem="CVa-MV-JZw" firstAttribute="leading" secondItem="doz-TF-7pp" secondAttribute="leading" id="QNQ-A9-7QR"/> + <constraint firstItem="doz-TF-7pp" firstAttribute="trailing" secondItem="wab-R9-Td9" secondAttribute="trailing" constant="16" id="Syw-8P-tv7"/> + <constraint firstItem="wab-R9-Td9" firstAttribute="leading" secondItem="doz-TF-7pp" secondAttribute="leading" constant="16" id="UHq-t7-3ZK"/> + <constraint firstAttribute="bottom" secondItem="tuB-k2-Cyv" secondAttribute="bottom" id="ZOK-Tl-xCh"/> + <constraint firstItem="Ro8-mz-Pz3" firstAttribute="centerY" secondItem="qXk-YW-KvN" secondAttribute="centerY" id="fS0-jz-edB"/> + <constraint firstItem="wab-R9-Td9" firstAttribute="top" secondItem="doz-TF-7pp" secondAttribute="top" constant="8" id="kvE-bo-oG5"/> + <constraint firstItem="v5z-dH-tLo" firstAttribute="centerX" secondItem="qXk-YW-KvN" secondAttribute="centerX" id="yD7-D6-VMf"/> + </constraints> + </view> + <connections> + <outlet property="startBtn" destination="v5z-dH-tLo" id="YwD-iY-V5b"/> + <outlet property="subtitleL" destination="F0m-kS-0cT" id="tt0-jL-W6m"/> + <outlet property="text1L" destination="r28-ez-yVC" id="2aJ-hW-dEG"/> + <outlet property="text2L" destination="IDE-sg-Xll" id="hMi-wM-l4D"/> + <outlet property="text3L" destination="gjn-5T-0je" id="mhu-rx-GtY"/> + <outlet property="text4L" destination="7vh-ye-96n" id="L3g-qo-Zkw"/> + <outlet property="tipsL" destination="Mpe-0M-8jL" id="8TM-88-4SY"/> + <outlet property="titleL" destination="Cdp-Nn-mCO" id="iaY-Ja-69v"/> + </connections> + </viewController> + <placeholder placeholderIdentifier="IBFirstResponder" id="nMp-te-phK" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/> + </objects> + <point key="canvasLocation" x="490.76923076923077" y="1216.3507109004738"/> + </scene> </scenes> <resources> + <image name="chevron.backward" catalog="system" width="96" height="128"/> <image name="home-gesture-1.e0d3ede0" width="691" height="352"/> <image name="home-gesture-2.7606109a" width="691" height="352"/> <image name="icon_global" width="62" height="62"/> @@ -890,6 +1439,14 @@ <image name="noselect" width="14" height="11"/> <image name="popup" width="12" height="13"/> <image name="select" width="14" height="11"/> + <image name="summaryWireframe" width="596" height="548"/> + <image name="summaryWireframeLie" width="718" height="362"/> + <image name="summarylinelie1" width="35" height="128"/> + <image name="summarylinelie2" width="100" height="218"/> + <image name="summarylinelie4" width="71" height="103"/> + <image name="summarylinelie5" width="2" height="132"/> + <image name="summaryrightbottom" width="58" height="127"/> + <image name="summaryrighttop" width="84" height="164"/> <image name="swiper1big_new" width="750" height="1028"/> <systemColor name="separatorColor"> <color red="0.23529411764705882" green="0.23529411764705882" blue="0.2627450980392157" alpha="0.28999999999999998" colorSpace="custom" customColorSpace="sRGB"/> diff --git a/BreastFeedingDemo/ViewController/CompleteVC.swift b/BreastFeedingDemo/ViewController/CompleteVC.swift index 68ac758eee01bebdec5c7acc9f6cdbb88bff0f86..44d7f97734051e632d0979a4f8ba7cb8ead53cb9 100644 --- a/BreastFeedingDemo/ViewController/CompleteVC.swift +++ b/BreastFeedingDemo/ViewController/CompleteVC.swift @@ -16,8 +16,8 @@ class CompleteVC: UIViewController { super.viewDidLoad() overrideUserInterfaceStyle = .light containerV.layer.cornerRadius = 8 - titleL.text = viewModel.string.completeText - btn.setTitle(viewModel.string.cameraButtonText, for: .normal) + titleL.text = getString().completeText + btn.setTitle(getString().cameraButtonText, for: .normal) } @IBAction func okAction(_: Any) { diff --git a/BreastFeedingDemo/ViewController/CradleHoldLandingVC.swift b/BreastFeedingDemo/ViewController/CradleHoldLandingVC.swift new file mode 100644 index 0000000000000000000000000000000000000000..1d97aa6a81fe1299682a9ed8a470ec213e740eb9 --- /dev/null +++ b/BreastFeedingDemo/ViewController/CradleHoldLandingVC.swift @@ -0,0 +1,40 @@ +// +// CradleHoldLandingVC.swift +// BreastFeedingDemo +// +// Created by Jie Zhang on 2022/10/6. +// + +import UIKit + +class CradleHoldLandingVC: UIViewController { + @IBOutlet weak var titleL: UILabel! + + @IBOutlet weak var subtitleL: UILabel! + @IBOutlet weak var text1L: UILabel! + @IBOutlet weak var text2L: UILabel! + @IBOutlet weak var text3L: UILabel! + @IBOutlet weak var text4L: UILabel! + + @IBOutlet weak var tipsL: UILabel! + @IBOutlet weak var startBtn: UIButton! + override func viewDidLoad() { + super.viewDidLoad() + setupUI() + } + + @IBAction func back(_ sender: Any) { + navigationController?.popViewController(animated: true) + } + + fileprivate func setupUI() { + titleL.text = getString().sittingGestureIntroduce.title + subtitleL.text = getString().sittingGestureIntroduce.subTitle + text1L.text = getString().sittingGestureIntroduce.suggestedText1 + text2L.text = getString().sittingGestureIntroduce.suggestedText2 + text3L.text = getString().sittingGestureIntroduce.suggestedText3 + text4L.text = getString().sittingGestureIntroduce.suggestedText4 + + startBtn.setTitle(getString().homeButtonText, for: .normal) + } +} diff --git a/BreastFeedingDemo/ViewController/DemoViewController.swift b/BreastFeedingDemo/ViewController/DemoViewController.swift index 3694cc9b9735b112a4ab579e78c712105444d027..de8215ff684f561e3766719b83af2e9950c29601 100644 --- a/BreastFeedingDemo/ViewController/DemoViewController.swift +++ b/BreastFeedingDemo/ViewController/DemoViewController.swift @@ -22,7 +22,7 @@ class DemoViewController: UIViewController { @IBOutlet weak var sittingTitleL: UILabel! @IBOutlet weak var sittingSubtitleL: UILabel! - + @IBOutlet weak var lyingTitleL: UILabel! @IBOutlet weak var lyingSubtitleL: UILabel! @IBOutlet weak var topConstraint: NSLayoutConstraint! @@ -39,22 +39,22 @@ class DemoViewController: UIViewController { updateUI() flutterInitialize() } - + override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) topConstraint.constant = view.safeAreaInsets.top } fileprivate func updateUI() { - titleL.text = viewModel.string.homeTitle - stepL1.text = viewModel.string.homeText1 - stepL2.text = viewModel.string.homeText2 - stepL3.text = viewModel.string.homeText3 - - sittingTitleL.text = viewModel.string.sittingGesture.title - sittingSubtitleL.text = viewModel.string.sittingGesture.subTitle - lyingTitleL.text = viewModel.string.lyingGesture.title - lyingSubtitleL.text = viewModel.string.lyingGesture.subTitle + titleL.text = getString().homeTitle + stepL1.text = getString().homeText1 + stepL2.text = getString().homeText2 + stepL3.text = getString().homeText3 + + sittingTitleL.text = getString().sittingGesture.title + sittingSubtitleL.text = getString().sittingGesture.subTitle + lyingTitleL.text = getString().lyingGesture.title + lyingSubtitleL.text = getString().lyingGesture.subTitle } /// åˆ‡æ¢æ ¹æ®é€‰æ‹©çš„è¯è¨€æ›´æ–°UI @@ -129,7 +129,19 @@ class DemoViewController: UIViewController { navigationController?.pushViewController(vc, animated: true) } - @IBAction func cradleHold(_: Any) { + func toSideLyingLandingVC() { + let sb = UIStoryboard(name: "Main", bundle: nil) + let vc = sb.instantiateViewController(withIdentifier: "SideLyingLandingVC") as! SideLyingLandingVC + navigationController?.pushViewController(vc, animated: true) + } + + func toCradleHoldLandingVC() { + let sb = UIStoryboard(name: "Main", bundle: nil) + let vc = sb.instantiateViewController(withIdentifier: "CradleHoldLandingVC") as! CradleHoldLandingVC + navigationController?.pushViewController(vc, animated: true) + } + + @IBAction func sideLyingAction(_ sender: Any) { if checkCameraPermission() == false { return } @@ -138,15 +150,32 @@ class DemoViewController: UIViewController { methodChannel?.invokeMethod("reload", arguments: nil) } isFirstLoad = false - if let flutterEngine = (UIApplication.shared.delegate as? AppDelegate)?.flutterEngine { - let scanVC = FlutterViewController(engine: flutterEngine, nibName: nil, bundle: nil) - scanVC.modalPresentationStyle = .overFullScreen - navigationController?.pushViewController(scanVC, animated: true) + + toSideLyingLandingVC() + } + + @IBAction func cradleHold(_: Any) { + if checkCameraPermission() == false { + return + } + + if !isFirstLoad { + methodChannel?.invokeMethod("reload", arguments: nil) } + isFirstLoad = false + + toCradleHoldLandingVC() + +// if let flutterEngine = (UIApplication.shared.delegate as? AppDelegate)?.flutterEngine { +// let scanVC = FlutterViewController(engine: flutterEngine, nibName: nil, bundle: nil) +// scanVC.modalPresentationStyle = .overFullScreen +// navigationController?.pushViewController(scanVC, animated: true) +// } } } extension DemoViewController { + /// 切æ¢è¯è¨€ @IBAction func switchLanguageAction(_ sender: UIButton) { let tableView = UITableView(frame: CGRect(x: 0, y: 0, width: 100, height: 135)) tableView.isScrollEnabled = false diff --git a/BreastFeedingDemo/ViewController/PermissionAlertVC.swift b/BreastFeedingDemo/ViewController/PermissionAlertVC.swift index 09a92970f066145ee9e8d6daf62ecf063cf3472e..97e35a22eb46dc8f7542ca74167ee393cbb8951c 100644 --- a/BreastFeedingDemo/ViewController/PermissionAlertVC.swift +++ b/BreastFeedingDemo/ViewController/PermissionAlertVC.swift @@ -16,9 +16,9 @@ class PermissionAlertVC: UIViewController { override func viewDidLoad() { super.viewDidLoad() overrideUserInterfaceStyle = .light - permissionText.text = viewModel.string.cameraText1 - permissionTitle.text = viewModel.string.cameraText - permissionOKBtn.setTitle(viewModel.string.cameraButtonText, for: .normal) + permissionText.text = getString().cameraText1 + permissionTitle.text = getString().cameraText + permissionOKBtn.setTitle(getString().cameraButtonText, for: .normal) permissionPanel.layer.cornerRadius = 8 permissionPanel.clipsToBounds = true diff --git a/BreastFeedingDemo/ViewController/SideLyingLandingVC.swift b/BreastFeedingDemo/ViewController/SideLyingLandingVC.swift new file mode 100644 index 0000000000000000000000000000000000000000..4d1211961debef7ce5bb094b201ad75cb57b117d --- /dev/null +++ b/BreastFeedingDemo/ViewController/SideLyingLandingVC.swift @@ -0,0 +1,42 @@ +// +// SideLyingLandingVC.swift +// BreastFeedingDemo +// +// Created by Jie Zhang on 2022/10/6. +// + +import UIKit + +class SideLyingLandingVC: UIViewController { + @IBOutlet weak var titleL: UILabel! + + @IBOutlet weak var subtitleL: UILabel! + @IBOutlet weak var text1L: UILabel! + @IBOutlet weak var text2L: UILabel! + @IBOutlet weak var text3L: UILabel! + @IBOutlet weak var text4L: UILabel! + @IBOutlet weak var text5L: UILabel! + + @IBOutlet weak var tipsL: UILabel! + @IBOutlet weak var startBtn: UIButton! + override func viewDidLoad() { + super.viewDidLoad() + + setupUI() + } + + @IBAction func back(_ sender: Any) { + navigationController?.popViewController(animated: true) + } + fileprivate func setupUI() { + titleL.text = getString().lyingGestureIntroduce.title + subtitleL.text = getString().lyingGestureIntroduce.subTitle + text1L.text = getString().lyingGestureIntroduce.suggestedText1 + text2L.text = getString().lyingGestureIntroduce.suggestedText2 + text3L.text = getString().lyingGestureIntroduce.suggestedText3 + text4L.text = getString().lyingGestureIntroduce.suggestedText4 + text5L.text = getString().lyingGestureIntroduce.suggestedText5 + startBtn.setTitle(getString().homeButtonText, for: .normal) + tipsL.text = getString().lyingGestureIntroduce.tipsText + } +} diff --git a/BreastFeedingDemo/ViewModel.swift b/BreastFeedingDemo/ViewModel.swift index 2e83ae0059ec34d516b1026c098141fc2eaad63b..5f8472ed79cdc694e3b3e233db661d2487684ac9 100644 --- a/BreastFeedingDemo/ViewModel.swift +++ b/BreastFeedingDemo/ViewModel.swift @@ -24,19 +24,8 @@ class ViewModel { setupText() } } - - var string: StringModel! -// var landingPageTitle: String? -// var landingPageStep1: String? -// var landingPageStep2: String? -// var landingPageStep3: String? -// var landingPageStart: String? -// var congratulation: String? -// var completeBtn: String? -// var cameraText: String? -// var cameraText1: String? -// var cameraButtonText: String? + var string: StringModel! var languagePack: [String: Any] { let languageFile = "\(language)".appending(".json") @@ -71,43 +60,7 @@ class ViewModel { let nsUrl = URL(fileURLWithPath: path) let nsData = try! Data(contentsOf: nsUrl) let json = try! JSONSerialization.jsonObject(with: nsData) as! [String: Any] - + string = .init(fromDictionary: json) - -// switch language { -// case .english: -// landingPageTitle = "Breastfeeding posture AI coach" -// landingPageStep1 = "Put your device on a stable surface" -// landingPageStep2 = "Keep one meter away from the camera, and fit your body into the guide line. Session starts in 5 seconds after you click \"Start Now\" button" -// landingPageStep3 = "Camera permission is needed for AI coach. Your clothes will not affect the AI coach" -// landingPageStart = "Start Now" -// congratulation = "Congratulations!" -// completeBtn = "OK" -// cameraText = "Camera not detected" -// cameraText1 = "Camera disabled. Please grant camera permission first!" -// cameraButtonText = "OK" -// case .français: -// landingPageTitle = "Coach AI en posture d'allaitement" -// landingPageStep1 = "Placez votre appareil sur une surface stable" -// landingPageStep2 = "Tenez-vous à un mètre de la caméra et placez votre corps dans la ligne de guidage. La session démarre dans 5 secondes après avoir cliqué sur le bouton \"Démarrer maintenant\"" -// landingPageStep3 = "L'autorisation de la caméra est nécessaire pour l'entraîneur AI. Vos vêtements n'affecteront pas l'entraîneur AI" -// landingPageStart = "Commencez maintenant" -// congratulation = "Toutes nos félicitations!" -// completeBtn = "OK" -// cameraText = "Caméra non détectée" -// cameraText1 = "Caméra désactivée. Veuillez d'abord accorder l'autorisation de la caméra !" -// cameraButtonText = "OK" -// case .español: -// landingPageTitle = "Asistente de AI de postura de lactancia" -// landingPageStep1 = "Coloque su dispositivo en una superficie estable" -// landingPageStep2 = "Manténgase a un metro de distancia de la cámara y coloque su cuerpo en la lÃnea. La sesión comienza en 5 segundos después de hacer clic en el botón \"Comenzar ahora\"" -// landingPageStep3 = "Se necesita permiso para acceder a la cámara para el asistente de IA. Su ropa no afectará al asistente de IA" -// landingPageStart = "Empezar ahora" -// congratulation = "¡Felicidades!" -// completeBtn = "DE ACUERDO" -// cameraText = "Cámara no detectada" -// cameraText1 = "Cámara desactivada. ¡Por favor, conceda permiso a la cámara primero!" -// cameraButtonText = "DE ACUERDO" -// } } } diff --git a/Utilities/MyTools.swift b/Utilities/MyTools.swift index c973832162e7a9d5c22097d15f9f12cd1a7872cd..8a8f711930316adcb6a21138867f8b0e8d1546ff 100644 --- a/Utilities/MyTools.swift +++ b/Utilities/MyTools.swift @@ -50,6 +50,9 @@ extension UIApplication { } let viewModel = ViewModel.init() +func getString() -> StringModel { + return viewModel.string! +} let mainColor = hexStringToUIColor(hex: "F58685") let blackColor = hexStringToUIColor(hex: "322D31")