isd-color-palette 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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>