conversion to latest obj-c and cleanup, implementation of arrows for LSK alignment (hard one)

This commit is contained in:
Kilian Hofmann 2016-03-23 17:35:27 +01:00
parent dff5f47613
commit 17014d0243
9 changed files with 246 additions and 132 deletions

View File

@ -10,8 +10,6 @@
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@property(strong, nonatomic) UIWindow *window;
@end

View File

@ -8,38 +8,46 @@
#import "AppDelegate.h"
@interface AppDelegate ()
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
return YES;
}
- (void)applicationWillResignActive:(UIApplication *)application {
// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
// Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
// Sent when the application is about to move from active to inactive state.
// This can occur for certain types of temporary interruptions (such as an
// incoming phone call or SMS message) or when the user quits the
// application and it begins the transition to the background state.
// Use this method to pause ongoing tasks, disable timers, and throttle down
// OpenGL ES frame rates. Games should use this method to pause the game.
}
- (void)applicationDidEnterBackground:(UIApplication *)application {
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
// Use this method to release shared resources, save user data, invalidate
// timers, and store enough application state information to restore your
// application to its current state in case it is terminated later.
// If your application supports background execution, this method is called
// instead of applicationWillTerminate: when the user quits.
}
- (void)applicationWillEnterForeground:(UIApplication *)application {
// Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
// Called as part of the transition from the background to the inactive
// state; here you can undo many of the changes made on entering the
// background.
}
- (void)applicationDidBecomeActive:(UIApplication *)application {
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
// Restart any tasks that were paused (or not yet started) while the
// application was inactive. If the application was previously in the
// background, optionally refresh the user interface.
}
- (void)applicationWillTerminate:(UIApplication *)application {
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
// Called when the application is about to terminate. Save data if
// appropriate. See also applicationDidEnterBackground:.
}
@end

View File

