Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
026283a303 | ||
|
|
2f3c7e32bb | ||
|
|
7ac7564fff | ||
|
|
f0ba09cc80 | ||
|
|
1ca20427a7 | ||
|
|
f7dfe38777 | ||
|
|
db3165009d | ||
|
|
eea4c10e57 | ||
|
|
b66f2000ec | ||
|
|
5fb237ebbe | ||
|
|
470fb5d4c3 | ||
|
|
34d7afffd9 | ||
|
|
083e73da51 | ||
|
|
63574d6dd7 | ||
|
|
df7777f1dd | ||
|
|
15419f5d6a | ||
|
|
7cfa15526b | ||
|
|
dbc17e3350 | ||
|
|
b0b71a7492 | ||
|
|
698ba6ce3b | ||
|
|
ab039916ca | ||
|
|
184ad73a1d |
@@ -13,7 +13,6 @@
|
||||
848596311CF585F3000BCC74 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8485962F1CF585F3000BCC74 /* Main.storyboard */; };
|
||||
848596331CF585F3000BCC74 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 848596321CF585F3000BCC74 /* Assets.xcassets */; };
|
||||
848596361CF585F3000BCC74 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 848596341CF585F3000BCC74 /* LaunchScreen.storyboard */; };
|
||||
848596411CF585F3000BCC74 /* DemoExpandingCollectionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 848596401CF585F3000BCC74 /* DemoExpandingCollectionTests.swift */; };
|
||||
8485965A1CF586F7000BCC74 /* DemoTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 848596541CF586F7000BCC74 /* DemoTableViewController.swift */; };
|
||||
8485965B1CF586F7000BCC74 /* DemoCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 848596571CF586F7000BCC74 /* DemoCollectionViewCell.swift */; };
|
||||
8485965C1CF586F7000BCC74 /* DemoCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 848596581CF586F7000BCC74 /* DemoCollectionViewCell.xib */; };
|
||||
@@ -49,13 +48,6 @@
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXContainerItemProxy section */
|
||||
8485963D1CF585F3000BCC74 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 848596201CF585F3000BCC74 /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = 848596271CF585F3000BCC74;
|
||||
remoteInfo = DemoExpandingCollection;
|
||||
};
|
||||
8499D8191D001B82004B5B37 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 848596201CF585F3000BCC74 /* Project object */;
|
||||
@@ -88,9 +80,6 @@
|
||||
848596321CF585F3000BCC74 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
||||
848596351CF585F3000BCC74 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
|
||||
848596371CF585F3000BCC74 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
8485963C1CF585F3000BCC74 /* DemoExpandingCollectionTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DemoExpandingCollectionTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
848596401CF585F3000BCC74 /* DemoExpandingCollectionTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DemoExpandingCollectionTests.swift; sourceTree = "<group>"; };
|
||||
848596421CF585F3000BCC74 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
848596541CF586F7000BCC74 /* DemoTableViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DemoTableViewController.swift; sourceTree = "<group>"; };
|
||||
848596571CF586F7000BCC74 /* DemoCollectionViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DemoCollectionViewCell.swift; sourceTree = "<group>"; };
|
||||
848596581CF586F7000BCC74 /* DemoCollectionViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = DemoCollectionViewCell.xib; sourceTree = "<group>"; };
|
||||
@@ -123,13 +112,6 @@
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
848596391CF585F3000BCC74 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
8499D8101D001B82004B5B37 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
@@ -169,7 +151,6 @@
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8485962A1CF585F3000BCC74 /* DemoExpandingCollection */,
|
||||
8485963F1CF585F3000BCC74 /* DemoExpandingCollectionTests */,
|
||||
8499D8151D001B82004B5B37 /* ExpandingCollection */,
|
||||
848596291CF585F3000BCC74 /* Products */,
|
||||
);
|
||||
@@ -179,7 +160,6 @@
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
848596281CF585F3000BCC74 /* DemoExpandingCollection.app */,
|
||||
8485963C1CF585F3000BCC74 /* DemoExpandingCollectionTests.xctest */,
|
||||
8499D8141D001B82004B5B37 /* ExpandingCollection.framework */,
|
||||
);
|
||||
name = Products;
|
||||
@@ -202,15 +182,6 @@
|
||||
path = DemoExpandingCollection;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8485963F1CF585F3000BCC74 /* DemoExpandingCollectionTests */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
848596401CF585F3000BCC74 /* DemoExpandingCollectionTests.swift */,
|
||||
848596421CF585F3000BCC74 /* Info.plist */,
|
||||
);
|
||||
path = DemoExpandingCollectionTests;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
848596521CF586E0000BCC74 /* ViewControllers */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@@ -445,24 +416,6 @@
|
||||
productReference = 848596281CF585F3000BCC74 /* DemoExpandingCollection.app */;
|
||||
productType = "com.apple.product-type.application";
|
||||
};
|
||||
8485963B1CF585F3000BCC74 /* DemoExpandingCollectionTests */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 848596481CF585F3000BCC74 /* Build configuration list for PBXNativeTarget "DemoExpandingCollectionTests" */;
|
||||
buildPhases = (
|
||||
848596381CF585F3000BCC74 /* Sources */,
|
||||
848596391CF585F3000BCC74 /* Frameworks */,
|
||||
8485963A1CF585F3000BCC74 /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
8485963E1CF585F3000BCC74 /* PBXTargetDependency */,
|
||||
);
|
||||
name = DemoExpandingCollectionTests;
|
||||
productName = DemoExpandingCollectionTests;
|
||||
productReference = 8485963C1CF585F3000BCC74 /* DemoExpandingCollectionTests.xctest */;
|
||||
productType = "com.apple.product-type.bundle.unit-test";
|
||||
};
|
||||
8499D8131D001B82004B5B37 /* ExpandingCollection */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 8499D81F1D001B82004B5B37 /* Build configuration list for PBXNativeTarget "ExpandingCollection" */;
|
||||
@@ -488,23 +441,18 @@
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastSwiftUpdateCheck = 0730;
|
||||
LastUpgradeCheck = 0800;
|
||||
LastUpgradeCheck = 0920;
|
||||
ORGANIZATIONNAME = "Alex K.";
|
||||
TargetAttributes = {
|
||||
848596271CF585F3000BCC74 = {
|
||||
CreatedOnToolsVersion = 7.3.1;
|
||||
DevelopmentTeam = 34MUF9YXTA;
|
||||
LastSwiftMigration = 0800;
|
||||
};
|
||||
8485963B1CF585F3000BCC74 = {
|
||||
CreatedOnToolsVersion = 7.3.1;
|
||||
LastSwiftMigration = 0800;
|
||||
TestTargetID = 848596271CF585F3000BCC74;
|
||||
LastSwiftMigration = 0920;
|
||||
};
|
||||
8499D8131D001B82004B5B37 = {
|
||||
CreatedOnToolsVersion = 7.3.1;
|
||||
DevelopmentTeam = LEAZS7L33U;
|
||||
LastSwiftMigration = 0800;
|
||||
LastSwiftMigration = 0920;
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -522,7 +470,6 @@
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
848596271CF585F3000BCC74 /* DemoExpandingCollection */,
|
||||
8485963B1CF585F3000BCC74 /* DemoExpandingCollectionTests */,
|
||||
8499D8131D001B82004B5B37 /* ExpandingCollection */,
|
||||
);
|
||||
};
|
||||
@@ -540,13 +487,6 @@
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
8485963A1CF585F3000BCC74 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
8499D8121D001B82004B5B37 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
@@ -569,7 +509,7 @@
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "if which swiftgen >/dev/null; then\nswiftgen images \"$PROJECT_DIR/DemoExpandingCollection/Assets.xcassets\" --output \"$PROJECT_DIR/DemoExpandingCollection/Constants/Images.swift\"\nelse\necho \"warning: SwiftGen not installed, download it from https://github.com/AliSoftware/SwiftGen\"\nfi";
|
||||
shellScript = "if which swiftgen >/dev/null; then\nswiftgen images \"$PROJECT_DIR/DemoExpandingCollection/Assets.xcassets\" -t swift3 --output \"$PROJECT_DIR/DemoExpandingCollection/Constants/Images.swift\"\nelse\necho \"warning: SwiftGen not installed, download it from https://github.com/AliSoftware/SwiftGen\"\nfi";
|
||||
};
|
||||
/* End PBXShellScriptBuildPhase section */
|
||||
|
||||
@@ -601,14 +541,6 @@
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
848596381CF585F3000BCC74 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
848596411CF585F3000BCC74 /* DemoExpandingCollectionTests.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
8499D80F1D001B82004B5B37 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
@@ -630,11 +562,6 @@
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXTargetDependency section */
|
||||
8485963E1CF585F3000BCC74 /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
target = 848596271CF585F3000BCC74 /* DemoExpandingCollection */;
|
||||
targetProxy = 8485963D1CF585F3000BCC74 /* PBXContainerItemProxy */;
|
||||
};
|
||||
8499D81A1D001B82004B5B37 /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
target = 8499D8131D001B82004B5B37 /* ExpandingCollection */;
|
||||
@@ -671,14 +598,20 @@
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
@@ -718,14 +651,20 @@
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
@@ -764,7 +703,8 @@
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.ramotion.dev1;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE = "";
|
||||
SWIFT_VERSION = 3.0;
|
||||
SWIFT_SWIFT3_OBJC_INFERENCE = Off;
|
||||
SWIFT_VERSION = 4.0;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
@@ -782,33 +722,8 @@
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.ramotion.dev1;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE = "";
|
||||
SWIFT_VERSION = 3.0;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
848596491CF585F3000BCC74 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||
INFOPLIST_FILE = DemoExpandingCollectionTests/Info.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.ramotion.DemoExpandingCollectionTests;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_VERSION = 3.0;
|
||||
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/DemoExpandingCollection.app/DemoExpandingCollection";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
8485964A1CF585F3000BCC74 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||
INFOPLIST_FILE = DemoExpandingCollectionTests/Info.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.ramotion.DemoExpandingCollectionTests;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_VERSION = 3.0;
|
||||
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/DemoExpandingCollection.app/DemoExpandingCollection";
|
||||
SWIFT_SWIFT3_OBJC_INFERENCE = Off;
|
||||
SWIFT_VERSION = 4.0;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
@@ -829,7 +744,8 @@
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.ramotion.dev;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_VERSION = 3.0;
|
||||
SWIFT_SWIFT3_OBJC_INFERENCE = Off;
|
||||
SWIFT_VERSION = 4.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
VERSIONING_SYSTEM = "apple-generic";
|
||||
VERSION_INFO_PREFIX = "";
|
||||
@@ -853,7 +769,8 @@
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.ramotion.dev;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_VERSION = 3.0;
|
||||
SWIFT_SWIFT3_OBJC_INFERENCE = Off;
|
||||
SWIFT_VERSION = 4.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
VERSIONING_SYSTEM = "apple-generic";
|
||||
VERSION_INFO_PREFIX = "";
|
||||
@@ -881,15 +798,6 @@
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
848596481CF585F3000BCC74 /* Build configuration list for PBXNativeTarget "DemoExpandingCollectionTests" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
848596491CF585F3000BCC74 /* Debug */,
|
||||
8485964A1CF585F3000BCC74 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
8499D81F1D001B82004B5B37 /* Build configuration list for PBXNativeTarget "ExpandingCollection" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
|
||||
+3
-1
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0800"
|
||||
LastUpgradeVersion = "0920"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
@@ -26,6 +26,7 @@
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
language = ""
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
<Testables>
|
||||
</Testables>
|
||||
@@ -36,6 +37,7 @@
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
language = ""
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
|
||||
@@ -18,23 +18,6 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
|
||||
configureNavigationTabBar()
|
||||
return true
|
||||
}
|
||||
|
||||
func applicationWillResignActive(_ application: UIApplication) {
|
||||
|
||||
}
|
||||
|
||||
func applicationDidEnterBackground(_ application: UIApplication) {
|
||||
|
||||
}
|
||||
|
||||
func applicationWillEnterForeground(_ application: UIApplication) {
|
||||
}
|
||||
|
||||
func applicationDidBecomeActive(_ application: UIApplication) {
|
||||
}
|
||||
|
||||
func applicationWillTerminate(_ application: UIApplication) {
|
||||
}
|
||||
}
|
||||
|
||||
extension AppDelegate {
|
||||
@@ -50,8 +33,8 @@ extension AppDelegate {
|
||||
shadow.shadowColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.1)
|
||||
|
||||
UINavigationBar.appearance().titleTextAttributes = [
|
||||
NSForegroundColorAttributeName : UIColor.white,
|
||||
NSShadowAttributeName: shadow
|
||||
NSAttributedStringKey.foregroundColor : UIColor.white,
|
||||
NSAttributedStringKey.shadow: shadow
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -39,6 +39,11 @@
|
||||
"idiom" : "iphone",
|
||||
"size" : "60x60",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ios-marketing",
|
||||
"size" : "1024x1024",
|
||||
"scale" : "1x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="11201" systemVersion="15G1004" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="L1n-Ia-Jrw">
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13771" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="L1n-Ia-Jrw">
|
||||
<device id="retina4_7" orientation="portrait">
|
||||
<adaptation id="fullscreen"/>
|
||||
</device>
|
||||
<dependencies>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11161"/>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13772"/>
|
||||
<capability name="Constraints to layout margins" minToolsVersion="6.0"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
@@ -18,8 +22,11 @@
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="BackgroundImage" translatesAutoresizingMaskIntoConstraints="NO" id="o88-Ae-QCA"/>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="BackgroundImage" translatesAutoresizingMaskIntoConstraints="NO" id="o88-Ae-QCA">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="1/15" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Irl-Rb-fcB">
|
||||
<rect key="frame" x="172" y="626.5" width="31" height="20.5"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" red="0.85882352941176465" green="0.8666666666666667" blue="0.87058823529411766" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
@@ -28,9 +35,9 @@
|
||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<constraints>
|
||||
<constraint firstItem="mRg-Mx-OVI" firstAttribute="top" secondItem="Irl-Rb-fcB" secondAttribute="bottom" constant="20" id="2LM-iO-324"/>
|
||||
<constraint firstItem="o88-Ae-QCA" firstAttribute="top" secondItem="CpK-wn-s3i" secondAttribute="bottom" constant="-44" id="MHx-PV-wBs"/>
|
||||
<constraint firstItem="o88-Ae-QCA" firstAttribute="top" secondItem="CO1-du-RsN" secondAttribute="top" id="MHx-PV-wBs"/>
|
||||
<constraint firstAttribute="trailing" secondItem="o88-Ae-QCA" secondAttribute="trailing" id="Xcv-FC-DFw"/>
|
||||
<constraint firstItem="mRg-Mx-OVI" firstAttribute="top" secondItem="o88-Ae-QCA" secondAttribute="bottom" id="aWe-c0-hwO"/>
|
||||
<constraint firstAttribute="bottom" secondItem="o88-Ae-QCA" secondAttribute="bottom" id="aWe-c0-hwO"/>
|
||||
<constraint firstItem="o88-Ae-QCA" firstAttribute="leading" secondItem="CO1-du-RsN" secondAttribute="leading" id="sd9-mZ-FXM"/>
|
||||
<constraint firstItem="Irl-Rb-fcB" firstAttribute="centerX" secondItem="CO1-du-RsN" secondAttribute="centerX" id="yzg-tR-vdV"/>
|
||||
</constraints>
|
||||
@@ -39,10 +46,11 @@
|
||||
<nil key="title"/>
|
||||
<barButtonItem key="leftBarButtonItem" image="searchIcon" id="xuF-jX-6LN"/>
|
||||
<view key="titleView" contentMode="scaleToFill" id="U0J-H7-fvX">
|
||||
<rect key="frame" x="68" y="6" width="240" height="33"/>
|
||||
<rect key="frame" x="67.5" y="5.5" width="240" height="33"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Title" translatesAutoresizingMaskIntoConstraints="NO" id="92b-RV-q6w">
|
||||
<rect key="frame" x="94.5" y="8.5" width="51" height="16"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="51" id="E8y-UB-H4U"/>
|
||||
<constraint firstAttribute="height" constant="16" id="FBz-Jg-2za"/>
|
||||
@@ -55,7 +63,7 @@
|
||||
<constraint firstItem="92b-RV-q6w" firstAttribute="centerY" secondItem="U0J-H7-fvX" secondAttribute="centerY" id="qaL-Bm-FyO"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<barButtonItem key="rightBarButtonItem" title="Item" id="mbm-hT-lYD" customClass="AnimatingBarButton" customModule="DemoExpandingCollection" customModuleProvider="target">
|
||||
<barButtonItem key="rightBarButtonItem" title="Item" image="locationButton" id="mbm-hT-lYD" customClass="AnimatingBarButton" customModule="DemoExpandingCollection" customModuleProvider="target">
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="normalImageName" value="locationButton"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="selectedImageName" value="CloseButton"/>
|
||||
@@ -81,7 +89,7 @@
|
||||
<toolbarItems/>
|
||||
<nil key="simulatedStatusBarMetrics"/>
|
||||
<navigationBar key="navigationBar" contentMode="scaleToFill" id="5hs-Ir-kRn">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
|
||||
<rect key="frame" x="0.0" y="20" width="375" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</navigationBar>
|
||||
<nil name="viewControllers"/>
|
||||
@@ -108,17 +116,21 @@
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="124"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="SFA-X2-Rbf" id="RQr-Ti-ps0">
|
||||
<frame key="frameInset" width="375" height="124"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="124"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="map" translatesAutoresizingMaskIntoConstraints="NO" id="MOR-g7-Roh"/>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="map" translatesAutoresizingMaskIntoConstraints="NO" id="MOR-g7-Roh">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="124"/>
|
||||
</imageView>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="stars" translatesAutoresizingMaskIntoConstraints="NO" id="u4E-kh-oBd">
|
||||
<rect key="frame" x="40" y="92" width="77" height="12"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="77" id="fcy-Ae-Cqj"/>
|
||||
<constraint firstAttribute="height" constant="12" id="r69-to-MYP"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="La Crescenta-Montrose, CA91020 Glendale
NO. 7911847" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Xh7-la-W1r">
|
||||
<rect key="frame" x="40" y="49" width="319" height="26.5"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="11"/>
|
||||
<color key="textColor" red="0.49803921568627452" green="0.51764705882352935" blue="0.53725490196078429" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
@@ -137,248 +149,375 @@
|
||||
</constraints>
|
||||
</tableViewCellContentView>
|
||||
</tableViewCell>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="124" id="ew1-hI-ark">
|
||||
<rect key="frame" x="0.0" y="124" width="375" height="124"/>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" rowHeight="130" id="il3-eE-Dz6">
|
||||
<rect key="frame" x="0.0" y="124" width="375" height="130"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="ew1-hI-ark" id="tMC-aw-BE2">
|
||||
<frame key="frameInset" width="375" height="124"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="il3-eE-Dz6" id="MsP-wf-fvb">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="130"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="face2" translatesAutoresizingMaskIntoConstraints="NO" id="9zL-0u-FrF">
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="top" translatesAutoresizingMaskIntoConstraints="NO" id="uVu-gN-MRp">
|
||||
<rect key="frame" x="40" y="15" width="295" height="100"/>
|
||||
<subviews>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" alignment="center" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="ukw-f4-MVo">
|
||||
<rect key="frame" x="0.0" y="0.0" width="295" height="40"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="face2" translatesAutoresizingMaskIntoConstraints="NO" id="uxT-p4-twy">
|
||||
<rect key="frame" x="0.0" y="0.0" width="40" height="40"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="40" id="MVQ-VZ-6fS"/>
|
||||
<constraint firstAttribute="height" constant="40" id="Sd9-Ve-7wv"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" verticalHuggingPriority="251" text="Peter Allan" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="HrH-RB-ew1">
|
||||
<rect key="frame" x="50" y="11" width="168" height="18"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="15"/>
|
||||
<color key="textColor" red="0.41960784309999999" green="0.41960784309999999" blue="0.41960784309999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="FEB 14th" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="lHC-gQ-gcP">
|
||||
<rect key="frame" x="228" y="14" width="43" height="12"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="10"/>
|
||||
<color key="textColor" red="0.76470588240000004" green="0.76470588240000004" blue="0.76470588240000004" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="heand" translatesAutoresizingMaskIntoConstraints="NO" id="A79-W0-b7f">
|
||||
<rect key="frame" x="281" y="13.5" width="14" height="13"/>
|
||||
</imageView>
|
||||
</subviews>
|
||||
</stackView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="3" baselineAdjustment="alignBaselines" minimumScaleFactor="0.80000000000000004" translatesAutoresizingMaskIntoConstraints="NO" id="cWC-7U-c6U">
|
||||
<rect key="frame" x="0.0" y="40" width="0.0" height="60"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="60" id="Aal-gs-pRU"/>
|
||||
</constraints>
|
||||
<string key="text">The federal beach atc requires states that receive funding to develop a risk-based beach evaluation and classification plan and apply it to</string>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="12"/>
|
||||
<color key="textColor" red="0.4431372549" green="0.4431372549" blue="0.4431372549" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="40" id="78B-o8-UlD"/>
|
||||
<constraint firstAttribute="height" constant="40" id="b9d-Vi-STe"/>
|
||||
<constraint firstAttribute="trailing" secondItem="ukw-f4-MVo" secondAttribute="trailing" id="LFh-OH-GCr"/>
|
||||
<constraint firstItem="ukw-f4-MVo" firstAttribute="leading" secondItem="uVu-gN-MRp" secondAttribute="leading" id="SZN-hq-17r"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="heand" translatesAutoresizingMaskIntoConstraints="NO" id="Nk4-8x-Lwg"/>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Peter Allan" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="KVC-Pp-S9H">
|
||||
<fontDescription key="fontDescription" type="system" pointSize="15"/>
|
||||
<color key="textColor" red="0.41960784313725491" green="0.41960784313725491" blue="0.41960784313725491" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="FEB 14th" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="UAK-of-lpJ">
|
||||
<fontDescription key="fontDescription" type="system" pointSize="10"/>
|
||||
<color key="textColor" red="0.76470588235294112" green="0.76470588235294112" blue="0.76470588235294112" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="3" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="2zo-A7-sbM">
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="59" id="zel-Yy-v9k"/>
|
||||
</constraints>
|
||||
<string key="text">The federal beach atc requires states that receive funding to develop a risk-based beach evaluation and classification plan and apply it to</string>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="12"/>
|
||||
<color key="textColor" red="0.44313725490196076" green="0.44313725490196076" blue="0.44313725490196076" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</stackView>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="2zo-A7-sbM" firstAttribute="leading" secondItem="tMC-aw-BE2" secondAttribute="leading" constant="40" id="H38-Fq-dyr"/>
|
||||
<constraint firstItem="UAK-of-lpJ" firstAttribute="centerY" secondItem="KVC-Pp-S9H" secondAttribute="centerY" id="LsD-yB-O6d"/>
|
||||
<constraint firstItem="UAK-of-lpJ" firstAttribute="leading" secondItem="KVC-Pp-S9H" secondAttribute="trailing" constant="37" id="Q2S-o9-jqX"/>
|
||||
<constraint firstAttribute="trailing" secondItem="Nk4-8x-Lwg" secondAttribute="trailing" constant="62" id="V8O-HD-kFA"/>
|
||||
<constraint firstItem="Nk4-8x-Lwg" firstAttribute="centerY" secondItem="9zL-0u-FrF" secondAttribute="centerY" id="W5E-fE-j0w"/>
|
||||
<constraint firstAttribute="trailing" secondItem="2zo-A7-sbM" secondAttribute="trailing" constant="62" id="Z9T-o6-3gf"/>
|
||||
<constraint firstItem="KVC-Pp-S9H" firstAttribute="centerY" secondItem="9zL-0u-FrF" secondAttribute="centerY" id="brv-4K-N8t"/>
|
||||
<constraint firstItem="KVC-Pp-S9H" firstAttribute="leading" secondItem="9zL-0u-FrF" secondAttribute="trailing" constant="28" id="i1I-Wl-eDa"/>
|
||||
<constraint firstAttribute="bottomMargin" secondItem="2zo-A7-sbM" secondAttribute="bottom" id="i8F-BH-FCe"/>
|
||||
<constraint firstItem="9zL-0u-FrF" firstAttribute="leading" secondItem="tMC-aw-BE2" secondAttribute="leading" constant="40" id="vVg-gG-k8j"/>
|
||||
<constraint firstItem="9zL-0u-FrF" firstAttribute="top" secondItem="tMC-aw-BE2" secondAttribute="top" constant="20" id="w5h-fl-OmZ"/>
|
||||
<constraint firstItem="uVu-gN-MRp" firstAttribute="top" secondItem="MsP-wf-fvb" secondAttribute="top" constant="15" id="NQl-Be-BKZ"/>
|
||||
<constraint firstAttribute="bottom" secondItem="uVu-gN-MRp" secondAttribute="bottom" constant="15" id="jvP-x7-pnF"/>
|
||||
<constraint firstAttribute="trailing" secondItem="uVu-gN-MRp" secondAttribute="trailing" constant="40" id="tiY-7g-NSN"/>
|
||||
<constraint firstItem="uVu-gN-MRp" firstAttribute="leading" secondItem="MsP-wf-fvb" secondAttribute="leading" constant="40" id="yEt-zX-E7e"/>
|
||||
</constraints>
|
||||
</tableViewCellContentView>
|
||||
</tableViewCell>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="124" id="0ee-7A-I2I">
|
||||
<rect key="frame" x="0.0" y="248" width="375" height="124"/>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" rowHeight="130" id="72K-TN-0SK">
|
||||
<rect key="frame" x="0.0" y="254" width="375" height="130"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="0ee-7A-I2I" id="jPx-eH-c2S">
|
||||
<frame key="frameInset" width="375" height="124"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="72K-TN-0SK" id="Md6-Nq-ERc">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="130"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="face1" translatesAutoresizingMaskIntoConstraints="NO" id="T8j-gX-HQZ">
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="top" translatesAutoresizingMaskIntoConstraints="NO" id="STK-Cw-1By">
|
||||
<rect key="frame" x="40" y="15" width="295" height="100"/>
|
||||
<subviews>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" alignment="center" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="avn-wq-7Zt">
|
||||
<rect key="frame" x="0.0" y="0.0" width="295" height="40"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="face1" translatesAutoresizingMaskIntoConstraints="NO" id="fq4-to-wKp">
|
||||
<rect key="frame" x="0.0" y="0.0" width="40" height="40"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="40" id="G1F-5B-Qmz"/>
|
||||
<constraint firstAttribute="height" constant="40" id="xIh-K6-n5R"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" verticalHuggingPriority="251" text="Amada Iin" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="8rD-uo-vTf">
|
||||
<rect key="frame" x="50" y="11" width="168" height="18"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="15"/>
|
||||
<color key="textColor" red="0.41960784309999999" green="0.41960784309999999" blue="0.41960784309999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="FEB 14th" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="9wq-EN-tLL">
|
||||
<rect key="frame" x="228" y="14" width="43" height="12"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="10"/>
|
||||
<color key="textColor" red="0.76470588240000004" green="0.76470588240000004" blue="0.76470588240000004" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="heand" translatesAutoresizingMaskIntoConstraints="NO" id="CCB-2m-LDr">
|
||||
<rect key="frame" x="281" y="13.5" width="14" height="13"/>
|
||||
</imageView>
|
||||
</subviews>
|
||||
</stackView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="3" baselineAdjustment="alignBaselines" minimumScaleFactor="0.80000000000000004" translatesAutoresizingMaskIntoConstraints="NO" id="Rj6-os-v8s">
|
||||
<rect key="frame" x="0.0" y="40" width="0.0" height="60"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="60" id="X0h-Mf-l6D"/>
|
||||
</constraints>
|
||||
<string key="text">The federal beach atc requires states that receive funding to develop a risk-based beach evaluation and classification plan and apply it to</string>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="12"/>
|
||||
<color key="textColor" red="0.4431372549" green="0.4431372549" blue="0.4431372549" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="40" id="AKq-2T-BRC"/>
|
||||
<constraint firstAttribute="width" constant="40" id="lAw-yT-R7T"/>
|
||||
<constraint firstItem="avn-wq-7Zt" firstAttribute="leading" secondItem="STK-Cw-1By" secondAttribute="leading" id="JQi-MO-nNf"/>
|
||||
<constraint firstAttribute="trailing" secondItem="avn-wq-7Zt" secondAttribute="trailing" id="O7i-6t-BF2"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="heand" translatesAutoresizingMaskIntoConstraints="NO" id="szO-5V-CyH"/>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Amada Iin" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="UEu-Ap-Kms">
|
||||
<fontDescription key="fontDescription" type="system" pointSize="15"/>
|
||||
<color key="textColor" red="0.41960784309999999" green="0.41960784309999999" blue="0.41960784309999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="FEB 14th" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="7hI-Qw-bUn">
|
||||
<fontDescription key="fontDescription" type="system" pointSize="10"/>
|
||||
<color key="textColor" red="0.76470588240000004" green="0.76470588240000004" blue="0.76470588240000004" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="3" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="rkV-jC-tTs">
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="59" id="pYw-qC-eUH"/>
|
||||
</constraints>
|
||||
<string key="text">The federal beach atc requires states that receive funding to develop a risk-based beach evaluation and classification plan and apply it to</string>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="12"/>
|
||||
<color key="textColor" red="0.4431372549" green="0.4431372549" blue="0.4431372549" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</stackView>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="UEu-Ap-Kms" firstAttribute="centerY" secondItem="T8j-gX-HQZ" secondAttribute="centerY" id="0ar-MM-JhP"/>
|
||||
<constraint firstAttribute="trailing" secondItem="szO-5V-CyH" secondAttribute="trailing" constant="62" id="I1Z-x4-mXH"/>
|
||||
<constraint firstItem="7hI-Qw-bUn" firstAttribute="leading" secondItem="UEu-Ap-Kms" secondAttribute="trailing" constant="37" id="JWw-Z3-bSW"/>
|
||||
<constraint firstItem="7hI-Qw-bUn" firstAttribute="centerY" secondItem="UEu-Ap-Kms" secondAttribute="centerY" id="KR6-QV-sS2"/>
|
||||
<constraint firstItem="szO-5V-CyH" firstAttribute="centerY" secondItem="T8j-gX-HQZ" secondAttribute="centerY" id="UVU-13-4LE"/>
|
||||
<constraint firstItem="rkV-jC-tTs" firstAttribute="leading" secondItem="jPx-eH-c2S" secondAttribute="leading" constant="40" id="cf4-Ue-Xs2"/>
|
||||
<constraint firstItem="UEu-Ap-Kms" firstAttribute="leading" secondItem="T8j-gX-HQZ" secondAttribute="trailing" constant="28" id="fhv-QP-9Wc"/>
|
||||
<constraint firstAttribute="trailing" secondItem="rkV-jC-tTs" secondAttribute="trailing" constant="62" id="kZt-vH-S8D"/>
|
||||
<constraint firstItem="T8j-gX-HQZ" firstAttribute="leading" secondItem="jPx-eH-c2S" secondAttribute="leading" constant="40" id="v3e-He-0Sh"/>
|
||||
<constraint firstItem="T8j-gX-HQZ" firstAttribute="top" secondItem="jPx-eH-c2S" secondAttribute="top" constant="20" id="v85-ak-nGz"/>
|
||||
<constraint firstAttribute="bottomMargin" secondItem="rkV-jC-tTs" secondAttribute="bottom" id="wJM-Lw-H9T"/>
|
||||
<constraint firstItem="STK-Cw-1By" firstAttribute="top" secondItem="Md6-Nq-ERc" secondAttribute="top" constant="15" id="OiO-xC-QYX"/>
|
||||
<constraint firstAttribute="trailing" secondItem="STK-Cw-1By" secondAttribute="trailing" constant="40" id="T5c-DM-4CG"/>
|
||||
<constraint firstItem="STK-Cw-1By" firstAttribute="leading" secondItem="Md6-Nq-ERc" secondAttribute="leading" constant="40" id="bFM-Xr-TcA"/>
|
||||
<constraint firstAttribute="bottom" secondItem="STK-Cw-1By" secondAttribute="bottom" constant="15" id="xiT-eh-j7e"/>
|
||||
</constraints>
|
||||
</tableViewCellContentView>
|
||||
</tableViewCell>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="124" id="fTH-KP-Ac5">
|
||||
<rect key="frame" x="0.0" y="372" width="375" height="124"/>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" rowHeight="130" id="Tdr-Sn-B0H">
|
||||
<rect key="frame" x="0.0" y="384" width="375" height="130"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="fTH-KP-Ac5" id="BGd-Mp-TnE">
|
||||
<frame key="frameInset" width="375" height="124"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Tdr-Sn-B0H" id="GLn-XG-K05">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="130"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="face2" translatesAutoresizingMaskIntoConstraints="NO" id="l6O-iU-Deh">
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="top" translatesAutoresizingMaskIntoConstraints="NO" id="DDu-ZJ-lER">
|
||||
<rect key="frame" x="40" y="15" width="295" height="100"/>
|
||||
<subviews>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" alignment="center" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="27f-K8-QUC">
|
||||
<rect key="frame" x="0.0" y="0.0" width="295" height="40"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="face2" translatesAutoresizingMaskIntoConstraints="NO" id="4yu-jC-UXz">
|
||||
<rect key="frame" x="0.0" y="0.0" width="40" height="40"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="40" id="heF-QW-z6Q"/>
|
||||
<constraint firstAttribute="width" constant="40" id="tiZ-lo-ugS"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" verticalHuggingPriority="251" text="Peter Allan" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Nsm-QZ-YcV">
|
||||
<rect key="frame" x="50" y="11" width="168" height="18"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="15"/>
|
||||
<color key="textColor" red="0.41960784309999999" green="0.41960784309999999" blue="0.41960784309999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="FEB 14th" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="d6Y-da-Srh">
|
||||
<rect key="frame" x="228" y="14" width="43" height="12"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="10"/>
|
||||
<color key="textColor" red="0.76470588240000004" green="0.76470588240000004" blue="0.76470588240000004" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="heand" translatesAutoresizingMaskIntoConstraints="NO" id="LNB-9D-Kgq">
|
||||
<rect key="frame" x="281" y="13.5" width="14" height="13"/>
|
||||
</imageView>
|
||||
</subviews>
|
||||
</stackView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="3" baselineAdjustment="alignBaselines" minimumScaleFactor="0.80000000000000004" translatesAutoresizingMaskIntoConstraints="NO" id="guA-2J-wB7">
|
||||
<rect key="frame" x="0.0" y="40" width="0.0" height="60"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="60" id="eVB-K1-R8b"/>
|
||||
</constraints>
|
||||
<string key="text">The federal beach atc requires states that receive funding to develop a risk-based beach evaluation and classification plan and apply it to</string>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="12"/>
|
||||
<color key="textColor" red="0.4431372549" green="0.4431372549" blue="0.4431372549" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="40" id="Wvu-NC-dmu"/>
|
||||
<constraint firstAttribute="width" constant="40" id="goR-UO-N7g"/>
|
||||
<constraint firstAttribute="trailing" secondItem="27f-K8-QUC" secondAttribute="trailing" id="CJy-xz-6Zt"/>
|
||||
<constraint firstItem="27f-K8-QUC" firstAttribute="leading" secondItem="DDu-ZJ-lER" secondAttribute="leading" id="JyM-0i-VoB"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="heand" translatesAutoresizingMaskIntoConstraints="NO" id="ceS-Mg-PrP"/>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Peter Allan" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="a3U-of-sdv">
|
||||
<fontDescription key="fontDescription" type="system" pointSize="15"/>
|
||||
<color key="textColor" red="0.41960784309999999" green="0.41960784309999999" blue="0.41960784309999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="FEB 14th" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="h3x-N2-MWJ">
|
||||
<fontDescription key="fontDescription" type="system" pointSize="10"/>
|
||||
<color key="textColor" red="0.76470588240000004" green="0.76470588240000004" blue="0.76470588240000004" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="3" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3ZN-4l-hGa">
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="59" id="z9M-6w-uYi"/>
|
||||
</constraints>
|
||||
<string key="text">The federal beach atc requires states that receive funding to develop a risk-based beach evaluation and classification plan and apply it to</string>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="12"/>
|
||||
<color key="textColor" red="0.4431372549" green="0.4431372549" blue="0.4431372549" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</stackView>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="h3x-N2-MWJ" firstAttribute="centerY" secondItem="a3U-of-sdv" secondAttribute="centerY" id="879-Lf-sHE"/>
|
||||
<constraint firstItem="l6O-iU-Deh" firstAttribute="top" secondItem="BGd-Mp-TnE" secondAttribute="top" constant="20" id="C4W-pg-781"/>
|
||||
<constraint firstAttribute="bottomMargin" secondItem="3ZN-4l-hGa" secondAttribute="bottom" id="KIV-vm-vEj"/>
|
||||
<constraint firstItem="a3U-of-sdv" firstAttribute="centerY" secondItem="l6O-iU-Deh" secondAttribute="centerY" id="N7q-ub-LKa"/>
|
||||
<constraint firstAttribute="trailing" secondItem="ceS-Mg-PrP" secondAttribute="trailing" constant="62" id="Sfq-JU-4Nm"/>
|
||||
<constraint firstItem="l6O-iU-Deh" firstAttribute="leading" secondItem="BGd-Mp-TnE" secondAttribute="leading" constant="40" id="VMR-N1-Xjl"/>
|
||||
<constraint firstItem="ceS-Mg-PrP" firstAttribute="centerY" secondItem="l6O-iU-Deh" secondAttribute="centerY" id="fdg-23-M6H"/>
|
||||
<constraint firstAttribute="trailing" secondItem="3ZN-4l-hGa" secondAttribute="trailing" constant="62" id="hmQ-iS-d5t"/>
|
||||
<constraint firstItem="a3U-of-sdv" firstAttribute="leading" secondItem="l6O-iU-Deh" secondAttribute="trailing" constant="28" id="o1q-GY-Lns"/>
|
||||
<constraint firstItem="3ZN-4l-hGa" firstAttribute="leading" secondItem="BGd-Mp-TnE" secondAttribute="leading" constant="40" id="oCn-vE-6YT"/>
|
||||
<constraint firstItem="h3x-N2-MWJ" firstAttribute="leading" secondItem="a3U-of-sdv" secondAttribute="trailing" constant="37" id="wku-gF-N0I"/>
|
||||
<constraint firstItem="DDu-ZJ-lER" firstAttribute="top" secondItem="GLn-XG-K05" secondAttribute="top" constant="15" id="l1S-IL-jMj"/>
|
||||
<constraint firstAttribute="bottom" secondItem="DDu-ZJ-lER" secondAttribute="bottom" constant="15" id="mWj-0T-I4l"/>
|
||||
<constraint firstItem="DDu-ZJ-lER" firstAttribute="leading" secondItem="GLn-XG-K05" secondAttribute="leading" constant="40" id="pvZ-k7-1w4"/>
|
||||
<constraint firstAttribute="trailing" secondItem="DDu-ZJ-lER" secondAttribute="trailing" constant="40" id="wdR-TG-u4d"/>
|
||||
</constraints>
|
||||
</tableViewCellContentView>
|
||||
</tableViewCell>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="124" id="irZ-0L-X9r">
|
||||
<rect key="frame" x="0.0" y="496" width="375" height="124"/>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" rowHeight="130" id="DKC-ay-0W5">
|
||||
<rect key="frame" x="0.0" y="514" width="375" height="130"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="irZ-0L-X9r" id="t3x-Eb-ktg">
|
||||
<frame key="frameInset" width="375" height="124"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="DKC-ay-0W5" id="OvL-k3-UIL">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="130"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="face1" translatesAutoresizingMaskIntoConstraints="NO" id="SY0-ki-F5U">
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="top" translatesAutoresizingMaskIntoConstraints="NO" id="STI-xc-qal">
|
||||
<rect key="frame" x="40" y="15" width="295" height="100"/>
|
||||
<subviews>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" alignment="center" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="YWJ-Pq-HUf">
|
||||
<rect key="frame" x="0.0" y="0.0" width="295" height="40"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="face1" translatesAutoresizingMaskIntoConstraints="NO" id="Uz6-PY-MeW">
|
||||
<rect key="frame" x="0.0" y="0.0" width="40" height="40"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="40" id="avr-xK-V22"/>
|
||||
<constraint firstAttribute="width" constant="40" id="dgi-bt-ecS"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" verticalHuggingPriority="251" text="Amada Iin" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="7OF-et-epa">
|
||||
<rect key="frame" x="50" y="11" width="168" height="18"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="15"/>
|
||||
<color key="textColor" red="0.41960784309999999" green="0.41960784309999999" blue="0.41960784309999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="FEB 14th" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="xP4-cS-081">
|
||||
<rect key="frame" x="228" y="14" width="43" height="12"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="10"/>
|
||||
<color key="textColor" red="0.76470588240000004" green="0.76470588240000004" blue="0.76470588240000004" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="heand" translatesAutoresizingMaskIntoConstraints="NO" id="C86-X3-gRu">
|
||||
<rect key="frame" x="281" y="13.5" width="14" height="13"/>
|
||||
</imageView>
|
||||
</subviews>
|
||||
</stackView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="3" baselineAdjustment="alignBaselines" minimumScaleFactor="0.80000000000000004" translatesAutoresizingMaskIntoConstraints="NO" id="v80-2F-1zn">
|
||||
<rect key="frame" x="0.0" y="40" width="0.0" height="60"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="60" id="nvf-wL-GDB"/>
|
||||
</constraints>
|
||||
<string key="text">The federal beach atc requires states that receive funding to develop a risk-based beach evaluation and classification plan and apply it to</string>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="12"/>
|
||||
<color key="textColor" red="0.4431372549" green="0.4431372549" blue="0.4431372549" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="40" id="1XW-AC-9LK"/>
|
||||
<constraint firstAttribute="height" constant="40" id="jDR-B8-a7U"/>
|
||||
<constraint firstAttribute="trailing" secondItem="YWJ-Pq-HUf" secondAttribute="trailing" id="5ym-ch-XVe"/>
|
||||
<constraint firstItem="YWJ-Pq-HUf" firstAttribute="leading" secondItem="STI-xc-qal" secondAttribute="leading" id="mJk-x2-SxR"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="heand" translatesAutoresizingMaskIntoConstraints="NO" id="g7r-dJ-em9"/>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Amada Iin" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="0sx-fO-Xiy">
|
||||
<fontDescription key="fontDescription" type="system" pointSize="15"/>
|
||||
<color key="textColor" red="0.41960784309999999" green="0.41960784309999999" blue="0.41960784309999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="FEB 14th" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="SVA-lD-IQs">
|
||||
<fontDescription key="fontDescription" type="system" pointSize="10"/>
|
||||
<color key="textColor" red="0.76470588240000004" green="0.76470588240000004" blue="0.76470588240000004" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="3" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="kYn-LQ-ReD">
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="59" id="sMt-dP-LYh"/>
|
||||
</constraints>
|
||||
<string key="text">The federal beach atc requires states that receive funding to develop a risk-based beach evaluation and classification plan and apply it to</string>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="12"/>
|
||||
<color key="textColor" red="0.4431372549" green="0.4431372549" blue="0.4431372549" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</stackView>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="SVA-lD-IQs" firstAttribute="centerY" secondItem="0sx-fO-Xiy" secondAttribute="centerY" id="2jW-fL-D7T"/>
|
||||
<constraint firstAttribute="trailing" secondItem="g7r-dJ-em9" secondAttribute="trailing" constant="62" id="ChQ-bB-Cik"/>
|
||||
<constraint firstItem="0sx-fO-Xiy" firstAttribute="centerY" secondItem="SY0-ki-F5U" secondAttribute="centerY" id="Faj-Bw-0Tu"/>
|
||||
<constraint firstItem="kYn-LQ-ReD" firstAttribute="leading" secondItem="t3x-Eb-ktg" secondAttribute="leading" constant="40" id="HLb-38-S1u"/>
|
||||
<constraint firstAttribute="trailing" secondItem="kYn-LQ-ReD" secondAttribute="trailing" constant="62" id="HzA-Nb-vXy"/>
|
||||
<constraint firstItem="g7r-dJ-em9" firstAttribute="centerY" secondItem="SY0-ki-F5U" secondAttribute="centerY" id="KEY-Pc-yZs"/>
|
||||
<constraint firstItem="SY0-ki-F5U" firstAttribute="leading" secondItem="t3x-Eb-ktg" secondAttribute="leading" constant="40" id="NZg-9p-Sb1"/>
|
||||
<constraint firstItem="0sx-fO-Xiy" firstAttribute="leading" secondItem="SY0-ki-F5U" secondAttribute="trailing" constant="28" id="Xe5-9G-9vl"/>
|
||||
<constraint firstItem="SY0-ki-F5U" firstAttribute="top" secondItem="t3x-Eb-ktg" secondAttribute="top" constant="20" id="YyV-BS-5UD"/>
|
||||
<constraint firstAttribute="bottomMargin" secondItem="kYn-LQ-ReD" secondAttribute="bottom" id="oHX-7c-bG2"/>
|
||||
<constraint firstItem="SVA-lD-IQs" firstAttribute="leading" secondItem="0sx-fO-Xiy" secondAttribute="trailing" constant="37" id="xkH-1T-7dm"/>
|
||||
<constraint firstItem="STI-xc-qal" firstAttribute="top" secondItem="OvL-k3-UIL" secondAttribute="top" constant="15" id="1Wt-eA-mfs"/>
|
||||
<constraint firstAttribute="bottom" secondItem="STI-xc-qal" secondAttribute="bottom" constant="15" id="Gcc-F3-tlL"/>
|
||||
<constraint firstAttribute="trailing" secondItem="STI-xc-qal" secondAttribute="trailing" constant="40" id="leW-dt-mEv"/>
|
||||
<constraint firstItem="STI-xc-qal" firstAttribute="leading" secondItem="OvL-k3-UIL" secondAttribute="leading" constant="40" id="mhF-9Y-V2L"/>
|
||||
</constraints>
|
||||
</tableViewCellContentView>
|
||||
</tableViewCell>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="124" id="Fj4-n4-S6M">
|
||||
<rect key="frame" x="0.0" y="620" width="375" height="124"/>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" rowHeight="130" id="Bem-uK-CGC">
|
||||
<rect key="frame" x="0.0" y="644" width="375" height="130"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Fj4-n4-S6M" id="D8J-AG-YUN">
|
||||
<frame key="frameInset" width="375" height="124"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Bem-uK-CGC" id="wC3-Hh-anO">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="130"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="face2" translatesAutoresizingMaskIntoConstraints="NO" id="dRk-IE-zXs">
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="top" translatesAutoresizingMaskIntoConstraints="NO" id="tMM-s3-OKo">
|
||||
<rect key="frame" x="40" y="15" width="295" height="100"/>
|
||||
<subviews>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" alignment="center" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="TFL-At-uyI">
|
||||
<rect key="frame" x="0.0" y="0.0" width="295" height="40"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="face2" translatesAutoresizingMaskIntoConstraints="NO" id="QOG-Ub-YqG">
|
||||
<rect key="frame" x="0.0" y="0.0" width="40" height="40"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="40" id="7lU-qa-EHL"/>
|
||||
<constraint firstAttribute="width" constant="40" id="XYT-JZ-AY1"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" verticalHuggingPriority="251" text="Peter Allan" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ReU-Mu-iaN">
|
||||
<rect key="frame" x="50" y="11" width="168" height="18"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="15"/>
|
||||
<color key="textColor" red="0.41960784309999999" green="0.41960784309999999" blue="0.41960784309999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="FEB 14th" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zzn-X1-aOV">
|
||||
<rect key="frame" x="228" y="14" width="43" height="12"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="10"/>
|
||||
<color key="textColor" red="0.76470588240000004" green="0.76470588240000004" blue="0.76470588240000004" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="heand" translatesAutoresizingMaskIntoConstraints="NO" id="PsA-nw-Zed">
|
||||
<rect key="frame" x="281" y="13.5" width="14" height="13"/>
|
||||
</imageView>
|
||||
</subviews>
|
||||
</stackView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="3" baselineAdjustment="alignBaselines" minimumScaleFactor="0.80000000000000004" translatesAutoresizingMaskIntoConstraints="NO" id="qtA-cn-iTh">
|
||||
<rect key="frame" x="0.0" y="40" width="0.0" height="60"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="60" id="d7O-23-tUP"/>
|
||||
</constraints>
|
||||
<string key="text">The federal beach atc requires states that receive funding to develop a risk-based beach evaluation and classification plan and apply it to</string>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="12"/>
|
||||
<color key="textColor" red="0.4431372549" green="0.4431372549" blue="0.4431372549" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="40" id="KNl-fy-6Ga"/>
|
||||
<constraint firstAttribute="width" constant="40" id="hN8-5E-akX"/>
|
||||
<constraint firstItem="TFL-At-uyI" firstAttribute="leading" secondItem="tMM-s3-OKo" secondAttribute="leading" id="5AL-z3-8xe"/>
|
||||
<constraint firstAttribute="trailing" secondItem="TFL-At-uyI" secondAttribute="trailing" id="Wab-Pf-VgL"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="heand" translatesAutoresizingMaskIntoConstraints="NO" id="hz8-Cp-lQj"/>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Peter Allan" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YjL-xf-PcV">
|
||||
<fontDescription key="fontDescription" type="system" pointSize="15"/>
|
||||
<color key="textColor" red="0.41960784309999999" green="0.41960784309999999" blue="0.41960784309999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="FEB 14th" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="J4t-pX-zbM">
|
||||
<fontDescription key="fontDescription" type="system" pointSize="10"/>
|
||||
<color key="textColor" red="0.76470588240000004" green="0.76470588240000004" blue="0.76470588240000004" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="3" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Q6w-vY-gMp">
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="59" id="T4M-G7-7hc"/>
|
||||
</constraints>
|
||||
<string key="text">The federal beach atc requires states that receive funding to develop a risk-based beach evaluation and classification plan and apply it to</string>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="12"/>
|
||||
<color key="textColor" red="0.4431372549" green="0.4431372549" blue="0.4431372549" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</stackView>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="Q6w-vY-gMp" firstAttribute="leading" secondItem="D8J-AG-YUN" secondAttribute="leading" constant="40" id="1ka-fN-GDR"/>
|
||||
<constraint firstItem="dRk-IE-zXs" firstAttribute="leading" secondItem="D8J-AG-YUN" secondAttribute="leading" constant="40" id="7Oe-Rd-NXO"/>
|
||||
<constraint firstItem="hz8-Cp-lQj" firstAttribute="centerY" secondItem="dRk-IE-zXs" secondAttribute="centerY" id="C2R-V0-FlH"/>
|
||||
<constraint firstItem="J4t-pX-zbM" firstAttribute="leading" secondItem="YjL-xf-PcV" secondAttribute="trailing" constant="37" id="DG5-6g-aw8"/>
|
||||
<constraint firstItem="dRk-IE-zXs" firstAttribute="top" secondItem="D8J-AG-YUN" secondAttribute="top" constant="20" id="FvH-zN-qew"/>
|
||||
<constraint firstItem="J4t-pX-zbM" firstAttribute="centerY" secondItem="YjL-xf-PcV" secondAttribute="centerY" id="JiC-Tf-VdR"/>
|
||||
<constraint firstAttribute="trailing" secondItem="hz8-Cp-lQj" secondAttribute="trailing" constant="62" id="LWy-zf-18F"/>
|
||||
<constraint firstItem="YjL-xf-PcV" firstAttribute="leading" secondItem="dRk-IE-zXs" secondAttribute="trailing" constant="28" id="PDn-rh-K7o"/>
|
||||
<constraint firstAttribute="trailing" secondItem="Q6w-vY-gMp" secondAttribute="trailing" constant="62" id="X6j-C7-AtW"/>
|
||||
<constraint firstItem="YjL-xf-PcV" firstAttribute="centerY" secondItem="dRk-IE-zXs" secondAttribute="centerY" id="jkE-J3-oHA"/>
|
||||
<constraint firstAttribute="bottomMargin" secondItem="Q6w-vY-gMp" secondAttribute="bottom" id="nTe-QJ-NrE"/>
|
||||
<constraint firstAttribute="trailing" secondItem="tMM-s3-OKo" secondAttribute="trailing" constant="40" id="0OQ-7D-Xjo"/>
|
||||
<constraint firstItem="tMM-s3-OKo" firstAttribute="top" secondItem="wC3-Hh-anO" secondAttribute="top" constant="15" id="Aqq-GD-5qX"/>
|
||||
<constraint firstItem="tMM-s3-OKo" firstAttribute="leading" secondItem="wC3-Hh-anO" secondAttribute="leading" constant="40" id="Lz1-G1-EfS"/>
|
||||
<constraint firstAttribute="bottom" secondItem="tMM-s3-OKo" secondAttribute="bottom" constant="15" id="g3Y-GA-ZAk"/>
|
||||
</constraints>
|
||||
</tableViewCellContentView>
|
||||
</tableViewCell>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" rowHeight="130" id="3rA-ws-KnH">
|
||||
<rect key="frame" x="0.0" y="774" width="375" height="130"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="3rA-ws-KnH" id="vNS-El-lEA">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="130"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="top" translatesAutoresizingMaskIntoConstraints="NO" id="dHy-no-3dG">
|
||||
<rect key="frame" x="0.0" y="15" width="0.0" height="100"/>
|
||||
<subviews>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" alignment="center" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="qg6-9G-buN">
|
||||
<rect key="frame" x="0.0" y="0.0" width="0.0" height="40"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="face1" translatesAutoresizingMaskIntoConstraints="NO" id="d7e-fT-v2a">
|
||||
<rect key="frame" x="0.0" y="0.0" width="40" height="40"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="40" id="6Ky-QD-1rh"/>
|
||||
<constraint firstAttribute="width" constant="40" id="R3O-gp-WGo"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" verticalHuggingPriority="251" text="Amada Iin" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="dsG-zh-ZDw">
|
||||
<rect key="frame" x="0.0" y="11" width="0.0" height="18"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="15"/>
|
||||
<color key="textColor" red="0.41960784309999999" green="0.41960784309999999" blue="0.41960784309999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="FEB 14th" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="37E-Ih-nze">
|
||||
<rect key="frame" x="0.0" y="14" width="43" height="12"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="10"/>
|
||||
<color key="textColor" red="0.76470588240000004" green="0.76470588240000004" blue="0.76470588240000004" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="heand" translatesAutoresizingMaskIntoConstraints="NO" id="I3D-43-QUr">
|
||||
<rect key="frame" x="0.0" y="13.5" width="14" height="13"/>
|
||||
</imageView>
|
||||
</subviews>
|
||||
</stackView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="3" baselineAdjustment="alignBaselines" minimumScaleFactor="0.80000000000000004" translatesAutoresizingMaskIntoConstraints="NO" id="uhH-HH-oP4">
|
||||
<rect key="frame" x="0.0" y="40" width="0.0" height="60"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="60" id="kTR-Ho-zi0"/>
|
||||
</constraints>
|
||||
<string key="text">The federal beach atc requires states that receive funding to develop a risk-based beach evaluation and classification plan and apply it to</string>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="12"/>
|
||||
<color key="textColor" red="0.4431372549" green="0.4431372549" blue="0.4431372549" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstAttribute="trailing" secondItem="qg6-9G-buN" secondAttribute="trailing" id="Pjy-os-XZx"/>
|
||||
<constraint firstItem="qg6-9G-buN" firstAttribute="leading" secondItem="dHy-no-3dG" secondAttribute="leading" id="lZi-8T-Hep"/>
|
||||
</constraints>
|
||||
</stackView>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="dHy-no-3dG" firstAttribute="leading" secondItem="vNS-El-lEA" secondAttribute="leading" constant="40" id="1Pl-pq-EEl"/>
|
||||
<constraint firstAttribute="trailing" secondItem="dHy-no-3dG" secondAttribute="trailing" constant="40" id="K29-x8-3Dt"/>
|
||||
<constraint firstAttribute="bottom" secondItem="dHy-no-3dG" secondAttribute="bottom" constant="15" id="nC7-OP-5iZ"/>
|
||||
<constraint firstItem="dHy-no-3dG" firstAttribute="top" secondItem="vNS-El-lEA" secondAttribute="top" constant="15" id="w4v-Gg-Zqa"/>
|
||||
</constraints>
|
||||
</tableViewCellContentView>
|
||||
</tableViewCell>
|
||||
@@ -390,14 +529,16 @@
|
||||
<outlet property="delegate" destination="7RW-i0-HfN" id="28D-Ct-5A9"/>
|
||||
</connections>
|
||||
</tableView>
|
||||
<toolbarItems/>
|
||||
<navigationItem key="navigationItem" id="9zG-W9-jGP">
|
||||
<nil key="title"/>
|
||||
<barButtonItem key="leftBarButtonItem" image="searchIcon" id="sSw-AG-wrF"/>
|
||||
<view key="titleView" contentMode="scaleToFill" id="qyb-Fh-aIr" userLabel="Item View">
|
||||
<rect key="frame" x="68" y="6" width="240" height="33"/>
|
||||
<rect key="frame" x="67.5" y="5.5" width="240" height="33"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Title" translatesAutoresizingMaskIntoConstraints="NO" id="a24-t2-9jd">
|
||||
<rect key="frame" x="94.5" y="8.5" width="51" height="16"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="16" id="5Zr-Wx-iQB"/>
|
||||
<constraint firstAttribute="width" constant="51" id="RtX-4m-x9W"/>
|
||||
@@ -416,6 +557,7 @@
|
||||
</connections>
|
||||
</barButtonItem>
|
||||
</navigationItem>
|
||||
<simulatedToolbarMetrics key="simulatedBottomBarMetrics"/>
|
||||
</tableViewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="koT-TQ-RUs" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
@@ -429,8 +571,10 @@
|
||||
<image name="face1" width="40" height="39"/>
|
||||
<image name="face2" width="40" height="39"/>
|
||||
<image name="heand" width="14" height="13"/>
|
||||
<image name="locationButton" width="20" height="20"/>
|
||||
<image name="map" width="375" height="124"/>
|
||||
<image name="searchIcon" width="20" height="20"/>
|
||||
<image name="stars" width="77" height="11"/>
|
||||
</resources>
|
||||
<color key="tintColor" red="0.97429201227993889" green="0.97273087832317329" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</document>
|
||||
|
||||
@@ -1,34 +1,59 @@
|
||||
// Generated using SwiftGen, by O.Halligon — https://github.com/AliSoftware/SwiftGen
|
||||
|
||||
import UIKit
|
||||
#if os(iOS) || os(tvOS) || os(watchOS)
|
||||
import UIKit.UIImage
|
||||
typealias Image = UIImage
|
||||
#elseif os(OSX)
|
||||
import AppKit.NSImage
|
||||
typealias Image = NSImage
|
||||
#endif
|
||||
|
||||
extension UIImage {
|
||||
enum Asset: String {
|
||||
case BackgroundImage = "BackgroundImage"
|
||||
case CloseButton = "CloseButton"
|
||||
case Dots = "dots"
|
||||
case Face1 = "face1"
|
||||
case Face2 = "face2"
|
||||
case Heand = "heand"
|
||||
case Icons = "icons"
|
||||
case Image = "image"
|
||||
case Item0 = "item0"
|
||||
case Item1 = "item1"
|
||||
case Item2 = "item2"
|
||||
case Item3 = "item3"
|
||||
case LocationButton = "locationButton"
|
||||
case Map = "map"
|
||||
case PinIcon = "pinIcon"
|
||||
case SearchIcon = "searchIcon"
|
||||
case Stars = "stars"
|
||||
case Title = "Title"
|
||||
// swiftlint:disable file_length
|
||||
// swiftlint:disable line_length
|
||||
|
||||
var image: UIImage {
|
||||
return UIImage(asset: self)
|
||||
}
|
||||
}
|
||||
// swiftlint:disable type_body_length
|
||||
enum Asset: String {
|
||||
case backgroundImage = "BackgroundImage"
|
||||
case closeButton = "CloseButton"
|
||||
case dots = "dots"
|
||||
case face1 = "face1"
|
||||
case face2 = "face2"
|
||||
case heand = "heand"
|
||||
case icons = "icons"
|
||||
case image = "image"
|
||||
case item0 = "item0"
|
||||
case item1 = "item1"
|
||||
case item2 = "item2"
|
||||
case item3 = "item3"
|
||||
case locationButton = "locationButton"
|
||||
case map = "map"
|
||||
case pinIcon = "pinIcon"
|
||||
case searchIcon = "searchIcon"
|
||||
case stars = "stars"
|
||||
case title = "Title"
|
||||
|
||||
convenience init!(asset: Asset) {
|
||||
self.init(named: asset.rawValue)
|
||||
var image: Image {
|
||||
let bundle = Bundle(for: BundleToken.self)
|
||||
#if os(iOS) || os(tvOS) || os(watchOS)
|
||||
let image = Image(named: rawValue, in: bundle, compatibleWith: nil)
|
||||
#elseif os(OSX)
|
||||
let image = bundle.image(forResource: rawValue)
|
||||
#endif
|
||||
guard let result = image else { fatalError("Unable to load image \(rawValue).") }
|
||||
return result
|
||||
}
|
||||
}
|
||||
// swiftlint:enable type_body_length
|
||||
|
||||
extension Image {
|
||||
convenience init!(asset: Asset) {
|
||||
#if os(iOS) || os(tvOS) || os(watchOS)
|
||||
let bundle = Bundle(for: BundleToken.self)
|
||||
self.init(named: asset.rawValue, in: bundle, compatibleWith: nil)
|
||||
#elseif os(OSX)
|
||||
self.init(named: asset.rawValue)
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
private final class BundleToken {}
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@ import UIKit
|
||||
|
||||
extension UICollectionView {
|
||||
|
||||
func getReusableCellWithIdentifier<T: UICollectionViewCell>(_ indexPath: IndexPath) -> T where T: CollectionViewCellIdentifiable {
|
||||
func getReusableCellWithIdentifier<T: UICollectionViewCell>(_ indexPath: IndexPath) -> T {
|
||||
guard let cell = dequeueReusableCell(withReuseIdentifier: T.cellIdentifier, for: indexPath) as? T else {
|
||||
fatalError("Couldn't instantiate view controller with identifier \(T.cellIdentifier) ")
|
||||
}
|
||||
|
||||
+1
-1
@@ -22,7 +22,7 @@ extension UIStoryboard {
|
||||
return UIStoryboard(name: storyboard.rawValue, bundle: bundle)
|
||||
}
|
||||
|
||||
func instantiateViewController<T: UIViewController>() -> T where T: StoryboardIdentifiable {
|
||||
func instantiateViewController<T: UIViewController>() -> T {
|
||||
guard let viewController = self.instantiateViewController(withIdentifier: T.storyboardIdentifier) as? T else {
|
||||
fatalError("Couldn't instantiate view controller with identifier \(T.storyboardIdentifier) ")
|
||||
}
|
||||
|
||||
+6
-4
@@ -14,22 +14,25 @@ class DemoTableViewController: ExpandingTableViewController {
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
configureNavBar()
|
||||
let image1 = UIImage.Asset.BackgroundImage.image
|
||||
let image1 = Asset.backgroundImage.image
|
||||
tableView.backgroundView = UIImageView(image: image1)
|
||||
if #available(iOS 11.0, *) {
|
||||
tableView.contentInsetAdjustmentBehavior = .never
|
||||
}
|
||||
}
|
||||
}
|
||||
// MARK: Helpers
|
||||
|
||||
// MARK: Helpers
|
||||
extension DemoTableViewController {
|
||||
|
||||
fileprivate func configureNavBar() {
|
||||
navigationItem.leftBarButtonItem?.image = navigationItem.leftBarButtonItem?.image!.withRenderingMode(UIImageRenderingMode.alwaysOriginal)
|
||||
navigationItem.rightBarButtonItem?.image = navigationItem.rightBarButtonItem?.image!.withRenderingMode(UIImageRenderingMode.alwaysOriginal)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// MARK: Actions
|
||||
|
||||
extension DemoTableViewController {
|
||||
|
||||
@IBAction func backButtonHandler(_ sender: AnyObject) {
|
||||
@@ -46,7 +49,6 @@ extension DemoTableViewController {
|
||||
}
|
||||
|
||||
// MARK: UIScrollViewDelegate
|
||||
|
||||
extension DemoTableViewController {
|
||||
|
||||
override func scrollViewDidScroll(_ scrollView: UIScrollView) {
|
||||
|
||||
+21
-23
@@ -17,8 +17,7 @@ class DemoViewController: ExpandingViewController {
|
||||
@IBOutlet weak var pageLabel: UILabel!
|
||||
}
|
||||
|
||||
// MARK: life cicle
|
||||
|
||||
// MARK: - Lifecycle 🌎
|
||||
extension DemoViewController {
|
||||
|
||||
override func viewDidLoad() {
|
||||
@@ -26,14 +25,13 @@ extension DemoViewController {
|
||||
super.viewDidLoad()
|
||||
|
||||
registerCell()
|
||||
fillCellIsOpeenArry()
|
||||
addGestureToView(collectionView!)
|
||||
fillCellIsOpenArray()
|
||||
addGesture(to: collectionView!)
|
||||
configureNavBar()
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: Helpers
|
||||
|
||||
// MARK: Helpers
|
||||
extension DemoViewController {
|
||||
|
||||
fileprivate func registerCell() {
|
||||
@@ -42,10 +40,8 @@ extension DemoViewController {
|
||||
collectionView?.register(nib, forCellWithReuseIdentifier: String(describing: DemoCollectionViewCell.self))
|
||||
}
|
||||
|
||||
fileprivate func fillCellIsOpeenArry() {
|
||||
for _ in items {
|
||||
cellsIsOpen.append(false)
|
||||
}
|
||||
fileprivate func fillCellIsOpenArray() {
|
||||
cellsIsOpen = Array(repeating: false, count: items.count)
|
||||
}
|
||||
|
||||
fileprivate func getViewController() -> ExpandingTableViewController {
|
||||
@@ -57,25 +53,25 @@ extension DemoViewController {
|
||||
fileprivate func configureNavBar() {
|
||||
navigationItem.leftBarButtonItem?.image = navigationItem.leftBarButtonItem?.image!.withRenderingMode(UIImageRenderingMode.alwaysOriginal)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// MARK: Gesture
|
||||
|
||||
extension DemoViewController {
|
||||
|
||||
fileprivate func addGestureToView(_ toView: UIView) {
|
||||
let gesutereUp = Init(UISwipeGestureRecognizer(target: self, action: #selector(DemoViewController.swipeHandler(_:)))) {
|
||||
fileprivate func addGesture(to view: UIView) {
|
||||
let upGesture = Init(UISwipeGestureRecognizer(target: self, action: #selector(DemoViewController.swipeHandler(_:)))) {
|
||||
$0.direction = .up
|
||||
}
|
||||
|
||||
let gesutereDown = Init(UISwipeGestureRecognizer(target: self, action: #selector(DemoViewController.swipeHandler(_:)))) {
|
||||
let downGesture = Init(UISwipeGestureRecognizer(target: self, action: #selector(DemoViewController.swipeHandler(_:)))) {
|
||||
$0.direction = .down
|
||||
}
|
||||
toView.addGestureRecognizer(gesutereUp)
|
||||
toView.addGestureRecognizer(gesutereDown)
|
||||
view.addGestureRecognizer(upGesture)
|
||||
view.addGestureRecognizer(downGesture)
|
||||
}
|
||||
|
||||
func swipeHandler(_ sender: UISwipeGestureRecognizer) {
|
||||
@objc func swipeHandler(_ sender: UISwipeGestureRecognizer) {
|
||||
let indexPath = IndexPath(row: currentIndex, section: 0)
|
||||
guard let cell = collectionView?.cellForItem(at: indexPath) as? DemoCollectionViewCell else { return }
|
||||
// double swipe Up transition
|
||||
@@ -89,28 +85,28 @@ extension DemoViewController {
|
||||
|
||||
let open = sender.direction == .up ? true : false
|
||||
cell.cellIsOpen(open)
|
||||
cellsIsOpen[(indexPath as NSIndexPath).row] = cell.isOpened
|
||||
cellsIsOpen[indexPath.row] = cell.isOpened
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// MARK: UIScrollViewDelegate
|
||||
|
||||
// MARK: UIScrollViewDelegate
|
||||
extension DemoViewController {
|
||||
|
||||
func scrollViewDidScroll(_ scrollView: UIScrollView) {
|
||||
pageLabel.text = "\(currentIndex+1)/\(items.count)"
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// MARK: UICollectionViewDataSource
|
||||
|
||||
extension DemoViewController {
|
||||
|
||||
override func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) {
|
||||
super.collectionView(collectionView, willDisplay: cell, forItemAt: indexPath)
|
||||
guard let cell = cell as? DemoCollectionViewCell else { return }
|
||||
|
||||
let index = (indexPath as NSIndexPath).row % items.count
|
||||
let index = indexPath.row % items.count
|
||||
let info = items[index]
|
||||
cell.backgroundImageView?.image = UIImage(named: info.imageName)
|
||||
cell.customTitle.text = info.title
|
||||
@@ -119,7 +115,7 @@ extension DemoViewController {
|
||||
|
||||
func collectionView(_ collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: IndexPath) {
|
||||
guard let cell = collectionView.cellForItem(at: indexPath) as? DemoCollectionViewCell
|
||||
, currentIndex == (indexPath as NSIndexPath).row else { return }
|
||||
, currentIndex == indexPath.row else { return }
|
||||
|
||||
if cell.isOpened == false {
|
||||
cell.cellIsOpen(true)
|
||||
@@ -131,6 +127,7 @@ extension DemoViewController {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// MARK: UICollectionViewDataSource
|
||||
@@ -143,4 +140,5 @@ extension DemoViewController {
|
||||
override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
|
||||
return collectionView.dequeueReusableCell(withReuseIdentifier: String(describing: DemoCollectionViewCell.self), for: indexPath)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+25
-28
@@ -8,13 +8,22 @@
|
||||
|
||||
import UIKit
|
||||
|
||||
fileprivate final class CustomView: UIView {
|
||||
var onLayoutSubviews: () -> Void = { }
|
||||
|
||||
override func layoutSubviews() {
|
||||
super.layoutSubviews()
|
||||
onLayoutSubviews()
|
||||
}
|
||||
}
|
||||
|
||||
class AnimatingBarButton: UIBarButtonItem, Rotatable {
|
||||
|
||||
@IBInspectable var normalImageName: String = ""
|
||||
@IBInspectable var selectedImageName: String = ""
|
||||
|
||||
@IBInspectable var duration: Double = 1
|
||||
|
||||
|
||||
let normalView = UIImageView(frame: .zero)
|
||||
let selectedView = UIImageView(frame: .zero)
|
||||
}
|
||||
@@ -25,10 +34,9 @@ extension AnimatingBarButton {
|
||||
|
||||
override func awakeFromNib() {
|
||||
super.awakeFromNib()
|
||||
customView = UIView(frame: CGRect(x: 0, y: 0, width: 44, height: 44))
|
||||
// customView?.backgroundColor = .redColor()
|
||||
|
||||
configurateImageViews()
|
||||
let view = CustomView(frame: CGRect(x: 0, y: 0, width: 44, height: 44))
|
||||
view.onLayoutSubviews = {[weak self] in self?.configurateImageViews() }
|
||||
customView = view
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,35 +62,24 @@ extension AnimatingBarButton {
|
||||
configureImageView(selectedView, imageName: selectedImageName)
|
||||
|
||||
selectedView.alpha = 0
|
||||
// normalView.hidden = true
|
||||
}
|
||||
|
||||
fileprivate func configureImageView(_ imageView: UIImageView, imageName: String) {
|
||||
guard let customView = customView else { return }
|
||||
|
||||
imageView.translatesAutoresizingMaskIntoConstraints = false
|
||||
imageView.image = UIImage(named: imageName)
|
||||
guard let image = UIImage(named: imageName)?.withRenderingMode(UIImageRenderingMode.alwaysTemplate) else { return }
|
||||
|
||||
imageView.image = image
|
||||
imageView.contentMode = .scaleAspectFit
|
||||
// imageView.backgroundColor = .greenColor()
|
||||
imageView.tintColor = tintColor
|
||||
|
||||
// imageView.layer.anchorPoint = CGPoint(x: 0.5, y: 0.5)
|
||||
imageView.layer.shadowColor = UIColor.black.cgColor
|
||||
imageView.layer.shadowRadius = 0.6
|
||||
imageView.layer.shadowOffset = CGSize(width: 0, height: 1.5)
|
||||
imageView.layer.shadowOpacity = 0.3
|
||||
|
||||
let x = (customView.bounds.size.width - image.size.width)/2 + 12
|
||||
let y = (customView.bounds.size.height - image.size.height)/2
|
||||
imageView.frame = CGRect(origin: CGPoint(x: x, y: y), size: image.size)
|
||||
customView.addSubview(imageView)
|
||||
|
||||
// add constraints
|
||||
[(NSLayoutAttribute.centerX, 12), (.centerY, -1)].forEach { info in
|
||||
(customView, imageView) >>>- {
|
||||
$0.attribute = info.0
|
||||
$0.constant = CGFloat(info.1)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
[NSLayoutAttribute.height, .width].forEach { attribute in
|
||||
imageView >>>- {
|
||||
$0.attribute = attribute
|
||||
$0.constant = 20
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -17,10 +17,10 @@ extension Rotatable {
|
||||
|
||||
func rotateAnimationFrom(_ fromItem: UIView, toItem: UIView, duration: Double) {
|
||||
|
||||
let fromRotate = animationFrom(0, to: M_PI, key: "transform.rotation", duration: duration)
|
||||
let fromRotate = animationFrom(0, to: Double.pi, key: "transform.rotation", duration: duration)
|
||||
let fromOpacity = animationFrom(1, to: 0, key: "opacity", duration: duration)
|
||||
|
||||
let toRotate = animationFrom(-M_PI, to: 0, key: "transform.rotation", duration: duration)
|
||||
let toRotate = animationFrom(-Double.pi, to: 0, key: "transform.rotation", duration: duration)
|
||||
let toOpacity = animationFrom(0, to: 1, key: "opacity", duration: duration)
|
||||
|
||||
fromItem.layer.add(fromRotate, forKey: nil)
|
||||
|
||||
-35
@@ -1,35 +0,0 @@
|
||||
//
|
||||
// DemoExpandingCollectionTests.swift
|
||||
// DemoExpandingCollectionTests
|
||||
//
|
||||
// Created by Alex K. on 25/05/16.
|
||||
// Copyright © 2016 Alex K. All rights reserved.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
@testable import DemoExpandingCollection
|
||||
|
||||
class DemoExpandingCollectionTests: XCTestCase {
|
||||
|
||||
override func setUp() {
|
||||
super.setUp()
|
||||
// Put setup code here. This method is called before the invocation of each test method in the class.
|
||||
}
|
||||
|
||||
override func tearDown() {
|
||||
// Put teardown code here. This method is called after the invocation of each test method in the class.
|
||||
super.tearDown()
|
||||
}
|
||||
|
||||
func testExample() {
|
||||
// This is an example of a functional test case.
|
||||
// Use XCTAssert and related functions to verify your tests produce the correct results.
|
||||
}
|
||||
|
||||
func testPerformanceExample() {
|
||||
// This is an example of a performance test case.
|
||||
measure {
|
||||
// Put the code you want to measure the time of here.
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>en</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>$(PRODUCT_NAME)</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>BNDL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -1,24 +1,32 @@
|
||||
[](https://business.ramotion.com?utm_source=gthb&utm_medium=special&utm_campaign=expanding-collection-logo)
|
||||

|
||||

|
||||
|
||||
|
||||
# expanding-collection
|
||||
|
||||
[](http://twitter.com/Ramotion)
|
||||
[](https://cocoapods.org/pods/expanding-collection)
|
||||
[](http://cocoapods.org/pods/expanding-collection)
|
||||
[](https://cdn.rawgit.com/Ramotion/expanding-collection/master/docs/index.html)
|
||||
|
||||
[](https://github.com/Ramotion/expanding-collection)
|
||||
[](https://travis-ci.org/Ramotion/expanding-collection)
|
||||
[](https://codebeat.co/projects/github-com-ramotion-expanding-collection)
|
||||
|
||||
# Check this library on other platforms:
|
||||
<a href="https://github.com/Ramotion/expanding-collection-android">
|
||||
<img src="https://github.com/ramotion/navigation-stack/raw/master/Android_Java@2x.png" width="178" height="81"></a>
|
||||
|
||||
## About
|
||||
This project is maintained by Ramotion, Inc.<br>
|
||||
We specialize in the designing and coding of custom UI for Mobile Apps and Websites.<br><br>**Looking for developers for your project?** [[▶︎CONTACT OUR TEAM◀︎](http://business.ramotion.com?utm_source=gthb&utm_medium=special&utm_campaign=expanding-collection-contact-us/#Get_in_Touch)]
|
||||
We specialize in the designing and coding of custom UI for Mobile Apps and Websites.<br>
|
||||
|
||||
**Looking for developers for your project?**<br>
|
||||
This project is maintained by Ramotion, Inc. We specialize in the designing and coding of custom UI for Mobile Apps and Websites.
|
||||
|
||||
<a href="https://ramotion.com/?utm_source=gthb&utm_medium=special&utm_campaign=expanding-collection-contact-us/#Get_in_Touch">
|
||||
<img src="https://github.com/ramotion/gliding-collection/raw/master/contact_our_team@2x.png" width="187" height="34"></a> <br>
|
||||
|
||||
|
||||
[](https://dribbble.com/shots/2741477-iOS-Expanding-Collection-Open-Source)
|
||||
|
||||
The [iPhone mockup](https://store.ramotion.com/product/iphone-6-mockups?utm_source=gthb&utm_medium=special&utm_campaign=expanding-collection) available [here](https://store.ramotion.com/product/iphone-6-mockups?utm_source=gthb&utm_medium=special&utm_campaign=expanding-collection).
|
||||
The [iPhone mockup](https://store.ramotion.com?utm_source=gthb&utm_medium=special&utm_campaign=expanding-collection) available [here](https://store.ramotion.com?utm_source=gthb&utm_medium=special&utm_campaign=expanding-collection).
|
||||
|
||||
## Requirements
|
||||
|
||||
@@ -31,6 +39,8 @@ Just add the Source folder to your project.
|
||||
|
||||
or use [CocoaPods](https://cocoapods.org) with Podfile:
|
||||
``` ruby
|
||||
pod 'expanding-collection', '~> 1.1.2' swift 4
|
||||
|
||||
pod 'expanding-collection', '~> 1.0.3' swift 3
|
||||
|
||||
pod 'expanding-collection', '~> 0.3.2' swift 2
|
||||
@@ -166,7 +176,18 @@ override func viewDidLoad() {
|
||||
Expanding collection is released under the MIT license.
|
||||
See [LICENSE](./LICENSE) for details.
|
||||
|
||||
## Follow us
|
||||
<br>
|
||||
|
||||
# Get the Showroom App for iOS to give it a try
|
||||
Try this UI component and more like this in our iOS app. Contact us if interested.
|
||||
|
||||
<a href="https://itunes.apple.com/app/apple-store/id1182360240?pt=550053&ct=expanding-collection&mt=8" >
|
||||
<img src="https://github.com/ramotion/gliding-collection/raw/master/app_store@2x.png" width="117" height="34"></a>
|
||||
<a href="https://ramotion.com/?utm_source=gthb&utm_medium=special&utm_campaign=expanding-collection-contact-us/#Get_in_Touch">
|
||||
<img src="https://github.com/ramotion/gliding-collection/raw/master/contact_our_team@2x.png" width="187" height="34"></a>
|
||||
<br>
|
||||
<br>
|
||||
|
||||
Follow us for the latest updates<br>
|
||||
[](https://twitter.com/intent/tweet?text=https://github.com/ramotion/expanding-collection)
|
||||
[](https://twitter.com/ramotion)
|
||||
|
||||
@@ -11,8 +11,16 @@ import UIKit
|
||||
/// Base class for UICollectionViewCell
|
||||
open class BasePageCollectionCell: UICollectionViewCell {
|
||||
|
||||
/// Animation oposition offset when cell is open
|
||||
/// DEPRECATED! Animation oposition offset when cell is open
|
||||
@IBInspectable open var yOffset: CGFloat = 40
|
||||
/// Spacing between centers of views
|
||||
@IBInspectable open var ySpacing: CGFloat = CGFloat.greatestFiniteMagnitude
|
||||
/// Additional height of back view, when it grows
|
||||
@IBInspectable open var additionalHeight: CGFloat = CGFloat.greatestFiniteMagnitude
|
||||
/// Additional width of back view, when it grows
|
||||
@IBInspectable open var additionalWidth: CGFloat = CGFloat.greatestFiniteMagnitude
|
||||
/// Should front view drow shadow to bottom or not
|
||||
@IBInspectable open var dropShadow: Bool = true
|
||||
|
||||
// MARK: Constants
|
||||
|
||||
@@ -100,15 +108,28 @@ extension BasePageCollectionCell {
|
||||
public func cellIsOpen(_ isOpen: Bool, animated: Bool = true) {
|
||||
if isOpen == isOpened { return }
|
||||
|
||||
frontConstraintY.constant = isOpen == true ? -frontContainerView.bounds.size.height / 5 : 0
|
||||
backConstraintY.constant = isOpen == true ? frontContainerView.bounds.size.height / 5 - yOffset / 2 : 0
|
||||
if ySpacing == .greatestFiniteMagnitude {
|
||||
frontConstraintY.constant = isOpen == true ? -frontContainerView.bounds.size.height / 5 : 0
|
||||
backConstraintY.constant = isOpen == true ? frontContainerView.bounds.size.height / 5 - yOffset / 2 : 0
|
||||
} else {
|
||||
frontConstraintY.constant = isOpen == true ? -ySpacing / 2 : 0
|
||||
backConstraintY.constant = isOpen == true ? ySpacing / 2 : 0
|
||||
}
|
||||
|
||||
if let widthConstant = backContainerView.getConstraint(.width) {
|
||||
widthConstant.constant = isOpen == true ? frontContainerView.bounds.size.width + yOffset : frontContainerView.bounds.size.width
|
||||
if additionalWidth == .greatestFiniteMagnitude {
|
||||
widthConstant.constant = isOpen == true ? frontContainerView.bounds.size.width + yOffset : frontContainerView.bounds.size.width
|
||||
} else {
|
||||
widthConstant.constant = isOpen == true ? frontContainerView.bounds.size.width + additionalWidth : frontContainerView.bounds.size.width
|
||||
}
|
||||
}
|
||||
|
||||
if let heightConstant = backContainerView.getConstraint(.height) {
|
||||
heightConstant.constant = isOpen == true ? frontContainerView.bounds.size.height + yOffset : frontContainerView.bounds.size.height
|
||||
if additionalHeight == .greatestFiniteMagnitude {
|
||||
heightConstant.constant = isOpen == true ? frontContainerView.bounds.size.height + yOffset : frontContainerView.bounds.size.height
|
||||
} else {
|
||||
heightConstant.constant = isOpen == true ? frontContainerView.bounds.size.height + additionalHeight : frontContainerView.bounds.size.height
|
||||
}
|
||||
}
|
||||
|
||||
isOpened = isOpen
|
||||
@@ -147,10 +168,12 @@ extension BasePageCollectionCell {
|
||||
$0.backgroundColor = UIColor(white: 0, alpha: 0)
|
||||
$0.translatesAutoresizingMaskIntoConstraints = false
|
||||
$0.layer.masksToBounds = false;
|
||||
$0.layer.shadowColor = UIColor.black.cgColor
|
||||
$0.layer.shadowRadius = 10
|
||||
$0.layer.shadowOpacity = 0.3
|
||||
$0.layer.shadowOffset = CGSize(width: 0, height:0)
|
||||
if dropShadow {
|
||||
$0.layer.shadowColor = UIColor.black.cgColor
|
||||
$0.layer.shadowRadius = 10
|
||||
$0.layer.shadowOpacity = 0.3
|
||||
$0.layer.shadowOffset = CGSize(width: 0, height:0)
|
||||
}
|
||||
}
|
||||
contentView.insertSubview(shadow, belowSubview: view)
|
||||
|
||||
@@ -190,8 +213,13 @@ extension BasePageCollectionCell {
|
||||
|
||||
frame.size.height += i * superHeight
|
||||
frame.origin.y -= i * superHeight / 2
|
||||
frame.origin.x -= i * yOffset / 2
|
||||
frame.size.width += i * yOffset
|
||||
if additionalWidth == .greatestFiniteMagnitude {
|
||||
frame.origin.x -= i * yOffset / 2
|
||||
frame.size.width += i * yOffset
|
||||
} else {
|
||||
frame.origin.x -= i * additionalWidth / 2
|
||||
frame.size.width += i * additionalWidth
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Pod::Spec.new do |s|
|
||||
s.name = 'expanding-collection'
|
||||
s.version = '1.0.3'
|
||||
s.version = '1.1.2'
|
||||
s.summary = 'Transition animtion from CollectionView to TableView'
|
||||
s.license = 'MIT'
|
||||
s.homepage = 'https://github.com/Ramotion/expanding-collection'
|
||||
|
||||
Reference in New Issue
Block a user