isd-color-palette 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (23) hide show
  1. data/README.md +63 -0
  2. data/lib/isd-color-palette.rb +9 -0
  3. data/lib/isd-color-palette/controller/isd_basic_color_collection_view_controller.rb +123 -0
  4. data/lib/isd-color-palette/controller/isd_color_palette_container_view_controller.rb +87 -0
  5. data/lib/isd-color-palette/controller/isd_color_palette_view_controller.rb +136 -0
  6. data/lib/isd-color-palette/controller/isd_rgba_color_view_controller.rb +118 -0
  7. data/lib/isd-color-palette/model/string_ids_extention.rb +12 -0
  8. data/lib/isd-color-palette/model/uicolor_isd_extention.rb +39 -0
  9. data/lib/isd-color-palette/view/isd_basic_color_collection_reusable_view.rb +38 -0
  10. data/lib/isd-color-palette/view/isd_color_palette_collection_view_cell.rb +69 -0
  11. data/lib/isd-color-palette/view/isd_rgba_slider_view.rb +124 -0
  12. data/lib/resources/ISDColorPalette.storyboard +435 -0
  13. data/lib/resources/ISDColorPalette.storyboardc/DDB-9Z-aLd-view-cjl-ZX-JRH.nib +0 -0
  14. data/lib/resources/ISDColorPalette.storyboardc/ISDColorPaletteViewController.nib +0 -0
  15. data/lib/resources/ISDColorPalette.storyboardc/Info.plist +0 -0
  16. data/lib/resources/ISDColorPalette.storyboardc/Ojg-L0-U3y-view-RZ8-kV-96R.nib +0 -0
  17. data/lib/resources/ISDColorPalette.storyboardc/UIViewController-DDB-9Z-aLd.nib +0 -0
  18. data/lib/resources/ISDColorPalette.storyboardc/UIViewController-Ojg-L0-U3y.nib +0 -0
  19. data/lib/resources/ISDColorPalette.storyboardc/UIViewController-Yhi-Ks-PNF.nib +0 -0
  20. data/lib/resources/ISDColorPalette.storyboardc/UIViewController-lfU-qe-W46.nib +0 -0
  21. data/lib/resources/ISDColorPalette.storyboardc/Yhi-Ks-PNF-view-DbN-fh-FRU.nib +0 -0
  22. data/lib/resources/ISDColorPalette.storyboardc/ccp-rq-upX-view-Gjb-sR-XRJ.nib +0 -0
  23. metadata +87 -0