@ -463,133 +463,133 @@
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<color key="highlightedColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="em7-UJ-Joo">
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Desc" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="em7-UJ-Joo">
<rect key="frame" x="10" y="17" width="130" height="16"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<color key="highlightedColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="HOj-yn-LQ9">
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Desc" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="HOj-yn-LQ9">
<rect key="frame" x="140" y="17" width="130" height="16"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<color key="highlightedColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Z4K-ej-cbf">
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Desc" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Z4K-ej-cbf">
<rect key="frame" x="10" y="49" width="130" height="16"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<color key="highlightedColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Sdv-Fw-LQq">
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Desc" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Sdv-Fw-LQq">
<rect key="frame" x="140" y="49" width="130" height="16"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<color key="highlightedColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Zec-2v-VfE">
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="LSK" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Zec-2v-VfE">
<rect key="frame" x="10" y="65" width="130" height="16"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<color key="highlightedColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="mXy-bk-ceo">
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="LSK" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="mXy-bk-ceo">
<rect key="frame" x="140" y="65" width="130" height="16"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<color key="highlightedColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="5g4-VN-3D0">
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Desc" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="5g4-VN-3D0">
<rect key="frame" x="10" y="81" width="130" height="16"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<color key="highlightedColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="VEQ-SS-tQN">
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Desc" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="VEQ-SS-tQN">
<rect key="frame" x="140" y="81" width="130" height="16"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<color key="highlightedColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="jWW-bv-Dfp">
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="LSK" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="jWW-bv-Dfp">
<rect key="frame" x="10" y="97" width="130" height="16"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<color key="highlightedColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="4Re-H9-pwK">
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="LSK" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="4Re-H9-pwK">
<rect key="frame" x="140" y="97" width="130" height="16"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<color key="highlightedColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="H6E-47-kUV">
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Desc" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="H6E-47-kUV">
<rect key="frame" x="10" y="113" width="130" height="16"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<color key="highlightedColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="NN0-pa-0Qt">
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Desc" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="NN0-pa-0Qt">
<rect key="frame" x="140" y="113" width="130" height="16"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<color key="highlightedColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="idt-HJ-NT3">
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="LSK" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="idt-HJ-NT3">
<rect key="frame" x="10" y="129" width="130" height="16"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<color key="highlightedColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Yj4-ZZ-gxG">
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="LSK" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Yj4-ZZ-gxG">
<rect key="frame" x="140" y="129" width="130" height="16"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<color key="highlightedColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Dp0-oG-lfr">
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Desc" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Dp0-oG-lfr">
<rect key="frame" x="10" y="145" width="130" height="16"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<color key="highlightedColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="LPI-AA-rrg">
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Desc" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="LPI-AA-rrg">
<rect key="frame" x="140" y="145" width="130" height="16"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<color key="highlightedColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="MdV-Xi-BKR">
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="LSK" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="MdV-Xi-BKR">
<rect key="frame" x="10" y="161" width="130" height="16"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<color key="highlightedColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="BXf-ft-vHl">
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="LSK" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="BXf-ft-vHl">
<rect key="frame" x="140" y="161" width="130" height="16"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<color key="highlightedColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="f2v-9B-nOm">
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Desc" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="f2v-9B-nOm">
<rect key="frame" x="10" y="177" width="130" height="16"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<color key="highlightedColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="8LD-xq-b8N">
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Desc" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="8LD-xq-b8N">
<rect key="frame" x="140" y="177" width="130" height="16"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<color key="highlightedColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="m3e-KD-2Cx">
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="LSK" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="m3e-KD-2Cx">
<rect key="frame" x="10" y="193" width="130" height="16"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<color key="highlightedColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="fQz-BB-LrD">
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="LSK" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="fQz-BB-LrD">
<rect key="frame" x="140" y="193" width="130" height="16"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
@ -605,25 +605,99 @@
<rect key="frame" x="10" y="209" width="260" height="1"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</view>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="k64-uO-je8">
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="LSK" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="k64-uO-je8">
<rect key="frame" x="10" y="33" width="130" height="16"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<color key="highlightedColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="sro-Ep-8wL">
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="LSK" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="sro-Ep-8wL">
<rect key="frame" x="140" y="33" width="130" height="16"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<color key="highlightedColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
</label>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="tri" translatesAutoresizingMaskIntoConstraints="NO" id="OHd-oI-XTi">
<rect key="frame" x="0.0" y="33" width="10" height="16"/>
<constraints>
<constraint firstAttribute="width" constant="10" id="kCb-HS-6JD"/>
</constraints>
</imageView>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="tri" translatesAutoresizingMaskIntoConstraints="NO" id="Aih-8T-qgv">
<rect key="frame" x="0.0" y="65" width="10" height="16"/>
<constraints>
<constraint firstAttribute="width" constant="10" id="vN4-2c-4vl"/>
</constraints>
</imageView>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="tri" translatesAutoresizingMaskIntoConstraints="NO" id="he4-3E-dcb">
<rect key="frame" x="0.0" y="97" width="10" height="16"/>
<constraints>
<constraint firstAttribute="width" constant="10" id="j0u-2x-ogX"/>
</constraints>
</imageView>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="tri" translatesAutoresizingMaskIntoConstraints="NO" id="hRk-g1-LtS">
<rect key="frame" x="0.0" y="129" width="10" height="16"/>
<constraints>
<constraint firstAttribute="width" constant="10" id="DoA-jt-nxx"/>
</constraints>
</imageView>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="tri" translatesAutoresizingMaskIntoConstraints="NO" id="92b-Xm-AAk">
<rect key="frame" x="0.0" y="161" width="10" height="16"/>
<constraints>
<constraint firstAttribute="width" constant="10" id="Lha-Q8-Hom"/>
</constraints>
</imageView>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="tri" translatesAutoresizingMaskIntoConstraints="NO" id="SOp-hE-d9Q">
<rect key="frame" x="0.0" y="193" width="10" height="16"/>
<constraints>
<constraint firstAttribute="width" constant="10" id="kzA-Ko-J7o"/>
</constraints>
</imageView>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="triFlip" translatesAutoresizingMaskIntoConstraints="NO" id="do1-lk-i4d">
<rect key="frame" x="270" y="193" width="10" height="16"/>
<constraints>
<constraint firstAttribute="width" constant="10" id="mw7-ry-fvo"/>
</constraints>
</imageView>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="triFlip" translatesAutoresizingMaskIntoConstraints="NO" id="pAy-TQ-lAj">
<rect key="frame" x="270" y="33" width="10" height="16"/>
<constraints>
<constraint firstAttribute="width" constant="10" id="vTt-3D-vvz"/>
</constraints>
</imageView>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="triFlip" translatesAutoresizingMaskIntoConstraints="NO" id="fxC-LW-Dp9">
<rect key="frame" x="270" y="65" width="10" height="16"/>
<constraints>
<constraint firstAttribute="width" constant="10" id="4FM-G6-KWG"/>
</constraints>
</imageView>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="triFlip" translatesAutoresizingMaskIntoConstraints="NO" id="MxW-ec-JT2">
<rect key="frame" x="270" y="129" width="10" height="16"/>
<constraints>
<constraint firstAttribute="width" constant="10" id="BTH-Bl-dP1"/>
</constraints>
</imageView>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="triFlip" translatesAutoresizingMaskIntoConstraints="NO" id="nO1-eK-qF6">
<rect key="frame" x="270" y="97" width="10" height="16"/>
<constraints>
<constraint firstAttribute="width" constant="10" id="aWF-hW-2Hp"/>
</constraints>
</imageView>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="triFlip" translatesAutoresizingMaskIntoConstraints="NO" id="e8V-cy-gJm">
<rect key="frame" x="270" y="161" width="10" height="16"/>
<constraints>
<constraint firstAttribute="width" constant="10" id="xZg-L7-Btk"/>
</constraints>
</imageView>
</subviews>
<color key="backgroundColor" red="0.019607843140000001" green="0.047058823530000002" blue="0.12941176469999999" alpha="1" colorSpace="calibratedRGB"/>
<constraints>
<constraint firstItem="f2v-9B-nOm" firstAttribute="top" secondItem="MdV-Xi-BKR" secondAttribute="bottom" id="14a-dO-ybY"/>
<constraint firstItem="Aih-8T-qgv" firstAttribute="height" secondItem="Loy-Fk-sOd" secondAttribute="height" id="14z-Ys-0Qr"/>
<constraint firstItem="Yj4-ZZ-gxG" firstAttribute="width" secondItem="idt-HJ-NT3" secondAttribute="width" id="1TH-qz-zBt"/>
<constraint firstAttribute="trailing" secondItem="sro-Ep-8wL" secondAttribute="trailing" constant="10" id="1Th-Lj-0rz"/>
<constraint firstAttribute="trailing" secondItem="mXy-bk-ceo" secondAttribute="trailing" constant="10" id="1Vv-tc-eER"/>
<constraint firstItem="do1-lk-i4d" firstAttribute="height" secondItem="Loy-Fk-sOd" secondAttribute="height" id="1rI-kB-WIo"/>
<constraint firstItem="Loy-Fk-sOd" firstAttribute="top" secondItem="2YN-Dg-9F2" secondAttribute="topMargin" constant="1" id="2AI-CS-ecI"/>
<constraint firstItem="DKU-Ht-Zkn" firstAttribute="height" secondItem="Loy-Fk-sOd" secondAttribute="height" id="2E0-GI-3WL"/>
<constraint firstItem="k64-uO-je8" firstAttribute="leading" secondItem="2YN-Dg-9F2" secondAttribute="leading" constant="10" id="2JU-4a-rdl"/>
@ -632,6 +706,7 @@
<constraint firstAttribute="trailing" secondItem="8LD-xq-b8N" secondAttribute="trailing" constant="10" id="2pT-fP-0Se"/>
<constraint firstItem="BXf-ft-vHl" firstAttribute="top" secondItem="LPI-AA-rrg" secondAttribute="bottom" id="37c-3N-2rJ"/>
<constraint firstItem="fQz-BB-LrD" firstAttribute="leading" secondItem="m3e-KD-2Cx" secondAttribute="trailing" id="3ek-ja-GDu"/>
<constraint firstItem="Zec-2v-VfE" firstAttribute="centerY" secondItem="Aih-8T-qgv" secondAttribute="centerY" id="424-K8-im9"/>
<constraint firstItem="NN0-pa-0Qt" firstAttribute="top" secondItem="4Re-H9-pwK" secondAttribute="bottom" id="42p-M4-1EK"/>
<constraint firstItem="Yj4-ZZ-gxG" firstAttribute="leading" secondItem="idt-HJ-NT3" secondAttribute="trailing" id="49p-qg-W7N"/>
<constraint firstItem="Dp0-oG-lfr" firstAttribute="leading" secondItem="2YN-Dg-9F2" secondAttribute="leading" constant="10" id="4TK-LP-sHM"/>
@ -640,12 +715,14 @@
<constraint firstItem="Yj4-ZZ-gxG" firstAttribute="height" secondItem="Loy-Fk-sOd" secondAttribute="height" id="5af-rZ-eDw"/>
<constraint firstItem="LPI-AA-rrg" firstAttribute="leading" secondItem="Dp0-oG-lfr" secondAttribute="trailing" id="5iS-eB-oGc"/>
<constraint firstItem="fQz-BB-LrD" firstAttribute="top" secondItem="8LD-xq-b8N" secondAttribute="bottom" id="6fo-LI-YNL"/>
<constraint firstItem="pAy-TQ-lAj" firstAttribute="height" secondItem="Loy-Fk-sOd" secondAttribute="height" id="6iq-v7-P22"/>
<constraint firstItem="mXy-bk-ceo" firstAttribute="leading" secondItem="Zec-2v-VfE" secondAttribute="trailing" id="7FP-gd-Zpo"/>
<constraint firstItem="8LD-xq-b8N" firstAttribute="leading" secondItem="f2v-9B-nOm" secondAttribute="trailing" id="7ie-Gv-rWl"/>
<constraint firstItem="LPI-AA-rrg" firstAttribute="height" secondItem="Loy-Fk-sOd" secondAttribute="height" id="7nh-EX-nEn"/>
<constraint firstItem="5g4-VN-3D0" firstAttribute="leading" secondItem="2YN-Dg-9F2" secondAttribute="leading" constant="10" id="81d-Gh-AB9"/>
<constraint firstItem="Sdv-Fw-LQq" firstAttribute="leading" secondItem="Z4K-ej-cbf" secondAttribute="trailing" id="8aa-6a-4Qb"/>
<constraint firstItem="DKU-Ht-Zkn" firstAttribute="leading" secondItem="2YN-Dg-9F2" secondAttribute="leading" constant="1" id="8rF-0n-Wz1"/>
<constraint firstItem="fxC-LW-Dp9" firstAttribute="height" secondItem="Loy-Fk-sOd" secondAttribute="height" id="93b-ex-ETS"/>
<constraint firstItem="H6E-47-kUV" firstAttribute="top" secondItem="jWW-bv-Dfp" secondAttribute="bottom" id="9FP-vT-RvI"/>
<constraint firstItem="Sdv-Fw-LQq" firstAttribute="width" secondItem="Z4K-ej-cbf" secondAttribute="width" id="9Ma-7C-1fM"/>
<constraint firstItem="Sdv-Fw-LQq" firstAttribute="top" secondItem="sro-Ep-8wL" secondAttribute="bottom" id="AR5-9a-NmA"/>
@ -658,13 +735,18 @@
<constraint firstItem="jWW-bv-Dfp" firstAttribute="top" secondItem="5g4-VN-3D0" secondAttribute="bottom" id="DIa-5V-hsQ"/>
<constraint firstItem="MdV-Xi-BKR" firstAttribute="top" secondItem="Dp0-oG-lfr" secondAttribute="bottom" id="DYQ-hP-vHE"/>
<constraint firstItem="mXy-bk-ceo" firstAttribute="top" secondItem="Sdv-Fw-LQq" secondAttribute="bottom" id="Dju-X3-YpC"/>
<constraint firstItem="Aih-8T-qgv" firstAttribute="leading" secondItem="2YN-Dg-9F2" secondAttribute="leading" id="ERI-aS-dQO"/>
<constraint firstItem="8LD-xq-b8N" firstAttribute="leading" secondItem="f2v-9B-nOm" secondAttribute="trailing" id="EYZ-3d-gcS"/>
<constraint firstItem="OHd-oI-XTi" firstAttribute="height" secondItem="Loy-Fk-sOd" secondAttribute="height" id="EZW-WE-IFk"/>
<constraint firstItem="Z4K-ej-cbf" firstAttribute="leading" secondItem="2YN-Dg-9F2" secondAttribute="leading" constant="10" id="EcN-JQ-wK0"/>
<constraint firstAttribute="trailing" secondItem="fQz-BB-LrD" secondAttribute="trailing" constant="10" id="FHa-x2-2MG"/>
<constraint firstItem="em7-UJ-Joo" firstAttribute="height" secondItem="Loy-Fk-sOd" secondAttribute="height" id="FXr-v7-lIc"/>
<constraint firstItem="em7-UJ-Joo" firstAttribute="leading" secondItem="2YN-Dg-9F2" secondAttribute="leading" constant="10" id="Fct-tp-KWb"/>
<constraint firstItem="fxC-LW-Dp9" firstAttribute="centerY" secondItem="mXy-bk-ceo" secondAttribute="centerY" id="FlS-c3-ODL"/>
<constraint firstItem="HOj-yn-LQ9" firstAttribute="top" secondItem="Loy-Fk-sOd" secondAttribute="bottom" id="Fs2-XB-4rq"/>
<constraint firstItem="he4-3E-dcb" firstAttribute="height" secondItem="Loy-Fk-sOd" secondAttribute="height" id="G6O-cA-dww"/>
<constraint firstItem="MdV-Xi-BKR" firstAttribute="height" secondItem="Loy-Fk-sOd" secondAttribute="height" id="GAy-9H-DpZ"/>
<constraint firstItem="nO1-eK-qF6" firstAttribute="centerY" secondItem="4Re-H9-pwK" secondAttribute="centerY" id="Gds-2l-E0g"/>
<constraint firstItem="8LD-xq-b8N" firstAttribute="top" secondItem="BXf-ft-vHl" secondAttribute="bottom" id="HbQ-26-oFO"/>
<constraint firstItem="0uE-ms-WXX" firstAttribute="leading" secondItem="2YN-Dg-9F2" secondAttribute="leading" constant="10" id="HiF-Tv-dyU"/>
<constraint firstItem="VEQ-SS-tQN" firstAttribute="width" secondItem="5g4-VN-3D0" secondAttribute="width" id="HlL-ni-S0e"/>
@ -672,11 +754,14 @@
<constraint firstItem="idt-HJ-NT3" firstAttribute="top" secondItem="H6E-47-kUV" secondAttribute="bottom" id="IVo-sw-WTp"/>
<constraint firstItem="8LD-xq-b8N" firstAttribute="leading" secondItem="f2v-9B-nOm" secondAttribute="trailing" id="J4j-PK-AMy"/>
<constraint firstItem="BXf-ft-vHl" firstAttribute="top" secondItem="LPI-AA-rrg" secondAttribute="bottom" id="JV6-ho-MbV"/>
<constraint firstItem="pAy-TQ-lAj" firstAttribute="centerY" secondItem="sro-Ep-8wL" secondAttribute="centerY" id="Jkb-fq-i1m"/>
<constraint firstItem="NN0-pa-0Qt" firstAttribute="width" secondItem="H6E-47-kUV" secondAttribute="width" id="JqH-bt-lYx"/>
<constraint firstAttribute="trailing" secondItem="do1-lk-i4d" secondAttribute="trailing" id="Jzu-Ih-ILM"/>
<constraint firstAttribute="trailing" secondItem="VEQ-SS-tQN" secondAttribute="trailing" constant="10" id="KhO-y9-qzr"/>
<constraint firstItem="MdV-Xi-BKR" firstAttribute="leading" secondItem="2YN-Dg-9F2" secondAttribute="leading" constant="10" id="Kw3-x1-F6f"/>
<constraint firstItem="LPI-AA-rrg" firstAttribute="leading" secondItem="Dp0-oG-lfr" secondAttribute="trailing" id="Lhq-GZ-GZd"/>
<constraint firstItem="4Re-H9-pwK" firstAttribute="height" secondItem="Loy-Fk-sOd" secondAttribute="height" id="MCy-aj-6aT"/>
<constraint firstAttribute="trailing" secondItem="nO1-eK-qF6" secondAttribute="trailing" id="MNG-X5-cBp"/>
<constraint firstItem="jWW-bv-Dfp" firstAttribute="leading" secondItem="2YN-Dg-9F2" secondAttribute="leading" constant="10" id="MYs-Un-4XX"/>
<constraint firstItem="BXf-ft-vHl" firstAttribute="leading" secondItem="MdV-Xi-BKR" secondAttribute="trailing" id="Nfy-he-fZz"/>
<constraint firstItem="k64-uO-je8" firstAttribute="top" secondItem="em7-UJ-Joo" secondAttribute="bottom" id="NpC-xI-O0s"/>
@ -687,6 +772,7 @@
<constraint firstItem="m3e-KD-2Cx" firstAttribute="leading" secondItem="2YN-Dg-9F2" secondAttribute="leading" constant="10" id="QET-mC-XXE"/>
<constraint firstItem="5g4-VN-3D0" firstAttribute="height" secondItem="Loy-Fk-sOd" secondAttribute="height" id="RHm-Aj-zkH"/>
<constraint firstItem="f2v-9B-nOm" firstAttribute="top" secondItem="MdV-Xi-BKR" secondAttribute="bottom" id="RML-AS-heX"/>
<constraint firstItem="do1-lk-i4d" firstAttribute="centerY" secondItem="fQz-BB-LrD" secondAttribute="centerY" id="Rv3-FS-xPe"/>
<constraint firstItem="m3e-KD-2Cx" firstAttribute="top" secondItem="f2v-9B-nOm" secondAttribute="bottom" id="SS7-ie-8hH"/>
<constraint firstItem="mXy-bk-ceo" firstAttribute="height" secondItem="Loy-Fk-sOd" secondAttribute="height" id="SbQ-Y3-mZg"/>
<constraint firstItem="fQz-BB-LrD" firstAttribute="top" secondItem="8LD-xq-b8N" secondAttribute="bottom" id="SyT-ih-NHn"/>
@ -696,6 +782,7 @@
<constraint firstItem="BXf-ft-vHl" firstAttribute="width" secondItem="MdV-Xi-BKR" secondAttribute="width" id="U6V-Ca-yeQ"/>
<constraint firstItem="jWW-bv-Dfp" firstAttribute="top" secondItem="5g4-VN-3D0" secondAttribute="bottom" id="UYD-Ko-Xqk"/>
<constraint firstAttribute="trailing" secondItem="Sdv-Fw-LQq" secondAttribute="trailing" constant="10" id="UuC-eK-zI8"/>
<constraint firstItem="e8V-cy-gJm" firstAttribute="centerY" secondItem="BXf-ft-vHl" secondAttribute="centerY" id="Uzv-jl-W5J"/>
<constraint firstAttribute="trailing" secondItem="BXf-ft-vHl" secondAttribute="trailing" constant="10" id="V1A-Gv-amV"/>
<constraint firstItem="BXf-ft-vHl" firstAttribute="top" secondItem="LPI-AA-rrg" secondAttribute="bottom" id="VN7-DD-eQ1"/>
<constraint firstItem="NN0-pa-0Qt" firstAttribute="leading" secondItem="H6E-47-kUV" secondAttribute="trailing" id="W2B-yp-t2g"/>
@ -704,12 +791,16 @@
<constraint firstItem="VEQ-SS-tQN" firstAttribute="top" secondItem="mXy-bk-ceo" secondAttribute="bottom" id="WeV-L0-CKt"/>
<constraint firstItem="m3e-KD-2Cx" firstAttribute="height" secondItem="Loy-Fk-sOd" secondAttribute="height" id="WsN-R1-aTt"/>
<constraint firstItem="DKU-Ht-Zkn" firstAttribute="top" secondItem="fQz-BB-LrD" secondAttribute="bottom" constant="1" id="X0c-jL-c4b"/>
<constraint firstItem="SOp-hE-d9Q" firstAttribute="height" secondItem="Loy-Fk-sOd" secondAttribute="height" id="X1X-vQ-SP6"/>
<constraint firstItem="Loy-Fk-sOd" firstAttribute="centerX" secondItem="2YN-Dg-9F2" secondAttribute="centerX" id="XeF-GP-Dga"/>
<constraint firstItem="LPI-AA-rrg" firstAttribute="leading" secondItem="Dp0-oG-lfr" secondAttribute="trailing" id="Xhk-IS-lAC"/>
<constraint firstItem="VEQ-SS-tQN" firstAttribute="height" secondItem="Loy-Fk-sOd" secondAttribute="height" id="XiW-kr-ASx"/>
<constraint firstItem="MxW-ec-JT2" firstAttribute="centerY" secondItem="Yj4-ZZ-gxG" secondAttribute="centerY" id="YZA-lG-oAh"/>
<constraint firstItem="LPI-AA-rrg" firstAttribute="width" secondItem="Dp0-oG-lfr" secondAttribute="width" id="Yih-8M-3Qn"/>
<constraint firstItem="Z4K-ej-cbf" firstAttribute="top" secondItem="k64-uO-je8" secondAttribute="bottom" id="ZKQ-fG-B9V"/>
<constraint firstItem="jWW-bv-Dfp" firstAttribute="centerY" secondItem="he4-3E-dcb" secondAttribute="centerY" id="ZKj-1A-fe4"/>
<constraint firstItem="Zec-2v-VfE" firstAttribute="top" secondItem="Z4K-ej-cbf" secondAttribute="bottom" id="a8a-m9-oMQ"/>
<constraint firstAttribute="trailing" secondItem="fxC-LW-Dp9" secondAttribute="trailing" id="av8-PJ-w1T"/>
<constraint firstItem="fQz-BB-LrD" firstAttribute="leading" secondItem="m3e-KD-2Cx" secondAttribute="trailing" id="b13-14-ySq"/>
<constraint firstItem="Yj4-ZZ-gxG" firstAttribute="leading" secondItem="idt-HJ-NT3" secondAttribute="trailing" id="bOo-7V-qir"/>
<constraint firstItem="MdV-Xi-BKR" firstAttribute="top" secondItem="Dp0-oG-lfr" secondAttribute="bottom" id="bc4-qm-quj"/>
@ -725,8 +816,10 @@
<constraint firstItem="4Re-H9-pwK" firstAttribute="top" secondItem="VEQ-SS-tQN" secondAttribute="bottom" id="cnz-QP-ZVy"/>
<constraint firstItem="BXf-ft-vHl" firstAttribute="leading" secondItem="MdV-Xi-BKR" secondAttribute="trailing" id="cxP-Vi-7hO"/>
<constraint firstItem="Zec-2v-VfE" firstAttribute="leading" secondItem="2YN-Dg-9F2" secondAttribute="leading" constant="10" id="d25-QY-LtA"/>
<constraint firstItem="idt-HJ-NT3" firstAttribute="centerY" secondItem="hRk-g1-LtS" secondAttribute="centerY" id="dAV-NP-JGU"/>
<constraint firstItem="4Re-H9-pwK" firstAttribute="width" secondItem="jWW-bv-Dfp" secondAttribute="width" id="dBY-nd-Wsg"/>
<constraint firstItem="sro-Ep-8wL" firstAttribute="width" secondItem="k64-uO-je8" secondAttribute="width" id="dJd-zR-EhR"/>
<constraint firstItem="nO1-eK-qF6" firstAttribute="height" secondItem="Loy-Fk-sOd" secondAttribute="height" id="ePH-nc-2x7"/>
<constraint firstItem="mXy-bk-ceo" firstAttribute="leading" secondItem="Zec-2v-VfE" secondAttribute="trailing" id="eY7-s1-cRf"/>
<constraint firstItem="VEQ-SS-tQN" firstAttribute="leading" secondItem="5g4-VN-3D0" secondAttribute="trailing" id="etd-CQ-yPd"/>
<constraint firstItem="LPI-AA-rrg" firstAttribute="top" secondItem="Yj4-ZZ-gxG" secondAttribute="bottom" id="fBa-2u-UMq"/>
@ -735,10 +828,14 @@
<constraint firstItem="Zec-2v-VfE" firstAttribute="height" secondItem="Loy-Fk-sOd" secondAttribute="height" id="fkD-Ei-nrK"/>
<constraint firstItem="NN0-pa-0Qt" firstAttribute="top" secondItem="4Re-H9-pwK" secondAttribute="bottom" id="gi9-bO-SQ0"/>
<constraint firstItem="fQz-BB-LrD" firstAttribute="leading" secondItem="m3e-KD-2Cx" secondAttribute="trailing" id="hbe-SU-tKz"/>
<constraint firstItem="hRk-g1-LtS" firstAttribute="leading" secondItem="2YN-Dg-9F2" secondAttribute="leading" id="iGB-YX-n5y"/>
<constraint firstItem="BXf-ft-vHl" firstAttribute="leading" secondItem="MdV-Xi-BKR" secondAttribute="trailing" id="iVQ-OD-VO5"/>
<constraint firstItem="VEQ-SS-tQN" firstAttribute="leading" secondItem="5g4-VN-3D0" secondAttribute="trailing" id="iXM-0k-Nuh"/>
<constraint firstItem="hRk-g1-LtS" firstAttribute="height" secondItem="Loy-Fk-sOd" secondAttribute="height" id="jWm-hB-1nO"/>
<constraint firstItem="Z4K-ej-cbf" firstAttribute="height" secondItem="Loy-Fk-sOd" secondAttribute="height" id="jtS-t9-4hz"/>
<constraint firstItem="idt-HJ-NT3" firstAttribute="top" secondItem="H6E-47-kUV" secondAttribute="bottom" id="jyJ-ho-dGR"/>
<constraint firstItem="k64-uO-je8" firstAttribute="centerY" secondItem="OHd-oI-XTi" secondAttribute="centerY" id="k2v-s6-TR3"/>
<constraint firstItem="MxW-ec-JT2" firstAttribute="height" secondItem="Loy-Fk-sOd" secondAttribute="height" id="kPo-ek-KZ7"/>
<constraint firstItem="m3e-KD-2Cx" firstAttribute="top" secondItem="f2v-9B-nOm" secondAttribute="bottom" id="kYa-Gp-Stj"/>
<constraint firstItem="8LD-xq-b8N" firstAttribute="height" secondItem="Loy-Fk-sOd" secondAttribute="height" id="kdy-yA-ft3"/>
<constraint firstItem="fQz-BB-LrD" firstAttribute="height" secondItem="Loy-Fk-sOd" secondAttribute="height" id="lKH-Aa-4Mm"/>
@ -746,11 +843,16 @@
<constraint firstItem="MdV-Xi-BKR" firstAttribute="top" secondItem="Dp0-oG-lfr" secondAttribute="bottom" id="mMR-ut-7GP"/>
<constraint firstItem="Sdv-Fw-LQq" firstAttribute="leading" secondItem="Z4K-ej-cbf" secondAttribute="trailing" id="nly-rZ-SIC"/>
<constraint firstItem="8LD-xq-b8N" firstAttribute="width" secondItem="f2v-9B-nOm" secondAttribute="width" id="nmd-aj-Y2X"/>
<constraint firstItem="92b-Xm-AAk" firstAttribute="height" secondItem="Loy-Fk-sOd" secondAttribute="height" id="nzD-QH-lCR"/>
<constraint firstItem="e8V-cy-gJm" firstAttribute="height" secondItem="Loy-Fk-sOd" secondAttribute="height" id="o8p-H8-dp1"/>
<constraint firstItem="8LD-xq-b8N" firstAttribute="top" secondItem="BXf-ft-vHl" secondAttribute="bottom" id="oaA-d1-2Os"/>
<constraint firstItem="SOp-hE-d9Q" firstAttribute="leading" secondItem="2YN-Dg-9F2" secondAttribute="leading" id="oc5-fB-KuJ"/>
<constraint firstItem="f2v-9B-nOm" firstAttribute="leading" secondItem="2YN-Dg-9F2" secondAttribute="leading" constant="10" id="ou5-Fj-iqn"/>
<constraint firstItem="idt-HJ-NT3" firstAttribute="leading" secondItem="2YN-Dg-9F2" secondAttribute="leading" constant="10" id="ous-DB-yZp"/>
<constraint firstAttribute="trailing" secondItem="MxW-ec-JT2" secondAttribute="trailing" id="ozt-uV-9tv"/>
<constraint firstItem="HOj-yn-LQ9" firstAttribute="height" secondItem="Loy-Fk-sOd" secondAttribute="height" id="p2r-Vy-At2"/>
<constraint firstItem="idt-HJ-NT3" firstAttribute="top" secondItem="H6E-47-kUV" secondAttribute="bottom" id="pS8-kT-vTI"/>
<constraint firstAttribute="trailing" secondItem="e8V-cy-gJm" secondAttribute="trailing" id="pcf-Xs-LdO"/>
<constraint firstItem="NN0-pa-0Qt" firstAttribute="leading" secondItem="H6E-47-kUV" secondAttribute="trailing" id="qDp-Vx-E0F"/>
<constraint firstItem="H6E-47-kUV" firstAttribute="top" secondItem="jWW-bv-Dfp" secondAttribute="bottom" id="qF4-pJ-R1s"/>
<constraint firstItem="Yj4-ZZ-gxG" firstAttribute="top" secondItem="NN0-pa-0Qt" secondAttribute="bottom" id="qRk-2w-UCv"/>
@ -761,6 +863,8 @@
<constraint firstItem="em7-UJ-Joo" firstAttribute="top" secondItem="Loy-Fk-sOd" secondAttribute="bottom" id="sBF-K8-8YO"/>
<constraint firstItem="DKU-Ht-Zkn" firstAttribute="top" secondItem="0uE-ms-WXX" secondAttribute="bottom" id="sTf-ht-SYK"/>
<constraint firstAttribute="trailing" secondItem="DKU-Ht-Zkn" secondAttribute="trailing" constant="1" id="sbE-Nv-7At"/>
<constraint firstItem="m3e-KD-2Cx" firstAttribute="centerY" secondItem="SOp-hE-d9Q" secondAttribute="centerY" id="swr-Ya-6KE"/>
<constraint firstItem="92b-Xm-AAk" firstAttribute="leading" secondItem="2YN-Dg-9F2" secondAttribute="leading" id="t1d-lg-x6I"/>
<constraint firstItem="H6E-47-kUV" firstAttribute="leading" secondItem="2YN-Dg-9F2" secondAttribute="leading" constant="10" id="tcm-nk-86V"/>
<constraint firstItem="4Re-H9-pwK" firstAttribute="leading" secondItem="jWW-bv-Dfp" secondAttribute="trailing" id="ti2-kp-IMz"/>
<constraint firstAttribute="trailing" secondItem="Yj4-ZZ-gxG" secondAttribute="trailing" constant="10" id="uDW-6J-e3T"/>
@ -770,9 +874,13 @@
<constraint firstItem="HOj-yn-LQ9" firstAttribute="leading" secondItem="em7-UJ-Joo" secondAttribute="trailing" id="ueY-HQ-3eJ"/>
<constraint firstItem="mXy-bk-ceo" firstAttribute="width" secondItem="Zec-2v-VfE" secondAttribute="width" id="v98-YS-LwX"/>
<constraint firstAttribute="trailing" secondItem="NN0-pa-0Qt" secondAttribute="trailing" constant="10" id="vUp-r5-wmX"/>
<constraint firstItem="OHd-oI-XTi" firstAttribute="leading" secondItem="2YN-Dg-9F2" secondAttribute="leading" id="vWb-Op-IGI"/>
<constraint firstItem="he4-3E-dcb" firstAttribute="leading" secondItem="2YN-Dg-9F2" secondAttribute="leading" id="vXt-ht-y0e"/>
<constraint firstItem="mXy-bk-ceo" firstAttribute="top" secondItem="Sdv-Fw-LQq" secondAttribute="bottom" id="wA0-j7-xye"/>
<constraint firstItem="MdV-Xi-BKR" firstAttribute="centerY" secondItem="92b-Xm-AAk" secondAttribute="centerY" id="wJa-Yy-wsH"/>
<constraint firstItem="Yj4-ZZ-gxG" firstAttribute="leading" secondItem="idt-HJ-NT3" secondAttribute="trailing" id="wiH-6m-qAm"/>
<constraint firstAttribute="trailing" secondItem="LPI-AA-rrg" secondAttribute="trailing" constant="10" id="wok-7L-nS2"/>
<constraint firstAttribute="trailing" secondItem="pAy-TQ-lAj" secondAttribute="trailing" id="y1e-Gc-Wfm"/>
<constraint firstItem="Dp0-oG-lfr" firstAttribute="top" secondItem="idt-HJ-NT3" secondAttribute="bottom" id="yvB-u5-TsL"/>
<constraint firstItem="m3e-KD-2Cx" firstAttribute="top" secondItem="f2v-9B-nOm" secondAttribute="bottom" id="zv5-Rf-7sA"/>
</constraints>
@ -812,4 +920,8 @@
<point key="canvasLocation" x="361" y="966"/>
</scene>
</scenes>
<resources>
<image name="tri" width="15" height="21"/>
<image name="triFlip" width="15" height="21"/>
</resources>
</document>

