Puppet: update help

Update help view to allow images...
This commit is contained in:
Antonio 2020-02-08 11:41:12 +01:00
parent 0bf2400b88
commit f75db839ff
18 changed files with 147 additions and 97 deletions

View file

@ -1347,7 +1347,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 11;
CURRENT_PROJECT_VERSION = 12;
DEVELOPMENT_TEAM = 2X94RM7457;
INFOPLIST_FILE = BluefruitPlayground/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
@ -1372,7 +1372,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 11;
CURRENT_PROJECT_VERSION = 12;
DEVELOPMENT_TEAM = 2X94RM7457;
INFOPLIST_FILE = BluefruitPlayground/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
@ -1436,7 +1436,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 11;
CURRENT_PROJECT_VERSION = 12;
DEVELOPMENT_TEAM = 2X94RM7457;
INFOPLIST_FILE = "BluefruitPlayground-SimulatedBluetooth-Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
@ -1462,7 +1462,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 11;
CURRENT_PROJECT_VERSION = 12;
DEVELOPMENT_TEAM = 2X94RM7457;
INFOPLIST_FILE = "BluefruitPlayground-SimulatedBluetooth-Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 12.0;

View file

@ -0,0 +1,26 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "puppet_hand.png",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "puppet_hand@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "puppet_hand@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
},
"properties" : {
"template-rendering-intent" : "template"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 309 KiB

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 495 KiB

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 94 KiB

View file

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="15702" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
<device id="retina6_1" orientation="portrait" appearance="light"/>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="15705" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
<device id="retina5_9" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="15704"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="15706"/>
<capability name="Named colors" minToolsVersion="9.0"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
@ -14,11 +14,11 @@
<objects>
<viewController id="01J-lp-oVM" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
<rect key="frame" x="0.0" y="0.0" width="375" height="812"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="welcome_logo" translatesAutoresizingMaskIntoConstraints="NO" id="G6Y-2j-Kh5">
<rect key="frame" x="20" y="44" width="374" height="818"/>
<rect key="frame" x="16" y="44" width="343" height="734"/>
</imageView>
</subviews>
<color key="backgroundColor" name="main"/>
@ -37,7 +37,7 @@
</scene>
</scenes>
<resources>
<image name="welcome_logo" width="1080" height="1080"/>
<image name="welcome_logo" width="343" height="343"/>
<namedColor name="main">
<color red="0.0" green="0.62000000476837158" blue="0.88200002908706665" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</namedColor>

View file

@ -194,10 +194,10 @@
</connections>
</containerView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="xKj-ea-39A">
<rect key="frame" x="8" y="263" width="76" height="152"/>
<rect key="frame" x="8" y="327" width="44" height="88"/>
<subviews>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ga4-d9-1lz">
<rect key="frame" x="0.0" y="0.0" width="76" height="76"/>
<rect key="frame" x="0.0" y="0.0" width="44" height="44"/>
<inset key="contentEdgeInsets" minX="6" minY="6" maxX="6" maxY="6"/>
<state key="normal" image="circuit_all"/>
<connections>
@ -205,7 +205,7 @@
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="xLL-a0-gwf">
<rect key="frame" x="0.0" y="76" width="76" height="76"/>
<rect key="frame" x="0.0" y="44" width="44" height="44"/>
<inset key="contentEdgeInsets" minX="6" minY="6" maxX="6" maxY="6"/>
<state key="normal" image="circuit_clear"/>
<connections>
@ -215,7 +215,7 @@
</subviews>
</stackView>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="12T-bB-WIy">
<rect key="frame" x="330" y="339" width="76" height="76"/>
<rect key="frame" x="362" y="371" width="44" height="44"/>
<inset key="contentEdgeInsets" minX="6" minY="6" maxX="6" maxY="6"/>
<state key="normal" image="circuit_reset"/>
<connections>
@ -673,10 +673,10 @@
</constraints>
</view>
<stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" spacing="30" translatesAutoresizingMaskIntoConstraints="NO" id="FYu-kC-2q0">
<rect key="frame" x="70" y="730" width="274" height="44"/>
<rect key="frame" x="74" y="730" width="266" height="44"/>
<subviews>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="nxH-er-ZBM" customClass="CornerShadowButton" customModule="BluefruitPlayground_SimulateBluetooth" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="46" height="44"/>
<rect key="frame" x="0.0" y="0.0" width="44" height="44"/>
<constraints>
<constraint firstAttribute="width" relation="greaterThanOrEqual" constant="44" id="LHV-xq-UoT"/>
<constraint firstAttribute="height" constant="44" id="YUR-JQ-XXD"/>
@ -690,7 +690,7 @@
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="jLv-tG-qa5" customClass="CornerShadowButton" customModule="BluefruitPlayground_SimulateBluetooth" customModuleProvider="target">
<rect key="frame" x="76" y="0.0" width="46" height="44"/>
<rect key="frame" x="74" y="0.0" width="44" height="44"/>
<constraints>
<constraint firstAttribute="width" relation="greaterThanOrEqual" constant="44" id="Eay-1g-IGd"/>
<constraint firstAttribute="height" constant="44" id="hqq-CF-25R"/>
@ -704,7 +704,7 @@
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Ta7-LK-awK" customClass="CornerShadowButton" customModule="BluefruitPlayground_SimulateBluetooth" customModuleProvider="target">
<rect key="frame" x="152" y="0.0" width="46" height="44"/>
<rect key="frame" x="148" y="0.0" width="44" height="44"/>
<constraints>
<constraint firstAttribute="width" relation="greaterThanOrEqual" constant="44" id="ccz-yG-CgQ"/>
<constraint firstAttribute="height" constant="44" id="gLO-Cf-PUP"/>
@ -718,7 +718,7 @@
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="0uY-jB-1Ht" customClass="CornerShadowButton" customModule="BluefruitPlayground_SimulateBluetooth" customModuleProvider="target">
<rect key="frame" x="228" y="0.0" width="46" height="44"/>
<rect key="frame" x="222" y="0.0" width="44" height="44"/>
<constraints>
<constraint firstAttribute="height" constant="44" id="CWM-0O-ns9"/>
<constraint firstAttribute="width" relation="greaterThanOrEqual" constant="44" id="o2R-dn-3uf"/>
@ -775,8 +775,11 @@
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="F0N-A1-3QD">
<rect key="frame" x="0.0" y="12" width="414" height="510"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="temperature_gauge" translatesAutoresizingMaskIntoConstraints="NO" id="eYC-Gt-apS">
<rect key="frame" x="20" y="54" width="374" height="402"/>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="750" verticalHuggingPriority="750" image="temperature_gauge" translatesAutoresizingMaskIntoConstraints="NO" id="eYC-Gt-apS">
<rect key="frame" x="97" y="144.5" width="220" height="221"/>
<constraints>
<constraint firstAttribute="width" secondItem="eYC-Gt-apS" secondAttribute="height" multiplier="220:221" id="Tur-P3-pES"/>
</constraints>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="750" verticalCompressionResistancePriority="1000" text="0ºF" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Rdm-C6-5Zj">
<rect key="frame" x="174.5" y="230" width="65.5" height="50.5"/>
@ -785,7 +788,7 @@
<nil key="highlightedColor"/>
</label>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="OKs-DM-Ka8">
<rect key="frame" x="342" y="438" width="64" height="64"/>
<rect key="frame" x="374" y="470" width="32" height="32"/>
<fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
<inset key="contentEdgeInsets" minX="6" minY="6" maxX="6" maxY="6"/>
<state key="normal" title="ºC" backgroundImage="temperature_swap">
@ -897,11 +900,11 @@
<rect key="frame" x="0.0" y="0.0" width="414" height="808"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<view contentMode="scaleToFill" ambiguous="YES" translatesAutoresizingMaskIntoConstraints="NO" id="9cd-cz-wWH">
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="9cd-cz-wWH">
<rect key="frame" x="0.0" y="12" width="414" height="350"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" ambiguous="YES" image="tonegenerator_speaker" translatesAutoresizingMaskIntoConstraints="NO" id="Y70-SD-9rD">
<rect key="frame" x="28" y="85" width="358" height="180"/>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="tonegenerator_speaker" translatesAutoresizingMaskIntoConstraints="NO" id="Y70-SD-9rD">
<rect key="frame" x="77" y="85" width="260" height="180"/>
</imageView>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
@ -914,7 +917,7 @@
<constraint firstAttribute="trailingMargin" relation="greaterThanOrEqual" secondItem="Y70-SD-9rD" secondAttribute="trailing" constant="20" id="z0e-dB-Eew"/>
</constraints>
</view>
<view contentMode="scaleToFill" verticalHuggingPriority="750" ambiguous="YES" translatesAutoresizingMaskIntoConstraints="NO" id="bWw-lC-Emh">
<view contentMode="scaleToFill" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="bWw-lC-Emh">
<rect key="frame" x="0.0" y="374" width="414" height="400"/>
<subviews>
<view clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Gc2-PQ-UgW">
@ -1312,7 +1315,7 @@
<activityIndicatorView opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" animating="YES" style="white" translatesAutoresizingMaskIntoConstraints="NO" id="5Wo-UI-qIV">
<rect key="frame" x="44" y="11.5" width="20" height="20"/>
</activityIndicatorView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="1000" verticalHuggingPriority="251" verticalCompressionResistancePriority="1000" text="Finding Circuit Playground Bluetooth devices..." lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="UMb-Lv-8ZY">
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="1000" verticalHuggingPriority="251" horizontalCompressionResistancePriority="1000" verticalCompressionResistancePriority="1000" text="Finding Circuit Playground Bluetooth devices..." lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="UMb-Lv-8ZY">
<rect key="frame" x="76" y="0.0" width="222.5" height="43"/>
<fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/>
<color key="textColor" name="text_default"/>
@ -1422,19 +1425,19 @@
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="scanning_background" translatesAutoresizingMaskIntoConstraints="NO" id="8C3-rm-MeC">
<rect key="frame" x="-126" y="135" width="666" height="666"/>
<rect key="frame" x="40.5" y="301.5" width="333" height="333"/>
<constraints>
<constraint firstAttribute="width" secondItem="8C3-rm-MeC" secondAttribute="height" multiplier="1:1" id="Om7-9I-uA7"/>
</constraints>
</imageView>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="scanning_background" translatesAutoresizingMaskIntoConstraints="NO" id="CWZ-b3-xqm">
<rect key="frame" x="-126" y="135" width="666" height="666"/>
<rect key="frame" x="40.5" y="301.5" width="333" height="333"/>
<constraints>
<constraint firstAttribute="width" secondItem="CWZ-b3-xqm" secondAttribute="height" multiplier="1:1" id="1kq-aH-pC6"/>
</constraints>
</imageView>
<imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="scanning_background" translatesAutoresizingMaskIntoConstraints="NO" id="8Ft-ej-FAg">
<rect key="frame" x="-126" y="135" width="666" height="666"/>
<rect key="frame" x="40.5" y="301.5" width="333" height="333"/>
<constraints>
<constraint firstAttribute="width" secondItem="8Ft-ej-FAg" secondAttribute="height" multiplier="1:1" id="b0q-mr-GjX"/>
</constraints>
@ -1617,14 +1620,14 @@
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<prototypes>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="none" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="HelpCell" id="U5T-Rn-JoM" customClass="HelpTableViewCell" customModule="BluefruitPlayground_SimulateBluetooth" customModuleProvider="target">
<rect key="frame" x="0.0" y="28" width="414" height="220"/>
<rect key="frame" x="0.0" y="28" width="414" height="219.5"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="U5T-Rn-JoM" id="luQ-sf-H0h">
<rect key="frame" x="0.0" y="0.0" width="414" height="220"/>
<rect key="frame" x="0.0" y="0.0" width="414" height="219.5"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="W6j-6k-zao">
<rect key="frame" x="20" y="19" width="374" height="190"/>
<rect key="frame" x="20" y="19" width="374" height="189.5"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" verticalHuggingPriority="750" verticalCompressionResistancePriority="1000" spacing="12" translatesAutoresizingMaskIntoConstraints="NO" id="NeJ-ep-YDO">
<rect key="frame" x="0.0" y="0.0" width="374" height="43"/>
@ -1636,7 +1639,7 @@
<rect key="frame" x="0.0" y="0.0" width="24" height="24"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="252" verticalHuggingPriority="252" verticalCompressionResistancePriority="1000" text="1" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="biZ-KB-paP">
<rect key="frame" x="8" y="1" width="8.5" height="22"/>
<rect key="frame" x="8" y="1.5" width="8.5" height="21.5"/>
<fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/>
<color key="textColor" name="text_default"/>
<nil key="highlightedColor"/>
@ -1674,10 +1677,10 @@
<nil key="highlightedColor"/>
</label>
<view contentMode="scaleToFill" verticalHuggingPriority="1000" verticalCompressionResistancePriority="1000" translatesAutoresizingMaskIntoConstraints="NO" id="lX3-kv-DYx">
<rect key="frame" x="0.0" y="104" width="374" height="86"/>
<rect key="frame" x="0.0" y="104" width="374" height="85.5"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="bottom" horizontalHuggingPriority="251" verticalHuggingPriority="1000" verticalCompressionResistancePriority="1000" image="scanproblems_powerup" translatesAutoresizingMaskIntoConstraints="NO" id="UAb-G3-y7N">
<rect key="frame" x="0.0" y="0.0" width="374" height="86"/>
<rect key="frame" x="0.0" y="0.0" width="374" height="85.5"/>
</imageView>
</subviews>
<color key="backgroundColor" name="cell_light"/>
@ -1867,19 +1870,19 @@
</constraints>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" verticalCompressionResistancePriority="1000" text="Title" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="Sed-sJ-Bks">
<rect key="frame" x="38" y="8" width="292" height="21.5"/>
<rect key="frame" x="38" y="8" width="304" height="21.5"/>
<fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/>
<color key="textColor" name="text_default"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="1000" horizontalCompressionResistancePriority="1000" verticalCompressionResistancePriority="1000" text="Subtitle subtitle subtitle subtitle subtitle subtitle" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="onF-zN-PM3">
<rect key="frame" x="38" y="31.5" width="292" height="38.5"/>
<rect key="frame" x="38" y="31.5" width="304" height="38.5"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" name="text_default"/>
<nil key="highlightedColor"/>
</label>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="1000" verticalHuggingPriority="251" image="disclosure" translatesAutoresizingMaskIntoConstraints="NO" id="fdq-Op-BkP">
<rect key="frame" x="338" y="19" width="24" height="40"/>
<rect key="frame" x="350" y="29" width="12" height="20"/>
<color key="tintColor" white="0.80000000000000004" alpha="0.80330230496453903" colorSpace="custom" customColorSpace="calibratedWhite"/>
</imageView>
</subviews>
@ -1933,19 +1936,19 @@
</constraints>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" verticalCompressionResistancePriority="1000" text="Title" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="jjJ-q6-e8z">
<rect key="frame" x="38" y="8" width="292" height="21.5"/>
<rect key="frame" x="38" y="8" width="304" height="21.5"/>
<fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/>
<color key="textColor" name="text_default"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="1000" horizontalCompressionResistancePriority="1000" verticalCompressionResistancePriority="1000" text="Subtitle subtitle subtitle subtitle subtitle subtitle" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="rOY-0f-W7p">
<rect key="frame" x="38" y="31.5" width="292" height="41"/>
<rect key="frame" x="38" y="31.5" width="304" height="41"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" name="text_default"/>
<nil key="highlightedColor"/>
</label>
<imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="1000" verticalHuggingPriority="251" image="disclosure" translatesAutoresizingMaskIntoConstraints="NO" id="fTM-eg-YMl">
<rect key="frame" x="338" y="20.5" width="24" height="40"/>
<rect key="frame" x="350" y="30.5" width="12" height="20"/>
<color key="tintColor" white="0.80000000000000004" alpha="0.80330230499999999" colorSpace="custom" customColorSpace="calibratedWhite"/>
</imageView>
</subviews>
@ -2075,19 +2078,19 @@
</constraints>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" verticalCompressionResistancePriority="1000" text="Title" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="fTD-3i-zkW">
<rect key="frame" x="46" y="8" width="284" height="21.5"/>
<rect key="frame" x="46" y="8" width="296" height="21.5"/>
<fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/>
<color key="textColor" name="text_default"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="1000" horizontalCompressionResistancePriority="1000" verticalCompressionResistancePriority="1000" text="Subtitle subtitle subtitle subtitle subtitle subtitle" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="sQJ-U4-6NT">
<rect key="frame" x="46" y="29.5" width="284" height="41"/>
<rect key="frame" x="46" y="29.5" width="296" height="41"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" name="text_default"/>
<nil key="highlightedColor"/>
</label>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="1000" verticalHuggingPriority="251" image="disclosure" translatesAutoresizingMaskIntoConstraints="NO" id="t4j-Bn-dSU">
<rect key="frame" x="338" y="19.5" width="24" height="40"/>
<rect key="frame" x="350" y="29.5" width="12" height="20"/>
<color key="tintColor" white="0.80000000000000004" alpha="0.80330230499999999" colorSpace="custom" customColorSpace="calibratedWhite"/>
</imageView>
</subviews>
@ -2859,7 +2862,7 @@
<rect key="frame" x="0.0" y="71" width="348" height="60.5"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="1000" verticalHuggingPriority="251" image="lightsensor_min" translatesAutoresizingMaskIntoConstraints="NO" id="xIf-cH-XwT">
<rect key="frame" x="0.0" y="0.0" width="32" height="60.5"/>
<rect key="frame" x="0.0" y="14" width="32" height="32"/>
<color key="tintColor" name="panel_text"/>
<constraints>
<constraint firstAttribute="width" constant="32" id="Cnh-ct-KRE"/>
@ -2897,7 +2900,7 @@
</constraints>
</view>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="1000" verticalHuggingPriority="251" image="lightsensor_max" translatesAutoresizingMaskIntoConstraints="NO" id="Syp-9X-v8i">
<rect key="frame" x="316" y="0.0" width="32" height="60.5"/>
<rect key="frame" x="316" y="14" width="32" height="32"/>
<color key="tintColor" name="panel_text"/>
<constraints>
<constraint firstAttribute="width" constant="32" id="ph4-zE-oZL"/>
@ -2981,25 +2984,25 @@
<rect key="frame" x="20" y="0.0" width="319" height="224"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="750" verticalCompressionResistancePriority="1000" text="Title" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="2w2-fb-yU1">
<rect key="frame" x="0.0" y="16" width="319" height="0.0"/>
<rect key="frame" x="0.0" y="16" width="319" height="26.5"/>
<fontDescription key="fontDescription" type="system" weight="medium" pointSize="22"/>
<color key="textColor" name="panel_text"/>
<nil key="highlightedColor"/>
</label>
<view contentMode="scaleToFill" verticalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="LE8-Xm-MyC">
<rect key="frame" x="8" y="36" width="303" height="158"/>
<rect key="frame" x="8" y="62.5" width="303" height="131.5"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" alignment="center" spacing="40" translatesAutoresizingMaskIntoConstraints="NO" id="aGX-eE-4cQ">
<rect key="frame" x="0.0" y="0.0" width="303" height="158"/>
<rect key="frame" x="0.0" y="0.0" width="303" height="131.5"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="8" translatesAutoresizingMaskIntoConstraints="NO" id="a9L-nV-v5t">
<rect key="frame" x="0.0" y="0.0" width="74.5" height="158"/>
<rect key="frame" x="0.0" y="0.0" width="74.5" height="131.5"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="CJ1-3n-P8S">
<rect key="frame" x="0.0" y="0.0" width="74.5" height="150"/>
<rect key="frame" x="0.0" y="0.0" width="74.5" height="103"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" horizontalCompressionResistancePriority="1000" verticalCompressionResistancePriority="1000" image="status_left" translatesAutoresizingMaskIntoConstraints="NO" id="YGm-Cb-2wM">
<rect key="frame" x="0.0" y="0.0" width="74.5" height="150"/>
<rect key="frame" x="0.0" y="0.0" width="74.5" height="103"/>
<color key="tintColor" red="1" green="0.4073752891886665" blue="0.12012620532416363" alpha="1" colorSpace="custom" customColorSpace="displayP3"/>
</imageView>
</subviews>
@ -3012,7 +3015,7 @@
</constraints>
</view>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="751" verticalHuggingPriority="251" horizontalCompressionResistancePriority="1000" text="XXXSlide Switch" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="lva-OC-wlT">
<rect key="frame" x="0.0" y="158" width="74.5" height="0.0"/>
<rect key="frame" x="0.0" y="111" width="74.5" height="20.5"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" name="panel_text"/>
<nil key="highlightedColor"/>
@ -3020,13 +3023,13 @@
</subviews>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="8" translatesAutoresizingMaskIntoConstraints="NO" id="thZ-V9-9zx">
<rect key="frame" x="114.5" y="0.0" width="74" height="158"/>
<rect key="frame" x="114.5" y="0.0" width="74" height="131.5"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Jzv-K5-VcG">
<rect key="frame" x="0.0" y="0.0" width="74" height="150"/>
<rect key="frame" x="0.0" y="0.0" width="74" height="103"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" horizontalCompressionResistancePriority="1000" verticalCompressionResistancePriority="1000" image="status_a" translatesAutoresizingMaskIntoConstraints="NO" id="Di5-wa-clX">
<rect key="frame" x="0.0" y="0.0" width="74" height="150"/>
<rect key="frame" x="0.0" y="0.0" width="74" height="103"/>
<color key="tintColor" white="0.33333333329999998" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</imageView>
</subviews>
@ -3039,7 +3042,7 @@
</constraints>
</view>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="751" verticalHuggingPriority="251" horizontalCompressionResistancePriority="1000" text="XXXButton A" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="4sg-ww-Cfh">
<rect key="frame" x="0.0" y="158" width="74" height="0.0"/>
<rect key="frame" x="0.0" y="111" width="74" height="20.5"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" name="panel_text"/>
<nil key="highlightedColor"/>
@ -3047,13 +3050,13 @@
</subviews>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="8" translatesAutoresizingMaskIntoConstraints="NO" id="WS9-eS-UNJ">
<rect key="frame" x="228.5" y="0.0" width="74.5" height="158"/>
<rect key="frame" x="228.5" y="0.0" width="74.5" height="131.5"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="fXs-km-nko">
<rect key="frame" x="0.0" y="0.0" width="74.5" height="150"/>
<rect key="frame" x="0.0" y="0.0" width="74.5" height="103"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" horizontalCompressionResistancePriority="1000" verticalCompressionResistancePriority="1000" image="status_b" translatesAutoresizingMaskIntoConstraints="NO" id="eoc-2h-ygp">
<rect key="frame" x="0.0" y="0.0" width="74.5" height="150"/>
<rect key="frame" x="0.0" y="0.0" width="74.5" height="103"/>
<color key="tintColor" white="0.33333333329999998" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</imageView>
</subviews>
@ -3066,7 +3069,7 @@
</constraints>
</view>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="751" verticalHuggingPriority="251" horizontalCompressionResistancePriority="1000" text="XXXButtonB" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Xf1-zu-lRO">
<rect key="frame" x="0.0" y="158" width="74.5" height="0.0"/>
<rect key="frame" x="0.0" y="111" width="74.5" height="20.5"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" name="panel_text"/>
<nil key="highlightedColor"/>
@ -3979,24 +3982,24 @@
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="tQU-ml-Eiz">
<rect key="frame" x="0.0" y="0.0" width="414" height="356"/>
<rect key="frame" x="0.0" y="0.0" width="414" height="251"/>
<subviews>
<view contentMode="scaleToFill" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="BN3-jQ-GBi" userLabel="titleView">
<rect key="frame" x="8" y="20" width="398" height="252"/>
<rect key="frame" x="67" y="20" width="280" height="147"/>
<subviews>
<imageView userInteractionEnabled="NO" alpha="0.80000001192092896" contentMode="scaleAspectFit" verticalHuggingPriority="1000" image="info_adafruit_logo" translatesAutoresizingMaskIntoConstraints="NO" id="v29-ih-FFw">
<rect key="frame" x="0.0" y="0.0" width="398" height="210"/>
<rect key="frame" x="0.0" y="0.0" width="280" height="105"/>
<color key="tintColor" name="text_default"/>
</imageView>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" verticalHuggingPriority="251" text="App Name" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="izk-pv-hGR">
<rect key="frame" x="75" y="214" width="323" height="19"/>
<rect key="frame" x="75" y="109" width="205" height="19"/>
<fontDescription key="fontDescription" type="system" weight="medium" pointSize="15"/>
<color key="textColor" name="text_default"/>
<color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<color key="shadowColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</label>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="v.2.0" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="NGh-Xb-KmR" userLabel="versionLabel">
<rect key="frame" x="75" y="233" width="323" height="19"/>
<rect key="frame" x="75" y="128" width="205" height="19"/>
<fontDescription key="fontDescription" type="system" weight="medium" pointSize="15"/>
<color key="textColor" name="text_default"/>
<color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
@ -4018,7 +4021,7 @@
</constraints>
</view>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="750" verticalCompressionResistancePriority="1000" text="Details details details details details details details details details details details details" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="gM0-9c-k2j" customClass="ActiveLabel" customModule="ActiveLabel">
<rect key="frame" x="8" y="312" width="398" height="36"/>
<rect key="frame" x="8" y="207" width="398" height="36"/>
<fontDescription key="fontDescription" type="system" pointSize="15"/>
<color key="textColor" name="text_default"/>
<nil key="highlightedColor"/>
@ -4103,21 +4106,18 @@
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="sbA-xu-Y73">
<rect key="frame" x="0.0" y="0.0" width="414" height="84"/>
<rect key="frame" x="0.0" y="0.0" width="414" height="76"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="750" verticalCompressionResistancePriority="1000" text="Details details details details details details details details details details details details" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="fYb-wc-0pa">
<rect key="frame" x="8" y="20" width="398" height="36"/>
<fontDescription key="fontDescription" type="system" pointSize="15"/>
<color key="textColor" name="text_default"/>
<nil key="highlightedColor"/>
</label>
<stackView opaque="NO" contentMode="scaleToFill" placeholderIntrinsicWidth="infinite" placeholderIntrinsicHeight="36" axis="vertical" spacing="20" translatesAutoresizingMaskIntoConstraints="NO" id="XMW-3h-kFi">
<rect key="frame" x="20" y="20" width="374" height="36"/>
</stackView>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="trailingMargin" secondItem="fYb-wc-0pa" secondAttribute="trailing" id="7TE-uA-pwe"/>
<constraint firstItem="fYb-wc-0pa" firstAttribute="leading" secondItem="sbA-xu-Y73" secondAttribute="leadingMargin" id="BwU-2f-g4f"/>
<constraint firstAttribute="bottomMargin" secondItem="fYb-wc-0pa" secondAttribute="bottom" constant="20" id="EYE-f9-prV"/>
<constraint firstItem="fYb-wc-0pa" firstAttribute="top" secondItem="sbA-xu-Y73" secondAttribute="top" constant="20" id="IMT-RZ-O7H"/>
<constraint firstAttribute="trailing" secondItem="XMW-3h-kFi" secondAttribute="trailing" constant="20" symbolic="YES" id="6ff-xQ-AiD"/>
<constraint firstItem="XMW-3h-kFi" firstAttribute="leading" secondItem="sbA-xu-Y73" secondAttribute="leading" constant="20" symbolic="YES" id="Q00-PV-gxu"/>
<constraint firstItem="XMW-3h-kFi" firstAttribute="top" secondItem="sbA-xu-Y73" secondAttribute="top" constant="20" id="hbE-ki-tlF"/>
<constraint firstAttribute="bottom" secondItem="XMW-3h-kFi" secondAttribute="bottom" constant="20" id="q2y-P7-CmO"/>
</constraints>
</view>
</subviews>
@ -4165,8 +4165,8 @@
</navigationItem>
<simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/>
<connections>
<outlet property="contentStackView" destination="XMW-3h-kFi" id="ps6-k2-Zj6"/>
<outlet property="doneButton" destination="uKJ-vO-zQd" id="HWb-99-tOv"/>
<outlet property="messageLabel" destination="fYb-wc-0pa" id="dx6-iJ-0vU"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="UTm-iu-mI6" userLabel="First Responder" sceneMemberID="firstResponder"/>
@ -4284,13 +4284,13 @@
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="20" translatesAutoresizingMaskIntoConstraints="NO" id="aDl-bl-Snv">
<rect key="frame" x="20" y="200.5" width="374" height="465"/>
<rect key="frame" x="20" y="268" width="374" height="330"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="bluetooth_status" translatesAutoresizingMaskIntoConstraints="NO" id="Yms-Ya-hqI">
<rect key="frame" x="0.0" y="0.0" width="374" height="270"/>
<rect key="frame" x="0.0" y="0.0" width="374" height="135"/>
</imageView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="center" spacing="6" translatesAutoresizingMaskIntoConstraints="NO" id="Dph-8N-wNh">
<rect key="frame" x="0.0" y="290" width="374" height="71"/>
<rect key="frame" x="0.0" y="155" width="374" height="71"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Enable Bluetooth" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ppt-z7-z9u">
<rect key="frame" x="106.5" y="0.0" width="161" height="24"/>
@ -4307,7 +4307,7 @@
</subviews>
</stackView>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="9ix-t9-34H">
<rect key="frame" x="0.0" y="381" width="374" height="84"/>
<rect key="frame" x="0.0" y="246" width="374" height="84"/>
<subviews>
<button opaque="NO" contentMode="scaleToFill" verticalCompressionResistancePriority="1000" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="HMY-4d-aqM" customClass="CornerShadowButton" customModule="BluefruitPlayground_SimulateBluetooth" customModuleProvider="target">
<rect key="frame" x="20" y="20" width="334" height="44"/>
@ -4461,12 +4461,12 @@
<image name="status_a" width="80" height="80"/>
<image name="status_b" width="80" height="80"/>
<image name="status_left" width="80" height="80"/>
<image name="temperature_gauge" width="201" height="201"/>
<image name="temperature_gauge" width="220" height="221"/>
<image name="temperature_swap" width="32" height="32"/>
<image name="tip_datacable" width="42" height="124"/>
<image name="tip_powercable" width="54" height="175"/>
<image name="tonegenerator_speaker" width="260" height="180"/>
<image name="welcome_logo" width="1080" height="1080"/>
<image name="welcome_logo" width="343" height="343"/>
<namedColor name="backgroundGradientEnd">
<color red="0.0" green="0.48627450980392156" blue="0.69411764705882351" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</namedColor>

View file

@ -205,13 +205,16 @@ Download it from the Bluefruit Playground guide at learn.adafruit.com";
// Puppet
"puppet_title" = "Puppets";
"puppet_help" = "This Puppet module allows you to animate a 3D puppets in real time using the Circuit Playground Bluefruit board.
"puppet_help_header" = "This Puppet module allows you to animate a 3D puppets in real time using the Circuit Playground Bluefruit board.
• Tilt your board forward or backwards to open and close the mouth of the puppet(Sparky The Blue Smoke Monster).
To control the puppet, attach Circuit Playground Bluefruit to the back of your fingers using a rubber band as seen below:";
"puppet_help_details" = "• Tilt your board forward or backwards to open and close the mouth of the puppet(Sparky The Blue Smoke Monster).
• Try turning your board to turn your puppets head left and right.
• Press the A or B button on the board to trigger present animations.
You can also screen record and share your interaction with the puppet.";
"puppet_recording_error_title" = "Recording Error";
"puppet_recording_error_description" = "Recording was cancelled. Please try again.";

View file

@ -15,21 +15,36 @@ class HelpViewController: UIViewController {
// UI
@IBOutlet weak var messageLabel: UILabel!
@IBOutlet weak var doneButton: UIBarButtonItem!
// Params
var message: String?
@IBOutlet weak var contentStackView: UIStackView!
// MARK: - Lifecycle
override func viewDidLoad() {
super.viewDidLoad()
messageLabel.text = message
// Text
let localizationManager = LocalizationManager.shared
self.title = localizationManager.localizedString("help_title")
doneButton.title = localizationManager.localizedString("dialog_done")
}
// MARK: - Add Items
func addMessage(_ message: String) {
loadViewIfNeeded()
let label = UILabel()
label.textColor = UIColor(named: "text_default")
label.font = UIFont.systemFont(ofSize: 15)
label.numberOfLines = 0
label.text = message
contentStackView.addArrangedSubview(label)
}
func addImage(_ image: UIImage) {
loadViewIfNeeded()
let imageView = UIImageView(image: image)
contentStackView.addArrangedSubview(imageView)
}
// MARK: - Actions
@IBAction func onClickDone(_ sender: Any) {

View file

@ -129,8 +129,10 @@ class ModuleViewController: UIViewController {
// MARK: - Actions
@IBAction func help(_ sender: Any) {
guard let moduleHelpMessage = moduleHelpMessage else { return }
guard let navigationController = storyboard?.instantiateViewController(withIdentifier: HelpViewController.kIdentifier) as? UINavigationController, let helpViewController = navigationController.topViewController as? HelpViewController else { return }
helpViewController.message = moduleHelpMessage
helpViewController.addMessage(moduleHelpMessage)
self.present(navigationController, animated: true, completion: nil)
}

View file

@ -403,8 +403,12 @@ class PuppetViewController: UIViewController {
@IBAction func help(_ sender: Any) {
guard let navigationController = storyboard?.instantiateViewController(withIdentifier: HelpViewController.kIdentifier) as? UINavigationController, let helpViewController = navigationController.topViewController as? HelpViewController else { return }
helpViewController.message = LocalizationManager.shared.localizedString("puppet_help")
helpViewController.addMessage(LocalizationManager.shared.localizedString("puppet_help_header"))
if let image = UIImage(named: "puppet_hand") {
helpViewController.addImage(image)
}
helpViewController.addMessage(LocalizationManager.shared.localizedString("puppet_help_details"))
self.present(navigationController, animated: true, completion: nil)
}
}

View file

@ -195,7 +195,7 @@ class ToneGeneratorViewController: UIViewController {
@IBAction func help(_ sender: Any) {
guard let navigationController = storyboard?.instantiateViewController(withIdentifier: HelpViewController.kIdentifier) as? UINavigationController, let helpViewController = navigationController.topViewController as? HelpViewController else { return }
helpViewController.message = LocalizationManager.shared.localizedString("tonegenerator_help")
helpViewController.addMessage(LocalizationManager.shared.localizedString("tonegenerator_help"))
self.present(navigationController, animated: true, completion: nil)
}