@@ -0,0 +1,12 @@
1
+ # -*- coding: utf-8 -*-
2
+ class String
3
+
4
+ def underscore
5
+ self.gsub(/::/, '/').
6
+ gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
7
+ gsub(/([a-z\d])([A-Z])/,'\1_\2').
8
+ tr("-", "_").
9
+ downcase
10
+ end
11
+
12
+ end
@@ -0,0 +1,39 @@
1
+ # -*- coding: utf-8 -*-
2
+ class UIColor
3
+
4
+ class << self
5
+
6
+ def color_by_serialize s
7
+ begin
8
+ a = s.split(",")
9
+ case a[0]
10
+ when "RGBA"
11
+ UIColor.colorWithRed a[1].to_f,
12
+ green:a[2].to_f,
13
+ blue:a[3].to_f,
14
+ alpha:a[4].to_f
15
+ else
16
+ nil
17
+ end
18
+ rescue
19
+ end
20
+ end
21
+
22
+ end
23
+
24
+ def to_serialize
25
+ "RGBA,#{self.red},#{self.green},#{self.blue},#{self.alpha}"
26
+ end
27
+
28
+ def color_name
29
+ name = system_name || css_name || hex
30
+ name = name.to_s unless name.is_a? String
31
+ name.underscore.gsub(/_color/, "").gsub(/_/, " ").capitalize
32
+ end
33
+
34
+ def monochrome
35
+ y = 0.299 * self.red + 0.587 * self.green + 0.114 * self.blue
36
+ UIColor.alloc.initWithWhite y, alpha:self.alpha
37
+ end
38
+
39
+ end
@@ -0,0 +1,38 @@
1
+ # -*- coding: utf-8 -*-
2
+ class ISDBasicColorCollectionReusableView < UICollectionReusableView
3
+
4
+ attr_accessor :headerLabel # IBOutlet
5
+
6
+ =begin
7
+ def initWithFrame frame
8
+ super
9
+ self
10
+ end
11
+ =end
12
+
13
+ =begin
14
+ def initWithCorder decode
15
+ super
16
+ self
17
+ end
18
+ =end
19
+
20
+ def awakeFromNib
21
+ self.backgroundColor = :light_gray.uicolor
22
+ end
23
+
24
+ =begin
25
+ def drawRect rect
26
+ context = UIGraphicsGetCurrentContext()
27
+ # Draw your code here.
28
+ end
29
+ =end
30
+
31
+ =begin
32
+ def shouldAutorotateToInterfaceOrientation interfaceOrientation
33
+ interfaceOrientation == UIInterfaceOrientationPortrait
34
+ end
35
+ =end
36
+
37
+ end
38
+
@@ -0,0 +1,69 @@
1
+ # -*- coding: utf-8 -*-
2
+ class ISDColorPaletteCollectionViewCell < UICollectionViewCell
3
+
4
+ attr_accessor :color
5
+
6
+ attr_reader :border_color, :selected_border_color
7
+ attr_reader :color_layer, :solid_layer
8
+
9
+ =begin
10
+ def initWithFrame frame
11
+ super
12
+ self
13
+ end
14
+ =end
15
+
16
+ =begin
17
+ def initWithCorder decode
18
+ super
19
+ self
20
+ end
21
+ =end
22
+
23
+ def awakeFromNib
24
+ @border_color = :white.uicolor
25
+ @selected_border_color = :blue.uicolor
26
+
27
+ l = self.contentView.layer
28
+ l.borderColor = :clear.uicolor.cgcolor
29
+ l.borderWidth = 3
30
+ l.cornerRadius = 2
31
+ l.masksToBounds = true
32
+ l.frame = CGRectInset self.contentView.bounds, 3, 3
33
+ @color_layer = l
34
+
35
+ @solid_layer = CALayer.new
36
+ w = @color_layer.frame.size.width
37
+ h = @color_layer.frame.size.height
38
+ x = CGRectGetMaxX(@color_layer.bounds) - w / 2
39
+ y = -h / 2
40
+ @solid_layer.frame = CGRectMake(x, y, w, h)
41
+ rad = 45 * Math::PI / 180
42
+ @solid_layer.transform = CATransform3DMakeRotation(rad, 0, 0, 1)
43
+ @color_layer.addSublayer @solid_layer
44
+
45
+ self.backgroundView = UIView.new
46
+ l = self.backgroundView.layer
47
+ l.borderColor = self.border_color.cgcolor
48
+ l.borderWidth = 2
49
+ l.cornerRadius = 4
50
+ l.shadowOpacity = 0.5
51
+ l.masksToBounds = true
52
+
53
+ self.selectedBackgroundView = UIView.new
54
+ l = self.selectedBackgroundView.layer
55
+ l.borderColor = self.selected_border_color.cgcolor
56
+ l.borderWidth = 2
57
+ l.cornerRadius = 4
58
+ l.masksToBounds = true
59
+ end
60
+
61
+ def color= color
62
+ @color = color
63
+
64
+ self.color_layer.backgroundColor = color.cgcolor
65
+ self.solid_layer.backgroundColor = color.uicolor(1.0).cgcolor
66
+ end
67
+
68
+ end
69
+
@@ -0,0 +1,124 @@
1
+ # -*- coding: utf-8 -*-
2
+ class ISDRgbaSliderView < UIView
3
+
4
+ attr_accessor :viewController # IBOutlet UIViewController
5
+ attr_accessor :sliderBaseView # IBOutlet UIView
6
+ attr_accessor :valueTextField # IBOutlet UITextField
7
+ attr_accessor :idLabel # IBOutlet UILabel
8
+
9
+ attr_accessor :color_value
10
+ attr_accessor :identity
11
+
12
+ attr_reader :slider
13
+
14
+ =begin
15
+ def initWithFrame frame
16
+ super
17
+ self
18
+ end
19
+ =end
20
+
21
+ =begin
22
+ def initWithCorder decode
23
+ super
24
+ self
25
+ end
26
+ =end
27
+
28
+ def awakeFromNib
29
+ l = self.layer
30
+ l.borderColor = :white.uicolor.cgcolor
31
+ l.borderWidth = 3
32
+ l.cornerRadius = 4
33
+
34
+ @slider = UISlider.new
35
+ rad = -90 * Math::PI / 180
36
+ @slider.transform = CGAffineTransformMakeRotation(rad)
37
+ @slider.frame = CGRectInset sliderBaseView.bounds, 0, 8
38
+ @slider.addTarget self, action:"didChangeValue:", forControlEvents:UIControlEventValueChanged
39
+
40
+ sliderBaseView << @slider
41
+ end
42
+
43
+ def color= color
44
+ @color = color
45
+ @color_value = 0
46
+ if color
47
+ case self.identity
48
+ when "R"
49
+ @color_value = color.red
50
+ when "G"
51
+ @color_value = color.green
52
+ when "B"
53
+ @color_value = color.blue
54
+ when "A"
55
+ @color_value = color.alpha
56
+ end
57
+ set_color_value_to_controls
58
+ set_backgournd_color
59
+ end
60
+ end
61
+
62
+ =begin
63
+ def drawRect rect
64
+ context = UIGraphicsGetCurrentContext()
65
+ # Draw your code here.
66
+ end
67
+ =end
68
+
69
+ =begin
70
+ def shouldAutorotateToInterfaceOrientation interfaceOrientation
71
+ interfaceOrientation == UIInterfaceOrientationPortrait
72
+ end
73
+ =end
74
+
75
+ def didChangeValue sender # IBAction
76
+ case sender
77
+ when UISlider
78
+ @color_value = sender.value
79
+ when UITextField
80
+ @color_value = sender.text.to_f / 255.0
81
+ end
82
+ set_color_value_to_controls
83
+ self.viewController.didChangeColor sender
84
+ end
85
+
86
+ def set_color_value_to_controls
87
+ self.valueTextField.text = [(self.color_value * 255 + 0.5), 255.0].min.to_i.to_s
88
+ self.slider.value = self.color_value
89
+ end
90
+
91
+ def set_backgournd_color
92
+ case self.identity
93
+ when "R"
94
+ bg_color = :red.uicolor
95
+ when "G"
96
+ bg_color = :green.uicolor
97
+ when "B"
98
+ bg_color = :blue.uicolor
99
+ when "A"
100
+ bg_color = :white.uicolor
101
+ end
102
+ self.backgroundColor = :black.uicolor.mix_with bg_color, self.color_value
103
+ self.idLabel.textColor = UIColor.colorWithWhite(self.color_value, alpha:1.0).invert if self.idLabel
104
+ end
105
+
106
+ # UITextField delegate
107
+ def textFieldDidEndEditing(textField)
108
+ if /^\s*\d+\s*$/ =~ textField.text
109
+ @color_value = [textField.text.to_i, 255].min / 255.0
110
+ end
111
+ didChangeValue self
112
+ end
113
+
114
+ def textFieldShouldReturn(textField)
115
+ hide_keyboard textField
116
+ true
117
+ end
118
+
119
+ def hide_keyboard textField = self.valueTextField
120
+ textField.resignFirstResponder if textField
121
+ end
122
+
123
+ end
124
+
@@ -0,0 +1,435 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="4514" systemVersion="13B42" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" initialViewController="lfU-qe-W46">
3
+ <dependencies>
4
+ <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3747"/>
5
+ </dependencies>
6
+ <scenes>
7
+ <!--Color Palette View Controller-->
8
+ <scene sceneID="pvB-KV-tUB">
9
+ <objects>
10
+ <viewController storyboardIdentifier="ISDColorPaletteViewController" id="ccp-rq-upX" customClass="ISDColorPaletteViewController" sceneMemberID="viewController">
11
+ <layoutGuides>
12
+ <viewControllerLayoutGuide type="top" id="sDq-9n-LmZ"/>
13
+ <viewControllerLayoutGuide type="bottom" id="N7L-2h-Uax"/>
14
+ </layoutGuides>
15
+ <view key="view" contentMode="scaleToFill" id="Gjb-sR-XRJ">
16
+ <rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
17
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
18
+ <subviews>
19
+ <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="IJv-WM-KxU">
20
+ <rect key="frame" x="0.0" y="64" width="320" height="32"/>
21
+ <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
22
+ <subviews>
23
+ <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="gFG-ke-7ot">
24
+ <rect key="frame" x="10" y="8" width="300" height="24"/>
25
+ <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
26
+ <subviews>
27
+ <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1qq-AV-Gia">
28
+ <rect key="frame" x="12" y="3" width="276" height="21"/>
29
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
30
+ <fontDescription key="fontDescription" type="system" pointSize="17"/>
31
+ <color key="textColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
32
+ <nil key="highlightedColor"/>
33
+ </label>
34
+ </subviews>
35
+ <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
36
+ <constraints>
37
+ <constraint firstAttribute="trailing" secondItem="1qq-AV-Gia" secondAttribute="trailing" constant="12" id="AOx-LM-Gau"/>
38
+ <constraint firstAttribute="bottom" secondItem="1qq-AV-Gia" secondAttribute="bottom" id="B90-wi-5P8"/>
39
+ <constraint firstItem="1qq-AV-Gia" firstAttribute="leading" secondItem="gFG-ke-7ot" secondAttribute="leading" constant="12" id="zf2-Xe-AEB"/>
40
+ </constraints>
41
+ </view>
42
+ </subviews>
43
+ <color key="backgroundColor" red="0.92941182851791382" green="0.92941182851791382" blue="0.92941182851791382" alpha="1" colorSpace="deviceRGB"/>
44
+ <constraints>
45
+ <constraint firstItem="gFG-ke-7ot" firstAttribute="leading" secondItem="IJv-WM-KxU" secondAttribute="leading" constant="10" id="C3a-1f-t3g"/>
46
+ <constraint firstItem="gFG-ke-7ot" firstAttribute="top" secondItem="IJv-WM-KxU" secondAttribute="top" constant="8" id="V9p-79-6Ni"/>
47
+ <constraint firstAttribute="trailing" secondItem="gFG-ke-7ot" secondAttribute="trailing" constant="10" id="hXq-rz-wSv"/>
48
+ <constraint firstAttribute="bottom" secondItem="gFG-ke-7ot" secondAttribute="bottom" id="mEI-b6-86q"/>
49
+ </constraints>
50
+ </view>
51
+ <containerView contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="a52-Ds-MNa">
52
+ <rect key="frame" x="0.0" y="96" width="320" height="472"/>
53
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
54
+ <color key="backgroundColor" red="0.92941182851791382" green="0.92941182851791382" blue="0.92941182851791382" alpha="1" colorSpace="deviceRGB"/>
55
+ <connections>
56
+ <segue destination="DDB-9Z-aLd" kind="embed" id="ViU-QN-w3Y"/>
57
+ </connections>
58
+ </containerView>
59
+ </subviews>
60
+ <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
61
+ <constraints>
62
+ <constraint firstAttribute="bottom" secondItem="a52-Ds-MNa" secondAttribute="bottom" id="4kp-kj-G0e"/>
63
+ <constraint firstItem="a52-Ds-MNa" firstAttribute="leading" secondItem="Gjb-sR-XRJ" secondAttribute="leading" id="CPK-pT-WZD"/>
64
+ <constraint firstItem="a52-Ds-MNa" firstAttribute="trailing" secondItem="IJv-WM-KxU" secondAttribute="trailing" id="GEE-yZ-72x"/>
65
+ <constraint firstItem="a52-Ds-MNa" firstAttribute="top" secondItem="Gjb-sR-XRJ" secondAttribute="top" constant="96" id="Ohf-Xk-teV"/>
66
+ <constraint firstItem="IJv-WM-KxU" firstAttribute="top" secondItem="sDq-9n-LmZ" secondAttribute="bottom" id="bgy-Fh-LtE"/>
67
+ <constraint firstItem="a52-Ds-MNa" firstAttribute="top" secondItem="IJv-WM-KxU" secondAttribute="bottom" id="e76-0v-8BX"/>
68
+ <constraint firstItem="a52-Ds-MNa" firstAttribute="leading" secondItem="IJv-WM-KxU" secondAttribute="leading" id="l0o-yR-Tjk"/>
69
+ <constraint firstAttribute="trailing" secondItem="IJv-WM-KxU" secondAttribute="trailing" id="xBh-pV-lYl"/>
70
+ </constraints>
71
+ </view>
72
+ <navigationItem key="navigationItem" id="1sv-Rf-XRq"/>
73
+ <connections>
74
+ <outlet property="colorNameLabel" destination="1qq-AV-Gia" id="Wxy-Ez-xqE"/>
75
+ <outlet property="colorWellView" destination="gFG-ke-7ot" id="yXz-tP-nOy"/>
76
+ </connections>
77
+ </viewController>
78
+ <placeholder placeholderIdentifier="IBFirstResponder" id="KeY-Xf-8rk" userLabel="First Responder" sceneMemberID="firstResponder"/>
79
+ </objects>
80
+ <point key="canvasLocation" x="1027" y="646"/>
81
+ </scene>
82
+ <!--Color Palette Container View Controller-->
83
+ <scene sceneID="Khh-el-Qx3">
84
+ <objects>
85
+ <viewController id="DDB-9Z-aLd" customClass="ISDColorPaletteContainerViewController" sceneMemberID="viewController">
86
+ <layoutGuides>
87
+ <viewControllerLayoutGuide type="top" id="O5q-ML-xz8"/>
88
+ <viewControllerLayoutGuide type="bottom" id="ykW-2I-GgC"/>
89
+ </layoutGuides>
90
+ <view key="view" contentMode="scaleToFill" id="cjl-ZX-JRH">
91
+ <rect key="frame" x="0.0" y="0.0" width="320" height="472"/>
92
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
93
+ <subviews>
94
+ <segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" selectedSegmentIndex="0" translatesAutoresizingMaskIntoConstraints="NO" id="e4K-6O-TNV">
95
+ <rect key="frame" x="20" y="9" width="280" height="29"/>
96
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
97
+ <segments>
98
+ <segment title="LIST"/>
99
+ <segment title="RGBA"/>
100
+ </segments>
101
+ <connections>
102
+ <action selector="didChangeValue:" destination="DDB-9Z-aLd" eventType="valueChanged" id="VvE-7X-s36"/>
103
+ </connections>
104
+ </segmentedControl>
105
+ <containerView contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="pHC-ea-RXf">
106
+ <rect key="frame" x="0.0" y="45" width="320" height="427"/>
107
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
108
+ <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
109
+ <connections>
110
+ <segue destination="Ojg-L0-U3y" kind="embed" id="6Cd-Sd-nTW"/>
111
+ </connections>
112
+ </containerView>
113
+ <containerView contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="cGn-55-a2a">
114
+ <rect key="frame" x="0.0" y="45" width="320" height="427"/>
115
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
116
+ <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
117
+ <connections>
118
+ <segue destination="Yhi-Ks-PNF" kind="embed" id="smJ-4z-U1b"/>
119
+ </connections>
120
+ </containerView>
121
+ </subviews>
122
+ <color key="backgroundColor" red="0.92941182850000004" green="0.92941182850000004" blue="0.92941182850000004" alpha="1" colorSpace="deviceRGB"/>
123
+ <constraints>
124
+ <constraint firstItem="cGn-55-a2a" firstAttribute="bottom" secondItem="pHC-ea-RXf" secondAttribute="bottom" id="4lv-qB-cQ5"/>
125
+ <constraint firstItem="cGn-55-a2a" firstAttribute="trailing" secondItem="pHC-ea-RXf" secondAttribute="trailing" id="9c3-sq-Ywi"/>
126
+ <constraint firstItem="cGn-55-a2a" firstAttribute="top" secondItem="pHC-ea-RXf" secondAttribute="top" id="GRe-Y6-u8R"/>
127
+ <constraint firstItem="cGn-55-a2a" firstAttribute="leading" secondItem="cjl-ZX-JRH" secondAttribute="leading" id="Jm3-lE-5Vg"/>
128
+ <constraint firstItem="e4K-6O-TNV" firstAttribute="centerX" secondItem="cGn-55-a2a" secondAttribute="centerX" id="NhE-fH-l51"/>
129
+ <constraint firstAttribute="trailing" secondItem="cGn-55-a2a" secondAttribute="trailing" id="UZU-7q-FPA"/>
130
+ <constraint firstItem="cGn-55-a2a" firstAttribute="leading" secondItem="pHC-ea-RXf" secondAttribute="leading" id="fPo-5n-uqt"/>
131
+ <constraint firstItem="e4K-6O-TNV" firstAttribute="leading" secondItem="cjl-ZX-JRH" secondAttribute="leading" constant="20" symbolic="YES" id="lkv-gH-vLc"/>
132
+ <constraint firstAttribute="bottom" secondItem="cGn-55-a2a" secondAttribute="bottom" id="p4C-fq-dJt"/>
133
+ <constraint firstItem="cGn-55-a2a" firstAttribute="top" secondItem="e4K-6O-TNV" secondAttribute="bottom" constant="8" symbolic="YES" id="qcC-Ty-Fhv"/>
134
+ <constraint firstItem="cGn-55-a2a" firstAttribute="top" secondItem="cjl-ZX-JRH" secondAttribute="top" constant="45" id="yag-3i-hpM"/>
135
+ </constraints>
136
+ </view>
137
+ <connections>
138
+ <outlet property="basicColorView" destination="pHC-ea-RXf" id="AJa-np-rpD"/>
139
+ <outlet property="rgbaColorView" destination="cGn-55-a2a" id="xQZ-hG-oyH"/>
140
+ </connections>
141
+ </viewController>
142
+ <placeholder placeholderIdentifier="IBFirstResponder" id="V9a-WQ-vyG" userLabel="First Responder" sceneMemberID="firstResponder"/>
143
+ </objects>
144
+ <point key="canvasLocation" x="1440" y="694"/>
145
+ </scene>
146
+ <!--Basic Color Collection View Controller-->
147
+ <scene sceneID="0SR-qe-1Uh">
148
+ <objects>
149
+ <collectionViewController autoresizesArchivedViewToFullSize="NO" id="Ojg-L0-U3y" customClass="ISDBasicColorCollectionViewController" sceneMemberID="viewController">
150
+ <collectionView key="view" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" minimumZoomScale="0.0" maximumZoomScale="0.0" dataMode="prototypes" id="RZ8-kV-96R">
151
+ <rect key="frame" x="0.0" y="0.0" width="320" height="427"/>
152
+ <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
153
+ <color key="backgroundColor" red="0.91372555494308472" green="0.91372555494308472" blue="0.91372555494308472" alpha="1" colorSpace="deviceRGB"/>
154
+ <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="4" minimumInteritemSpacing="4" id="NGN-NH-DZQ">
155
+ <size key="itemSize" width="40" height="40"/>
156
+ <size key="headerReferenceSize" width="20" height="20"/>
157
+ <size key="footerReferenceSize" width="0.0" height="0.0"/>
158
+ <inset key="sectionInset" minX="8" minY="8" maxX="8" maxY="8"/>
159
+ </collectionViewFlowLayout>
160
+ <cells>
161
+ <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="ColorWell" id="gtt-zR-EYK" customClass="ISDColorPaletteCollectionViewCell">
162
+ <rect key="frame" x="8" y="28" width="40" height="40"/>
163
+ <autoresizingMask key="autoresizingMask"/>
164
+ <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
165
+ <rect key="frame" x="0.0" y="0.0" width="40" height="40"/>
166
+ <autoresizingMask key="autoresizingMask"/>
167
+ <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
168
+ </view>
169
+ </collectionViewCell>
170
+ </cells>
171
+ <collectionReusableView key="sectionHeaderView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="Header" id="p4g-aO-U9P" customClass="ISDBasicColorCollectionReusableView">
172
+ <rect key="frame" x="0.0" y="0.0" width="320" height="20"/>
173
+ <autoresizingMask key="autoresizingMask"/>
174
+ <subviews>
175
+ <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="Label" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="x5F-Lp-Qhp">
176
+ <rect key="frame" x="20" y="-1" width="280" height="21"/>
177
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
178
+ <fontDescription key="fontDescription" type="system" pointSize="17"/>
179
+ <nil key="highlightedColor"/>
180
+ </label>
181
+ </subviews>
182
+ <color key="backgroundColor" red="0.92941182851791382" green="0.92941182851791382" blue="0.92941182851791382" alpha="1" colorSpace="deviceRGB"/>
183
+ <connections>
184
+ <outlet property="headerLabel" destination="x5F-Lp-Qhp" id="Os7-XF-w6M"/>
185
+ </connections>
186
+ </collectionReusableView>
187
+ <connections>
188
+ <outlet property="dataSource" destination="Ojg-L0-U3y" id="yUg-o2-QXO"/>
189
+ <outlet property="delegate" destination="Ojg-L0-U3y" id="vIu-ft-xXR"/>
190
+ </connections>
191
+ </collectionView>
192
+ </collectionViewController>
193
+ <placeholder placeholderIdentifier="IBFirstResponder" id="7Af-wU-tgS" userLabel="First Responder" sceneMemberID="firstResponder"/>
194
+ </objects>
195
+ <point key="canvasLocation" x="1907" y="304"/>
196
+ </scene>
197
+ <!--Navigation Controller-->
198
+ <scene sceneID="cik-Kr-gIv">
199
+ <objects>
200
+ <navigationController automaticallyAdjustsScrollViewInsets="NO" id="lfU-qe-W46" sceneMemberID="viewController">
201
+ <toolbarItems/>
202
+ <navigationBar key="navigationBar" contentMode="scaleToFill" id="NiU-Lc-o39">
203
+ <rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
204
+ <autoresizingMask key="autoresizingMask"/>
205
+ </navigationBar>
206
+ <nil name="viewControllers"/>
207
+ <connections>
208
+ <segue destination="ccp-rq-upX" kind="relationship" relationship="rootViewController" id="siE-6P-TgG"/>
209
+ </connections>
210
+ </navigationController>
211
+ <placeholder placeholderIdentifier="IBFirstResponder" id="DRu-JD-u7i" userLabel="First Responder" sceneMemberID="firstResponder"/>
212
+ </objects>
213
+ <point key="canvasLocation" x="489" y="646"/>
214
+ </scene>
215
+ <!--Rgba Color View Controller-->
216
+ <scene sceneID="Cru-Dr-tDc">
217
+ <objects>
218
+ <viewController automaticallyAdjustsScrollViewInsets="NO" id="Yhi-Ks-PNF" customClass="ISDRgbaColorViewController" sceneMemberID="viewController">
219
+ <layoutGuides>
220
+ <viewControllerLayoutGuide type="top" id="yhf-BZ-2WW"/>
221
+ <viewControllerLayoutGuide type="bottom" id="Pnt-TF-IlT"/>
222
+ </layoutGuides>
223
+ <view key="view" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" id="DbN-fh-FRU">
224
+ <rect key="frame" x="0.0" y="0.0" width="320" height="427"/>
225
+ <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
226
+ <subviews>
227
+ <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="bhT-mh-qOp" customClass="ISDRgbaSliderView">
228
+ <rect key="frame" x="101" y="20" width="40" height="387"/>
229
+ <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
230
+ <subviews>
231
+ <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="gon-EP-ZNQ">
232
+ <rect key="frame" x="0.0" y="29" width="40" height="30"/>
233
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
234
+ <fontDescription key="fontDescription" type="system" pointSize="14"/>
235
+ <textInputTraits key="textInputTraits"/>
236
+ <connections>
237
+ <outlet property="delegate" destination="bhT-mh-qOp" id="nMc-xE-jqJ"/>
238
+ </connections>
239
+ </textField>
240
+ <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="G" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1X6-Fn-GXc">
241
+ <rect key="frame" x="14" y="4" width="13" height="21"/>
242
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
243
+ <fontDescription key="fontDescription" type="system" pointSize="17"/>
244
+ <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
245
+ <nil key="highlightedColor"/>
246
+ </label>
247
+ <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="GyG-Pq-fWB">
248
+ <rect key="frame" x="0.0" y="58" width="40" height="329"/>
249
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
250
+ </view>
251
+ </subviews>
252
+ <constraints>
253
+ <constraint firstItem="GyG-Pq-fWB" firstAttribute="leading" secondItem="bhT-mh-qOp" secondAttribute="leading" id="8hK-sc-YTm"/>
254
+ <constraint firstAttribute="trailing" secondItem="gon-EP-ZNQ" secondAttribute="trailing" id="Ama-mI-BQ3"/>
255
+ <constraint firstItem="gon-EP-ZNQ" firstAttribute="top" secondItem="1X6-Fn-GXc" secondAttribute="bottom" constant="4" id="Tat-gE-zFu"/>
256
+ <constraint firstItem="1X6-Fn-GXc" firstAttribute="centerX" secondItem="gon-EP-ZNQ" secondAttribute="centerX" id="Ub8-iw-ff6"/>
257
+ <constraint firstAttribute="bottom" secondItem="GyG-Pq-fWB" secondAttribute="bottom" id="ZsE-42-Q3K"/>
258
+ <constraint firstItem="GyG-Pq-fWB" firstAttribute="top" secondItem="gon-EP-ZNQ" secondAttribute="bottom" constant="-1" id="eKd-Ve-whv"/>
259
+ <constraint firstItem="GyG-Pq-fWB" firstAttribute="trailing" secondItem="gon-EP-ZNQ" secondAttribute="trailing" id="n9H-qH-74n"/>
260
+ <constraint firstItem="1X6-Fn-GXc" firstAttribute="top" secondItem="bhT-mh-qOp" secondAttribute="top" constant="4" id="sAQ-84-QgG"/>
261
+ <constraint firstItem="gon-EP-ZNQ" firstAttribute="leading" secondItem="GyG-Pq-fWB" secondAttribute="leading" id="zdm-qF-05L"/>
262
+ </constraints>
263
+ <connections>
264
+ <outlet property="sliderBaseView" destination="GyG-Pq-fWB" id="pyB-gZ-bqi"/>
265
+ <outlet property="valueTextField" destination="gon-EP-ZNQ" id="fEV-vA-2aZ"/>
266
+ <outlet property="viewController" destination="Yhi-Ks-PNF" id="90O-gx-RuZ"/>
267
+ </connections>
268
+ </view>
269
+ <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="YVg-78-fdF" customClass="ISDRgbaSliderView">
270
+ <rect key="frame" x="20" y="20" width="40" height="387"/>
271
+ <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
272
+ <subviews>
273
+ <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="HXL-Gb-ssS">
274
+ <rect key="frame" x="0.0" y="29" width="40" height="30"/>
275
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
276
+ <fontDescription key="fontDescription" type="system" pointSize="14"/>
277
+ <textInputTraits key="textInputTraits"/>
278
+ <connections>
279
+ <outlet property="delegate" destination="YVg-78-fdF" id="eBD-XQ-m9U"/>
280
+ </connections>
281
+ </textField>
282
+ <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="R" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="DRT-5I-XgG">
283
+ <rect key="frame" x="14" y="4" width="12" height="21"/>
284
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
285
+ <fontDescription key="fontDescription" type="system" pointSize="17"/>
286
+ <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
287
+ <nil key="highlightedColor"/>
288
+ </label>
289
+ <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="6y3-Pm-VQ8">
290
+ <rect key="frame" x="0.0" y="58" width="40" height="329"/>
291
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
292
+ </view>
293
+ </subviews>
294
+ <constraints>
295
+ <constraint firstItem="DRT-5I-XgG" firstAttribute="top" secondItem="YVg-78-fdF" secondAttribute="top" constant="4" id="1OA-hd-LzU"/>
296
+ <constraint firstItem="HXL-Gb-ssS" firstAttribute="top" secondItem="DRT-5I-XgG" secondAttribute="bottom" constant="4" id="Bc4-2H-nHA"/>
297
+ <constraint firstItem="DRT-5I-XgG" firstAttribute="centerX" secondItem="HXL-Gb-ssS" secondAttribute="centerX" id="GW0-uc-995"/>
298
+ <constraint firstItem="6y3-Pm-VQ8" firstAttribute="leading" secondItem="HXL-Gb-ssS" secondAttribute="leading" id="KHM-CB-gxV"/>
299
+ <constraint firstItem="6y3-Pm-VQ8" firstAttribute="top" secondItem="HXL-Gb-ssS" secondAttribute="bottom" constant="-1" id="QhC-GB-7tT"/>
300
+ <constraint firstAttribute="trailing" secondItem="6y3-Pm-VQ8" secondAttribute="trailing" id="agS-Qx-UHA"/>
301
+ <constraint firstItem="HXL-Gb-ssS" firstAttribute="trailing" secondItem="6y3-Pm-VQ8" secondAttribute="trailing" id="b8A-YZ-obz"/>
302
+ <constraint firstAttribute="bottom" secondItem="6y3-Pm-VQ8" secondAttribute="bottom" id="bGh-bJ-xNR"/>
303
+ <constraint firstItem="6y3-Pm-VQ8" firstAttribute="leading" secondItem="YVg-78-fdF" secondAttribute="leading" id="v7F-Sa-Up7"/>
304
+ </constraints>
305
+ <connections>
306
+ <outlet property="sliderBaseView" destination="6y3-Pm-VQ8" id="hjv-3t-lv2"/>
307
+ <outlet property="valueTextField" destination="HXL-Gb-ssS" id="7lx-Tb-0qm"/>
308
+ <outlet property="viewController" destination="Yhi-Ks-PNF" id="64N-SO-Nt6"/>
309
+ </connections>
310
+ </view>
311
+ <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="crf-eG-EzA" customClass="ISDRgbaSliderView">
312
+ <rect key="frame" x="262" y="20" width="40" height="387"/>
313
+ <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
314
+ <subviews>
315
+ <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="OV8-zN-eBC">
316
+ <rect key="frame" x="0.0" y="29" width="40" height="30"/>
317
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
318
+ <fontDescription key="fontDescription" type="system" pointSize="14"/>
319
+ <textInputTraits key="textInputTraits"/>
320
+ <connections>
321
+ <outlet property="delegate" destination="crf-eG-EzA" id="VHH-ez-hEn"/>
322
+ </connections>
323
+ </textField>
324
+ <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="A" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="GVX-lW-HfY">
325
+ <rect key="frame" x="14" y="4" width="12" height="21"/>
326
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
327
+ <fontDescription key="fontDescription" type="system" pointSize="17"/>
328
+ <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
329
+ <nil key="highlightedColor"/>
330
+ </label>
331
+ <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="GYK-Ya-tqt">
332
+ <rect key="frame" x="0.0" y="58" width="40" height="329"/>
333
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
334
+ </view>
335
+ </subviews>
336
+ <constraints>
337
+ <constraint firstAttribute="trailing" secondItem="OV8-zN-eBC" secondAttribute="trailing" id="85n-F9-PQa"/>
338
+ <constraint firstItem="OV8-zN-eBC" firstAttribute="trailing" secondItem="GYK-Ya-tqt" secondAttribute="trailing" id="8kl-Q4-OK4"/>
339
+ <constraint firstItem="OV8-zN-eBC" firstAttribute="leading" secondItem="GYK-Ya-tqt" secondAttribute="leading" id="CbC-kC-Zln"/>
340
+ <constraint firstItem="GVX-lW-HfY" firstAttribute="top" secondItem="crf-eG-EzA" secondAttribute="top" constant="4" id="QUv-VF-fgW"/>
341
+ <constraint firstItem="OV8-zN-eBC" firstAttribute="top" secondItem="GVX-lW-HfY" secondAttribute="bottom" constant="4" id="WmD-aI-NCh"/>
342
+ <constraint firstAttribute="bottom" secondItem="GYK-Ya-tqt" secondAttribute="bottom" id="Yzd-mq-ub1"/>
343
+ <constraint firstItem="GYK-Ya-tqt" firstAttribute="top" secondItem="OV8-zN-eBC" secondAttribute="bottom" constant="-1" id="cU4-Ey-zhh"/>
344
+ <constraint firstItem="OV8-zN-eBC" firstAttribute="centerX" secondItem="GVX-lW-HfY" secondAttribute="centerX" id="cgh-hQ-pyM"/>
345
+ <constraint firstItem="OV8-zN-eBC" firstAttribute="leading" secondItem="crf-eG-EzA" secondAttribute="leading" id="ndV-On-9rx"/>
346
+ </constraints>
347
+ <connections>
348
+ <outlet property="idLabel" destination="GVX-lW-HfY" id="2ow-P4-Zzw"/>
349
+ <outlet property="sliderBaseView" destination="GYK-Ya-tqt" id="tH3-4E-Wt7"/>
350
+ <outlet property="valueTextField" destination="OV8-zN-eBC" id="wVp-Sr-oiB"/>
351
+ <outlet property="viewController" destination="Yhi-Ks-PNF" id="5YV-wj-xZG"/>
352
+ </connections>
353
+ </view>
354
+ <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="XJe-fJ-Lbo" customClass="ISDRgbaSliderView">
355
+ <rect key="frame" x="185" y="20" width="40" height="387"/>
356
+ <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
357
+ <subviews>
358
+ <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="alY-XU-nZq">
359
+ <rect key="frame" x="0.0" y="29" width="40" height="30"/>
360
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
361
+ <fontDescription key="fontDescription" type="system" pointSize="14"/>
362
+ <textInputTraits key="textInputTraits"/>
363
+ <connections>
364
+ <outlet property="delegate" destination="XJe-fJ-Lbo" id="fHC-LT-GUA"/>
365
+ </connections>
366
+ </textField>
367
+ <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="B" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gjh-kq-Dj0">
368
+ <rect key="frame" x="14" y="4" width="12" height="21"/>
369
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
370
+ <fontDescription key="fontDescription" type="system" pointSize="17"/>
371
+ <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
372
+ <nil key="highlightedColor"/>
373
+ </label>
374
+ <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="2if-yi-hbe">
375
+ <rect key="frame" x="0.0" y="58" width="40" height="329"/>
376
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
377
+ </view>
378
+ </subviews>
379
+ <constraints>
380
+ <constraint firstItem="2if-yi-hbe" firstAttribute="trailing" secondItem="alY-XU-nZq" secondAttribute="trailing" id="3uA-bB-MEL"/>
381
+ <constraint firstItem="2if-yi-hbe" firstAttribute="top" secondItem="alY-XU-nZq" secondAttribute="bottom" constant="-1" id="6jc-Ur-Zxm"/>
382
+ <constraint firstAttribute="trailing" secondItem="2if-yi-hbe" secondAttribute="trailing" id="MBg-IM-GTe"/>
383
+ <constraint firstItem="alY-XU-nZq" firstAttribute="top" secondItem="gjh-kq-Dj0" secondAttribute="bottom" constant="4" id="VKe-xu-9zS"/>
384
+ <constraint firstItem="gjh-kq-Dj0" firstAttribute="top" secondItem="XJe-fJ-Lbo" secondAttribute="top" constant="4" id="VLV-Wa-Mrd"/>
385
+ <constraint firstItem="alY-XU-nZq" firstAttribute="centerX" secondItem="gjh-kq-Dj0" secondAttribute="centerX" id="fYr-fj-I8b"/>
386
+ <constraint firstAttribute="bottom" secondItem="2if-yi-hbe" secondAttribute="bottom" id="fhn-gL-oik"/>
387
+ <constraint firstItem="alY-XU-nZq" firstAttribute="leading" secondItem="XJe-fJ-Lbo" secondAttribute="leading" id="oT8-Cl-S8Q"/>
388
+ <constraint firstItem="2if-yi-hbe" firstAttribute="leading" secondItem="alY-XU-nZq" secondAttribute="leading" id="ske-F5-gO4"/>
389
+ </constraints>
390
+ <connections>
391
+ <outlet property="sliderBaseView" destination="2if-yi-hbe" id="TNI-DO-7z7"/>
392
+ <outlet property="valueTextField" destination="alY-XU-nZq" id="CmE-pk-FYi"/>
393
+ <outlet property="viewController" destination="Yhi-Ks-PNF" id="5o6-vD-eJv"/>
394
+ </connections>
395
+ </view>
396
+ </subviews>
397
+ <color key="backgroundColor" red="0.91372555489999996" green="0.91372555489999996" blue="0.91372555489999996" alpha="1" colorSpace="deviceRGB"/>
398
+ <constraints>
399
+ <constraint firstItem="XJe-fJ-Lbo" firstAttribute="height" secondItem="bhT-mh-qOp" secondAttribute="height" id="1IJ-It-SxQ"/>
400
+ <constraint firstItem="bhT-mh-qOp" firstAttribute="leading" secondItem="YVg-78-fdF" secondAttribute="trailing" constant="41" id="EEA-kg-Era"/>
401
+ <constraint firstAttribute="trailing" secondItem="crf-eG-EzA" secondAttribute="trailing" constant="18" id="NaZ-TI-9Mj"/>
402
+ <constraint firstAttribute="bottom" secondItem="YVg-78-fdF" secondAttribute="bottom" constant="20" symbolic="YES" id="Nss-ZT-qCV"/>
403
+ <constraint firstItem="YVg-78-fdF" firstAttribute="width" secondItem="bhT-mh-qOp" secondAttribute="width" id="TSC-7I-ZI4"/>
404
+ <constraint firstItem="XJe-fJ-Lbo" firstAttribute="width" secondItem="bhT-mh-qOp" secondAttribute="width" id="YtN-WK-703"/>
405
+ <constraint firstItem="YVg-78-fdF" firstAttribute="height" secondItem="bhT-mh-qOp" secondAttribute="height" id="Z6T-y7-BV8"/>
406
+ <constraint firstItem="crf-eG-EzA" firstAttribute="top" secondItem="XJe-fJ-Lbo" secondAttribute="top" id="ZG8-yR-eob"/>
407
+ <constraint firstItem="YVg-78-fdF" firstAttribute="leading" secondItem="DbN-fh-FRU" secondAttribute="leading" constant="20" id="bt8-6h-bnV"/>
408
+ <constraint firstItem="crf-eG-EzA" firstAttribute="width" secondItem="XJe-fJ-Lbo" secondAttribute="width" id="ce8-S2-sZq"/>
409
+ <constraint firstItem="YVg-78-fdF" firstAttribute="top" secondItem="DbN-fh-FRU" secondAttribute="top" constant="20" symbolic="YES" id="dcw-SR-Hlu"/>
410
+ <constraint firstItem="XJe-fJ-Lbo" firstAttribute="leading" secondItem="bhT-mh-qOp" secondAttribute="trailing" constant="44" id="ehc-Cp-W07"/>
411
+ <constraint firstItem="bhT-mh-qOp" firstAttribute="top" secondItem="XJe-fJ-Lbo" secondAttribute="top" id="fLu-pX-Nkg"/>
412
+ <constraint firstItem="crf-eG-EzA" firstAttribute="height" secondItem="XJe-fJ-Lbo" secondAttribute="height" id="gC0-Ab-7y8"/>
413
+ <constraint firstItem="YVg-78-fdF" firstAttribute="top" secondItem="bhT-mh-qOp" secondAttribute="top" id="sQn-3Q-FWp"/>
414
+ <constraint firstItem="crf-eG-EzA" firstAttribute="leading" secondItem="XJe-fJ-Lbo" secondAttribute="trailing" constant="37" id="v1t-dB-ujj"/>
415
+ </constraints>
416
+ </view>
417
+ <toolbarItems/>
418
+ <connections>
419
+ <outlet property="aView" destination="crf-eG-EzA" id="q5Q-NB-tWY"/>
420
+ <outlet property="bView" destination="XJe-fJ-Lbo" id="XuK-HZ-6Sp"/>
421
+ <outlet property="gView" destination="bhT-mh-qOp" id="xzj-uQ-5JP"/>
422
+ <outlet property="rView" destination="YVg-78-fdF" id="4W7-au-z4L"/>
423
+ </connections>
424
+ </viewController>
425
+ <placeholder placeholderIdentifier="IBFirstResponder" id="c9R-5z-LDE" userLabel="First Responder" sceneMemberID="firstResponder"/>
426
+ </objects>
427
+ <point key="canvasLocation" x="1907" y="860"/>
428
+ </scene>
429
+ </scenes>
430
+ <simulatedMetricsContainer key="defaultSimulatedMetrics">
431
+ <simulatedStatusBarMetrics key="statusBar"/>
432
+ <simulatedOrientationMetrics key="orientation"/>
433
+ <simulatedScreenMetrics key="destination" type="retina4"/>
434
+ </simulatedMetricsContainer>
435
+ </document>