View File

@ -12,11 +12,11 @@
@interface ViewController : UIViewController
@property(strong, nonatomic) ViewControllerScreen *screen;
@property(strong, nonatomic) ViewControllerKeyboard *keys;
@property(strong, nonatomic) IBOutlet UIView *backdropKeys;
@property(strong, nonatomic) IBOutlet UIView *backdropScreen;
@property(strong, nonatomic) ViewControllerScreen *screen;
@property(strong, nonatomic) ViewControllerKeyboard *keys;
@end

View File

@ -11,25 +11,25 @@
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
// Round corners
_backdropKeys.layer.cornerRadius = 5;
_backdropKeys.layer.masksToBounds = YES;
_backdropScreen.layer.cornerRadius = 5;
_backdropScreen.layer.masksToBounds = YES;
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
// Round corners
_backdropKeys.layer.cornerRadius = 5;
_backdropKeys.layer.masksToBounds = YES;
_backdropScreen.layer.cornerRadius = 5;
_backdropScreen.layer.masksToBounds = YES;
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
NSString *segueName = segue.identifier;
if ([segueName isEqualToString:@"keyboard"]) {
_keys = (ViewControllerKeyboard *)[segue destinationViewController];
_keys.main = self;
}
if ([segueName isEqualToString:@"screen"]) {
_screen = (ViewControllerScreen *)[segue destinationViewController];
_screen.main = self;
}
NSString *segueName = segue.identifier;
if ([segueName isEqualToString:@"keyboard"]) {
_keys = (ViewControllerKeyboard *)segue.destinationViewController;
_keys.main = self;
}
if ([segueName isEqualToString:@"screen"]) {
_screen = (ViewControllerScreen *)segue.destinationViewController;
_screen.main = self;
}
}
@end

View File

@ -12,14 +12,12 @@
@interface ViewControllerKeyboard : UIViewController
@property(nonatomic) BOOL alphaOn;
@property(strong, nonatomic) NSArray *alphabet;
@property(strong, nonatomic) NSArray *numeric;
@property(strong, nonatomic) ViewController *main;
@property(strong, nonatomic) IBOutletCollection(UIButton) NSArray *Keys;
@property(strong, nonatomic) ViewController *main;
- (IBAction)KeyTaps:(UIButton *)sender;
@end

View File

@ -12,78 +12,76 @@
@implementation ViewControllerKeyboard
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
_alphaOn = true;
_alphabet = [[NSArray alloc]
initWithObjects:@"A", @"B", @"C", @"D", @"E", @"F", @"G", @"H", @"I",
@"J", @"K", @"L", @"M", @"N", @"O", @"P", @"Q", @"R",
@"S", @"T", @"U", @"V", @"W", @"X", @"Y", @"Z", @"SP",
@"CLR", @"DEL", @"NUM", @"M\nE\nN\nU", @"P\nE\nR\nF",
@"R\nT\nE", nil];
_numeric = [[NSArray alloc]
initWithObjects:@"1", @"2", @"3", @"", @"", @"", @"4", @"5", @"6",
@"", @"", @"", @"7", @"8", @"9", @"", @"", @"",
@".", @"0", @"/", @"", @"", @"", @"", @"", @"SP",
@"CLR", @"DEL", @"LET", @"M\nE\nN\nU", @"P\nE\nR\nF",
@"R\nT\nE", nil];
// Init Board
[self switchKeyboard];
// Round button corners
for (UIButton *but in _Keys) {
but.layer.cornerRadius = 5;
but.layer.masksToBounds = YES;
}
[super viewDidLoad];
// Do any additional setup after loading the view.
_alphaOn = true;
_alphabet = @[@"A", @"B", @"C", @"D", @"E", @"F", @"G", @"H", @"I",
@"J", @"K", @"L", @"M", @"N", @"O", @"P", @"Q", @"R",
@"S", @"T", @"U", @"V", @"W", @"X", @"Y", @"Z", @"SP",
@"CLR", @"DEL", @"NUM", @"M\nE\nN\nU", @"P\nE\nR\nF",
@"R\nT\nE"];
_numeric = @[@"1", @"2", @"3", @"", @"", @"", @"4", @"5", @"6",
@"", @"", @"", @"7", @"8", @"9", @"", @"", @"",
@".", @"0", @"/", @"", @"", @"", @"", @"", @"SP",
@"CLR", @"DEL", @"LET", @"M\nE\nN\nU", @"P\nE\nR\nF",
@"R\nT\nE"];
// Init Board
[self switchKeyboard];
// Round button corners
for (UIButton *but in _Keys) {
but.layer.cornerRadius = 5;
but.layer.masksToBounds = YES;
}
}
- (IBAction)KeyTaps:(UIButton *)sender {
if ([sender.restorationIdentifier isEqualToString:@"Switch"]) {
_alphaOn = !_alphaOn;
[self switchKeyboard];
} else if ([sender.restorationIdentifier isEqualToString:@"Space"]) {
_main.screen.Scratchpad.text =
[_main.screen.Scratchpad.text stringByAppendingString:@" "];
} else if ([sender.restorationIdentifier isEqualToString:@"Clear"]) {
if ([_main.screen.Scratchpad.text isEqualToString:@"DELETE"]) {
_main.screen.Scratchpad.text = @"";
} else if (_main.screen.Scratchpad.text.length > 0) {
_main.screen.Scratchpad.text = [_main.screen.Scratchpad.text
substringToIndex:[_main.screen.Scratchpad.text length] - 1];
if ([sender.restorationIdentifier isEqualToString:@"Switch"]) {
_alphaOn = !_alphaOn;
[self switchKeyboard];
} else if ([sender.restorationIdentifier isEqualToString:@"Space"]) {
_main.screen.Scratchpad.text =
[_main.screen.Scratchpad.text stringByAppendingString:@" "];
} else if ([sender.restorationIdentifier isEqualToString:@"Clear"]) {
if ([_main.screen.Scratchpad.text isEqualToString:@"DELETE"]) {
_main.screen.Scratchpad.text = @"";
} else if (_main.screen.Scratchpad.text.length > 0) {
_main.screen.Scratchpad.text = [_main.screen.Scratchpad.text
substringToIndex:(_main.screen.Scratchpad.text).length - 1];
}
} else if ([sender.restorationIdentifier isEqualToString:@"Delete"]) {
_main.screen.Scratchpad.text = @"DELETE";
} else if ([sender.restorationIdentifier isEqualToString:@"Top"]) {
[_main.screen loadScreen:@"MENU"];
} else if ([sender.restorationIdentifier isEqualToString:@"Mid"]) {
[_main.screen loadScreen:@"PERF INIT"];
} else if ([sender.restorationIdentifier isEqualToString:@"Bot"]) {
[_main.screen loadScreen:@"ROUTE"];
} else {
_main.screen.Scratchpad.text = [_main.screen.Scratchpad.text
stringByAppendingString:sender.titleLabel.text];
}
} else if ([sender.restorationIdentifier isEqualToString:@"Delete"]) {
_main.screen.Scratchpad.text = @"DELETE";
} else if ([sender.restorationIdentifier isEqualToString:@"Top"]) {
[_main.screen loadScreen:@"MENU"];
} else if ([sender.restorationIdentifier isEqualToString:@"Mid"]) {
[_main.screen loadScreen:@"PERF INIT"];
} else if ([sender.restorationIdentifier isEqualToString:@"Bot"]) {
[_main.screen loadScreen:@"ROUTE"];
} else {
_main.screen.Scratchpad.text = [_main.screen.Scratchpad.text
stringByAppendingString:sender.titleLabel.text];
}
}
- (void)switchKeyboard {
if (_alphaOn) {
for (int i = 0; i < _Keys.count; i++) {
((UIButton *)_Keys[i]).titleLabel.numberOfLines = 0;
((UIButton *)_Keys[i]).titleLabel.lineBreakMode =
NSLineBreakByCharWrapping;
[((UIButton *)_Keys[i]) setTitle:_alphabet[i]
forState:UIControlStateNormal];
[((UIButton *)_Keys[i]).titleLabel sizeToFit];
if (_alphaOn) {
for (int i = 0; i < _Keys.count; i++) {
((UIButton *)_Keys[i]).titleLabel.numberOfLines = 0;
((UIButton *)_Keys[i]).titleLabel.lineBreakMode =
NSLineBreakByCharWrapping;
[((UIButton *)_Keys[i]) setTitle:_alphabet[i]
forState:UIControlStateNormal];
[((UIButton *)_Keys[i]).titleLabel sizeToFit];
}
} else {
for (int i = 0; i < _Keys.count; i++) {
((UIButton *)_Keys[i]).titleLabel.numberOfLines = 0;
((UIButton *)_Keys[i]).titleLabel.lineBreakMode =
NSLineBreakByCharWrapping;
[((UIButton *)_Keys[i]) setTitle:_numeric[i]
forState:UIControlStateNormal];
[((UIButton *)_Keys[i]).titleLabel sizeToFit];
}
}
} else {
for (int i = 0; i < _Keys.count; i++) {
((UIButton *)_Keys[i]).titleLabel.numberOfLines = 0;
((UIButton *)_Keys[i]).titleLabel.lineBreakMode =
NSLineBreakByCharWrapping;
[((UIButton *)_Keys[i]) setTitle:_numeric[i]
forState:UIControlStateNormal];
[((UIButton *)_Keys[i]).titleLabel sizeToFit];
}
}
}
@end

View File

@ -11,6 +11,9 @@
@class ViewController;
@interface ViewControllerScreen : UIViewController
@property(strong, nonatomic) ViewController *main;
@property(nonatomic) NSUInteger numRoutePage;
@property(strong, nonatomic) IBOutletCollection(UILabel) NSArray *LSK;
@property(strong, nonatomic) IBOutletCollection(UILabel) NSArray *Desc;
@ -18,8 +21,6 @@
@property(strong, nonatomic) IBOutlet UILabel *Header;
@property(strong, nonatomic) ViewController *main;
@property(strong, nonatomic) IBOutlet NSLayoutConstraint *FrameHeight;
- (void)loadScreen:(NSString *)screenName;

View File

@ -25,8 +25,8 @@
UITapGestureRecognizer *reg = [[UITapGestureRecognizer alloc]
initWithTarget:self
action:@selector(enterLSK:)];
[reg setNumberOfTapsRequired:1];
[reg setNumberOfTouchesRequired:1];
reg.numberOfTapsRequired = 1;
reg.numberOfTouchesRequired = 1;
[label addGestureRecognizer:reg];
}
}
@ -92,8 +92,7 @@
labelSize.height / mod -
[testString
sizeWithAttributes:
[NSDictionary dictionaryWithObject:tempFont
forKey:NSFontAttributeName]]
@{NSFontAttributeName: tempFont}]
.height;
if (mid == tempMin || mid == tempMax) {