Compare commits
107 Commits
0.0.1
...
development
| Author | SHA1 | Date | |
|---|---|---|---|
| ba3bff40b9 | |||
| e05ef556e5 | |||
| 17402d0428 | |||
| 503cde01a7 | |||
| 21fc1772fb | |||
| 3d1a827e9e | |||
| db30943244 | |||
| 4ab0a82143 | |||
| e6f87041b0 | |||
| 0feda491a2 | |||
| 1103152e0d | |||
| d4e90e990c | |||
| 85ebb07599 | |||
| 9ffa4f0cb8 | |||
| 45c2406fbb | |||
| 700f98effe | |||
| 3e56028ea4 | |||
| dec3d91e42 | |||
| c7c1acc741 | |||
| 1af7dcbbfd | |||
| c69dac49de | |||
| d696da3975 | |||
| 5e4659defb | |||
| 287cc8744c | |||
| b6e01aba13 | |||
| 98c5249ded | |||
| b830b211b5 | |||
| 5e43edd33c | |||
| f017f66db0 | |||
| a3aa546007 | |||
| e3e89a1ab5 | |||
| 2d84a2ee48 | |||
| 645d8d61c0 | |||
| b7788e4c5f | |||
| 635e7faa34 | |||
| 5a5c5dcf4d | |||
| 8546874916 | |||
| dd547a3caa | |||
| 4ab0c2ea86 | |||
| 7d1f5975d1 | |||
| 0119fad3a4 | |||
| 9bcb4fc08c | |||
| 23c34310dc | |||
| 6e6d7866f1 | |||
| 3c93bd1119 | |||
| 1e29da03c4 | |||
| c2bd3fd5c3 | |||
| 182a3f1f0f | |||
| e233dabdfe | |||
| 4da43bcd98 | |||
| d51e255bc8 | |||
| 0fbd37ca95 | |||
| 1c741d54a7 | |||
| 975aaf7010 | |||
| 91ef1690aa | |||
| dd6686a287 | |||
| 43b854d72f | |||
| 4dd9675c11 | |||
| 8d82dff58b | |||
| 004f42136a | |||
| 9d46f86b58 | |||
| 9eccb3272a | |||
| b56be3a215 | |||
| afdc370b5c | |||
| 030f08537c | |||
| 296859d7ff | |||
| 3a116e77ba | |||
| 984da055fc | |||
| 56d331ffeb | |||
| cba3741ad0 | |||
| 16f519c8a4 | |||
| 73c9d6d5ec | |||
| eaeb885f19 | |||
| ddf851bf46 | |||
| be076751c8 | |||
| 0f68711a98 | |||
| a30e5388e5 | |||
| d27d437e93 | |||
| 6e1a2e4908 | |||
| 46467d44d3 | |||
| 78d6ad7769 | |||
| e6a282db55 | |||
| a25dc67f0b | |||
| 35a949661a | |||
| 42738ac663 | |||
| d744048ae8 | |||
| 4ee86d0bba | |||
| 6b768ba24b | |||
| 40b465d515 | |||
| d69eb37cfd | |||
| f7748068f7 | |||
| f157900e61 | |||
| e0ade0426e | |||
| b685dbfeb5 | |||
| 6d7158b1fd | |||
| a8e4925c3d | |||
| b266d12347 | |||
| 048da7d846 | |||
| 782ddc59c8 | |||
| 6966f6d46d | |||
| bd1509317f | |||
| e8e633be96 | |||
| 247ba17cfa | |||
| 471c99d888 | |||
| 6d09fba6aa | |||
| 5d937ce71b | |||
| 213b88b5a3 |
@@ -7,35 +7,60 @@
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
6A156E3E1A08B38E002A69AD /* DictioanarySerializer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A156E3D1A08B38E002A69AD /* DictioanarySerializer.swift */; };
|
||||
6A36BD4219FFDEDA00C19F61 /* ControlStateValueTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A36BD4119FFDEDA00C19F61 /* ControlStateValueTest.swift */; };
|
||||
6A3E3A1C19E05E5B00C7504B /* AdaptiveLaunchesState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A3E3A1B19E05E5B00C7504B /* AdaptiveLaunchesState.swift */; };
|
||||
6A3ED0CA19ED02DA006F06DD /* DateExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A3ED0C919ED02DA006F06DD /* DateExtension.swift */; };
|
||||
6A3ED0CC19ED058F006F06DD /* AdaptiveDateStateTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A3ED0CB19ED058F006F06DD /* AdaptiveDateStateTest.swift */; };
|
||||
6A3ED0CE19ED05D8006F06DD /* AdaptiveLaunchesStateTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A3ED0CD19ED05D8006F06DD /* AdaptiveLaunchesStateTest.swift */; };
|
||||
6A6270A619F1653900D02B1A /* watch@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 6A6270A519F1653900D02B1A /* watch@2x.png */; };
|
||||
6AAE857719D329C6005672CA /* AdaptiveButtonAppearance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6AAE857319D329C6005672CA /* AdaptiveButtonAppearance.swift */; };
|
||||
6AAE857819D329C6005672CA /* AdaptiveButtonsStateManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6AAE857419D329C6005672CA /* AdaptiveButtonsStateManager.swift */; };
|
||||
6AAE857919D329C6005672CA /* AdaptiveDateState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6AAE857519D329C6005672CA /* AdaptiveDateState.swift */; };
|
||||
6AAE857A19D329C6005672CA /* AdaptiveState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6AAE857619D329C6005672CA /* AdaptiveState.swift */; };
|
||||
6ACDAABA1A1508BA0027A658 /* AppearenceSettingManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ACDAAB91A1508BA0027A658 /* AppearenceSettingManager.swift */; };
|
||||
6AD1EC2619EFA9BA003F36A4 /* ControlStateValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6AD1EC2519EFA9BA003F36A4 /* ControlStateValue.swift */; };
|
||||
6AD1EC2919EFB8E2003F36A4 /* ControlStateProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6AD1EC2819EFB8E2003F36A4 /* ControlStateProtocol.swift */; };
|
||||
6AD1EC2B19F1165E003F36A4 /* TestTabBarItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6AD1EC2A19F1165E003F36A4 /* TestTabBarItem.swift */; };
|
||||
6AD4002919F792FA00630034 /* ControlStateAppearance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6AD4002819F792FA00630034 /* ControlStateAppearance.swift */; };
|
||||
6AD4002B19F7A0B800630034 /* AppearanceSerializationProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6AD4002A19F7A0B800630034 /* AppearanceSerializationProtocol.swift */; };
|
||||
6AE723351A04EE6F003416B6 /* ControlStateAppearanceTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6AE723341A04EE6F003416B6 /* ControlStateAppearanceTest.swift */; };
|
||||
6AE723381A04F7AE003416B6 /* AdaptiveDateState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6AAE857519D329C6005672CA /* AdaptiveDateState.swift */; };
|
||||
6AE723391A04F7B1003416B6 /* AdaptiveLaunchesState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A3E3A1B19E05E5B00C7504B /* AdaptiveLaunchesState.swift */; };
|
||||
6AE7233A1A04F7B4003416B6 /* AdaptiveButtonsStateManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6AAE857419D329C6005672CA /* AdaptiveButtonsStateManager.swift */; };
|
||||
6AE7233B1A04F7B6003416B6 /* AdaptiveButtonAppearance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6AAE857319D329C6005672CA /* AdaptiveButtonAppearance.swift */; };
|
||||
6AE7233C1A04F7BA003416B6 /* ControlStateProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6AD1EC2819EFB8E2003F36A4 /* ControlStateProtocol.swift */; };
|
||||
6AE7233E1A04F7BF003416B6 /* AppearanceSerializationProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6AD4002A19F7A0B800630034 /* AppearanceSerializationProtocol.swift */; };
|
||||
6AE7233F1A04F7C3003416B6 /* ControlStateValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6AD1EC2519EFA9BA003F36A4 /* ControlStateValue.swift */; };
|
||||
6AE723401A04F7E5003416B6 /* AdaptiveState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6AAE857619D329C6005672CA /* AdaptiveState.swift */; };
|
||||
6AE723411A04F7ED003416B6 /* ControlStateAppearance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6AD4002819F792FA00630034 /* ControlStateAppearance.swift */; };
|
||||
6AE723451A07C8E1003416B6 /* AdaptiveButtonAppearanceTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6AE723441A07C8E1003416B6 /* AdaptiveButtonAppearanceTest.swift */; };
|
||||
6AF450671A10F99A00AC30A4 /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6AF450661A10F99A00AC30A4 /* Constants.swift */; };
|
||||
6AFB70291A19F53E00221E66 /* AppearenceSettingManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ACDAAB91A1508BA0027A658 /* AppearenceSettingManager.swift */; };
|
||||
6AFB702A1A19F54C00221E66 /* DictioanarySerializer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A156E3D1A08B38E002A69AD /* DictioanarySerializer.swift */; };
|
||||
6AFBC6D719D313D600D42578 /* AdaptiveController.h in Headers */ = {isa = PBXBuildFile; fileRef = 6AFBC6D619D313D600D42578 /* AdaptiveController.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
6AFBC6E119D313D600D42578 /* AdaptiveControllerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6AFBC6E019D313D600D42578 /* AdaptiveControllerTests.swift */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
6A156E3D1A08B38E002A69AD /* DictioanarySerializer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DictioanarySerializer.swift; sourceTree = "<group>"; };
|
||||
6A36BD4119FFDEDA00C19F61 /* ControlStateValueTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ControlStateValueTest.swift; sourceTree = "<group>"; };
|
||||
6A3E3A1B19E05E5B00C7504B /* AdaptiveLaunchesState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AdaptiveLaunchesState.swift; sourceTree = "<group>"; };
|
||||
6A3ED0C919ED02DA006F06DD /* DateExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = DateExtension.swift; path = "../../Samples/adaptive-dates-tabbar/adaptive-tab-bar/DateExtension.swift"; sourceTree = "<group>"; };
|
||||
6A3ED0CB19ED058F006F06DD /* AdaptiveDateStateTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AdaptiveDateStateTest.swift; sourceTree = "<group>"; };
|
||||
6A3ED0CD19ED05D8006F06DD /* AdaptiveLaunchesStateTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AdaptiveLaunchesStateTest.swift; sourceTree = "<group>"; };
|
||||
6A6270A519F1653900D02B1A /* watch@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "watch@2x.png"; sourceTree = "<group>"; };
|
||||
6AAE857319D329C6005672CA /* AdaptiveButtonAppearance.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AdaptiveButtonAppearance.swift; sourceTree = "<group>"; };
|
||||
6AAE857419D329C6005672CA /* AdaptiveButtonsStateManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AdaptiveButtonsStateManager.swift; sourceTree = "<group>"; };
|
||||
6AAE857519D329C6005672CA /* AdaptiveDateState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AdaptiveDateState.swift; sourceTree = "<group>"; };
|
||||
6AAE857619D329C6005672CA /* AdaptiveState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AdaptiveState.swift; sourceTree = "<group>"; };
|
||||
6ACDAAB91A1508BA0027A658 /* AppearenceSettingManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppearenceSettingManager.swift; sourceTree = "<group>"; };
|
||||
6AD1EC2519EFA9BA003F36A4 /* ControlStateValue.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ControlStateValue.swift; sourceTree = "<group>"; };
|
||||
6AD1EC2819EFB8E2003F36A4 /* ControlStateProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ControlStateProtocol.swift; sourceTree = "<group>"; };
|
||||
6AD1EC2A19F1165E003F36A4 /* TestTabBarItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestTabBarItem.swift; sourceTree = "<group>"; };
|
||||
6AD4002819F792FA00630034 /* ControlStateAppearance.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ControlStateAppearance.swift; sourceTree = "<group>"; };
|
||||
6AD4002A19F7A0B800630034 /* AppearanceSerializationProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppearanceSerializationProtocol.swift; sourceTree = "<group>"; };
|
||||
6AE723341A04EE6F003416B6 /* ControlStateAppearanceTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ControlStateAppearanceTest.swift; sourceTree = "<group>"; };
|
||||
6AE723441A07C8E1003416B6 /* AdaptiveButtonAppearanceTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AdaptiveButtonAppearanceTest.swift; sourceTree = "<group>"; };
|
||||
6AF450661A10F99A00AC30A4 /* Constants.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Constants.swift; sourceTree = "<group>"; };
|
||||
6AFBC6D119D313D600D42578 /* AdaptiveController.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = AdaptiveController.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
6AFBC6D519D313D600D42578 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
6AFBC6D619D313D600D42578 /* AdaptiveController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AdaptiveController.h; sourceTree = "<group>"; };
|
||||
@@ -62,6 +87,14 @@
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
6A156E3C1A08B322002A69AD /* Serializator */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
6A156E3D1A08B38E002A69AD /* DictioanarySerializer.swift */,
|
||||
);
|
||||
name = Serializator;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
6AAE857B19D329E0005672CA /* CustomAdaptiveStates */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@@ -84,6 +117,7 @@
|
||||
children = (
|
||||
6AAE857319D329C6005672CA /* AdaptiveButtonAppearance.swift */,
|
||||
6AAE857419D329C6005672CA /* AdaptiveButtonsStateManager.swift */,
|
||||
6ACDAAB91A1508BA0027A658 /* AppearenceSettingManager.swift */,
|
||||
);
|
||||
name = Appearance;
|
||||
sourceTree = "<group>";
|
||||
@@ -91,12 +125,21 @@
|
||||
6AD1EC2719EFB521003F36A4 /* ControlStates */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
6AD1EC2819EFB8E2003F36A4 /* ControlStateProtocol.swift */,
|
||||
6AD1EC2519EFA9BA003F36A4 /* ControlStateValue.swift */,
|
||||
6AD4002819F792FA00630034 /* ControlStateAppearance.swift */,
|
||||
);
|
||||
name = ControlStates;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
6AD4002C19F7A12200630034 /* Protocols */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
6AD4002A19F7A0B800630034 /* AppearanceSerializationProtocol.swift */,
|
||||
6AD1EC2819EFB8E2003F36A4 /* ControlStateProtocol.swift */,
|
||||
);
|
||||
name = Protocols;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
6AFBC6C719D313D600D42578 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@@ -118,6 +161,9 @@
|
||||
6AFBC6D319D313D600D42578 /* AdaptiveController */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
6AF450661A10F99A00AC30A4 /* Constants.swift */,
|
||||
6A156E3C1A08B322002A69AD /* Serializator */,
|
||||
6AD4002C19F7A12200630034 /* Protocols */,
|
||||
6AD1EC2719EFB521003F36A4 /* ControlStates */,
|
||||
6AD1EC2319EFA903003F36A4 /* Appearance */,
|
||||
6AAE857C19D32A14005672CA /* AdaptiveStates */,
|
||||
@@ -139,12 +185,14 @@
|
||||
6AFBC6DD19D313D600D42578 /* AdaptiveControllerTests */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
6A6270A519F1653900D02B1A /* watch@2x.png */,
|
||||
6AE723441A07C8E1003416B6 /* AdaptiveButtonAppearanceTest.swift */,
|
||||
6AE723341A04EE6F003416B6 /* ControlStateAppearanceTest.swift */,
|
||||
6A3ED0C919ED02DA006F06DD /* DateExtension.swift */,
|
||||
6AFBC6E019D313D600D42578 /* AdaptiveControllerTests.swift */,
|
||||
6A3ED0CB19ED058F006F06DD /* AdaptiveDateStateTest.swift */,
|
||||
6A3ED0CD19ED05D8006F06DD /* AdaptiveLaunchesStateTest.swift */,
|
||||
6AD1EC2A19F1165E003F36A4 /* TestTabBarItem.swift */,
|
||||
6A36BD4119FFDEDA00C19F61 /* ControlStateValueTest.swift */,
|
||||
6AFBC6DE19D313D600D42578 /* Supporting Files */,
|
||||
);
|
||||
path = AdaptiveControllerTests;
|
||||
@@ -254,7 +302,6 @@
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
6A6270A619F1653900D02B1A /* watch@2x.png in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -265,12 +312,17 @@
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
6ACDAABA1A1508BA0027A658 /* AppearenceSettingManager.swift in Sources */,
|
||||
6AAE857819D329C6005672CA /* AdaptiveButtonsStateManager.swift in Sources */,
|
||||
6AD4002919F792FA00630034 /* ControlStateAppearance.swift in Sources */,
|
||||
6A3E3A1C19E05E5B00C7504B /* AdaptiveLaunchesState.swift in Sources */,
|
||||
6AAE857719D329C6005672CA /* AdaptiveButtonAppearance.swift in Sources */,
|
||||
6AD4002B19F7A0B800630034 /* AppearanceSerializationProtocol.swift in Sources */,
|
||||
6AD1EC2619EFA9BA003F36A4 /* ControlStateValue.swift in Sources */,
|
||||
6AAE857919D329C6005672CA /* AdaptiveDateState.swift in Sources */,
|
||||
6AF450671A10F99A00AC30A4 /* Constants.swift in Sources */,
|
||||
6AD1EC2919EFB8E2003F36A4 /* ControlStateProtocol.swift in Sources */,
|
||||
6A156E3E1A08B38E002A69AD /* DictioanarySerializer.swift in Sources */,
|
||||
6AAE857A19D329C6005672CA /* AdaptiveState.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
@@ -279,11 +331,25 @@
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
6AE723411A04F7ED003416B6 /* ControlStateAppearance.swift in Sources */,
|
||||
6AE723351A04EE6F003416B6 /* ControlStateAppearanceTest.swift in Sources */,
|
||||
6AE7233B1A04F7B6003416B6 /* AdaptiveButtonAppearance.swift in Sources */,
|
||||
6AD1EC2B19F1165E003F36A4 /* TestTabBarItem.swift in Sources */,
|
||||
6AE723391A04F7B1003416B6 /* AdaptiveLaunchesState.swift in Sources */,
|
||||
6A3ED0CE19ED05D8006F06DD /* AdaptiveLaunchesStateTest.swift in Sources */,
|
||||
6AE7233F1A04F7C3003416B6 /* ControlStateValue.swift in Sources */,
|
||||
6AFB70291A19F53E00221E66 /* AppearenceSettingManager.swift in Sources */,
|
||||
6AE7233E1A04F7BF003416B6 /* AppearanceSerializationProtocol.swift in Sources */,
|
||||
6AE723451A07C8E1003416B6 /* AdaptiveButtonAppearanceTest.swift in Sources */,
|
||||
6AFB702A1A19F54C00221E66 /* DictioanarySerializer.swift in Sources */,
|
||||
6A3ED0CA19ED02DA006F06DD /* DateExtension.swift in Sources */,
|
||||
6A3ED0CC19ED058F006F06DD /* AdaptiveDateStateTest.swift in Sources */,
|
||||
6AFBC6E119D313D600D42578 /* AdaptiveControllerTests.swift in Sources */,
|
||||
6A36BD4219FFDEDA00C19F61 /* ControlStateValueTest.swift in Sources */,
|
||||
6AE7233C1A04F7BA003416B6 /* ControlStateProtocol.swift in Sources */,
|
||||
6AE723401A04F7E5003416B6 /* AdaptiveState.swift in Sources */,
|
||||
6AE723381A04F7AE003416B6 /* AdaptiveDateState.swift in Sources */,
|
||||
6AE7233A1A04F7B4003416B6 /* AdaptiveButtonsStateManager.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -395,6 +461,7 @@
|
||||
INFOPLIST_FILE = AdaptiveController/Info.plist;
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
OTHER_SWIFT_FLAGS = "";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_INCLUDE_PATHS = "";
|
||||
@@ -415,6 +482,7 @@
|
||||
INFOPLIST_FILE = AdaptiveController/Info.plist;
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
OTHER_SWIFT_FLAGS = "";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_INCLUDE_PATHS = "";
|
||||
|
||||
@@ -4,12 +4,12 @@
|
||||
<dict>
|
||||
<key>SchemeUserState</key>
|
||||
<dict>
|
||||
<key>AdaptiveController.xcscheme</key>
|
||||
<key>AdaptiveController.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<key>AdaptiveControllerTests.xcscheme</key>
|
||||
<key>AdaptiveControllerTests.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>1</integer>
|
||||
|
||||
@@ -8,171 +8,56 @@
|
||||
|
||||
import UIKit
|
||||
|
||||
public let defaultFont = UIFont(name: "Helvetica", size: 14.0)
|
||||
public let kNotTitle = ""
|
||||
public class AdaptiveButtonAppearance: NSObject {
|
||||
|
||||
|
||||
|
||||
public class AdaptiveButtonAppearance: AppearanceSerializationProtocol{
|
||||
|
||||
|
||||
private var butonsTitleForStateDictionary:Dictionary <String,String> = Dictionary<String,String>()
|
||||
private var butonsTitleFontForStateDictionary:Dictionary <String,UIFont> = Dictionary<String,UIFont>()
|
||||
private var buttonsImageForStateDictionary:Dictionary <String,UIImage> = Dictionary<String,UIImage>()
|
||||
private var buttonsBackgroundImageForStateDictionary:Dictionary <String,UIImage> = Dictionary<String,UIImage>()
|
||||
public typealias StateObject = ControlStateValue
|
||||
public typealias DictionaryObject = Dictionary <String,AnyObject>
|
||||
public var stateDictionary:Dictionary <StateKey,ControlStateValue> = Dictionary <StateKey,ControlStateValue>()
|
||||
|
||||
|
||||
private var buttonsImageInsetsForStateDictionary:Dictionary <String,UIEdgeInsets> = Dictionary<String,UIEdgeInsets>()
|
||||
private var buttonsTitleInsetsForStateDictionary:Dictionary <String,UIOffset> = Dictionary<String,UIOffset>()
|
||||
|
||||
private var buttonsTitleColorsForStateDictionary:Dictionary <String,UIColor> = Dictionary<String,UIColor>()
|
||||
|
||||
func setInsetsFromAdaptiveButtonApperance(adaptiveButtonApperance:AdaptiveButtonAppearance){
|
||||
|
||||
self.buttonsImageInsetsForStateDictionary = adaptiveButtonApperance.buttonsImageInsetsForStateDictionary
|
||||
|
||||
self.buttonsTitleInsetsForStateDictionary = adaptiveButtonApperance.buttonsTitleInsetsForStateDictionary
|
||||
|
||||
|
||||
}
|
||||
|
||||
public func setFontsFromAdaptiveButtonApperance(adaptiveButtonApperance:AdaptiveButtonAppearance){
|
||||
|
||||
self.butonsTitleFontForStateDictionary = adaptiveButtonApperance.butonsTitleFontForStateDictionary
|
||||
}
|
||||
|
||||
public func setAllCommonApperanceFrom(adaptiveButtonApperance:AdaptiveButtonAppearance){
|
||||
self.setInsetsFromAdaptiveButtonApperance(adaptiveButtonApperance)
|
||||
self.setFontsFromAdaptiveButtonApperance(adaptiveButtonApperance)
|
||||
self.buttonsTitleColorsForStateDictionary = adaptiveButtonApperance.buttonsTitleColorsForStateDictionary
|
||||
|
||||
}
|
||||
|
||||
|
||||
public func setImageNamesForStatesImageExtesions(imageName :String ,imageExtensionsForState:Dictionary <String,String>){
|
||||
|
||||
self.setButtonImage(UIImage(named: imageName), state: kDefaultAdaptiveState)
|
||||
for (state,imageExtension) in imageExtensionsForState {
|
||||
self.setButtonImage(UIImage(named: imageName+imageExtension), state: state)
|
||||
}
|
||||
|
||||
public init(){
|
||||
|
||||
}
|
||||
|
||||
public func setButonTitle(title:NSString, state:String){
|
||||
println(title)
|
||||
println(state)
|
||||
butonsTitleForStateDictionary.updateValue(title, forKey:state)
|
||||
}
|
||||
|
||||
public func getButonTitleForState(state:NSString)->String!{
|
||||
|
||||
if let title = butonsTitleForStateDictionary[state] {
|
||||
return title
|
||||
}else{
|
||||
if let title = butonsTitleForStateDictionary[kDefaultAdaptiveState] {
|
||||
return title
|
||||
}else{
|
||||
return kNotTitle
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public func setButonTitleFontForState(font:UIFont, state:String){
|
||||
butonsTitleFontForStateDictionary.updateValue(font, forKey:state)
|
||||
}
|
||||
|
||||
public func getButonTitleFontForState(state:NSString)->UIFont{
|
||||
var font:UIFont? = butonsTitleFontForStateDictionary[state]
|
||||
|
||||
if let font = butonsTitleFontForStateDictionary[state] {
|
||||
return font
|
||||
}else{
|
||||
|
||||
if let font = butonsTitleFontForStateDictionary[kDefaultAdaptiveState] {
|
||||
return font
|
||||
}else{
|
||||
return defaultFont
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public func setButtonImage(image:UIImage, state:String){
|
||||
buttonsImageForStateDictionary.updateValue(image, forKey:state)
|
||||
print("set State \(state)")
|
||||
}
|
||||
|
||||
public func getButonImageForState(state:NSString)->UIImage!{
|
||||
|
||||
print("get State \(state)")
|
||||
if let image = buttonsImageForStateDictionary[state] {
|
||||
return image
|
||||
}else{
|
||||
return buttonsImageForStateDictionary[kDefaultAdaptiveState]
|
||||
}
|
||||
|
||||
|
||||
public init (values:Dictionary<StateKey,ControlStateValue>) {
|
||||
stateDictionary = values
|
||||
|
||||
}
|
||||
|
||||
public func setBackgroundButonImage(image:UIImage, state:String){
|
||||
buttonsImageForStateDictionary.updateValue(image, forKey:state)
|
||||
public convenience init(states:Dictionary<StateKey,ControlStateValue>) {
|
||||
|
||||
self.init(values:states)
|
||||
|
||||
}
|
||||
|
||||
public func getBackgroundImageForState(state:NSString)->UIImage?{
|
||||
|
||||
if let image = buttonsBackgroundImageForStateDictionary[state] {
|
||||
return image
|
||||
}else{
|
||||
return buttonsBackgroundImageForStateDictionary[kDefaultAdaptiveState]
|
||||
public func setObjectDictionary(dictionary:Dictionary <String,DictionaryObject>){
|
||||
|
||||
var controlStatesDictionary = Dictionary<StateKey,ControlStateValue>()
|
||||
|
||||
for (key,object ) in dictionary{
|
||||
let appearanceDictionary = object as Dictionary <String,DictionaryObject>
|
||||
let appearanceObject = ControlStateValue()
|
||||
appearanceObject.setObjectDictionary(appearanceDictionary)
|
||||
controlStatesDictionary.updateValue(appearanceObject, forKey: StateKey(rawValue: key)!)
|
||||
}
|
||||
stateDictionary = controlStatesDictionary
|
||||
}
|
||||
|
||||
public func getObjectDictionary() -> Dictionary<String,DictionaryObject>{
|
||||
|
||||
var controlStatesDictionary = Dictionary<String,DictionaryObject>()
|
||||
|
||||
for (key,object ) in stateDictionary{
|
||||
let appearance = object as ControlStateValue
|
||||
let appearanceDictionary = appearance.getObjectDictionary()
|
||||
controlStatesDictionary.updateValue(appearanceDictionary, forKey: key.rawValue)
|
||||
}
|
||||
|
||||
return controlStatesDictionary
|
||||
}
|
||||
|
||||
|
||||
public func setImageInsets(insets:UIEdgeInsets, state:String){
|
||||
buttonsImageInsetsForStateDictionary.updateValue(insets, forKey:state)
|
||||
}
|
||||
|
||||
public func getImageInsetsForState(state:NSString)->UIEdgeInsets!{
|
||||
|
||||
if let insets = buttonsImageInsetsForStateDictionary[state] {
|
||||
return buttonsImageInsetsForStateDictionary[state]!
|
||||
}else{
|
||||
return buttonsImageInsetsForStateDictionary[kDefaultAdaptiveState]
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public func setTitleOffset(insets:UIOffset, state:String){
|
||||
buttonsTitleInsetsForStateDictionary.updateValue(insets, forKey:state)
|
||||
}
|
||||
|
||||
public func getTitleOffsetForState(state:NSString)->UIOffset!{
|
||||
|
||||
var offset:UIOffset? = buttonsTitleInsetsForStateDictionary[state]
|
||||
if(offset == nil){
|
||||
offset = buttonsTitleInsetsForStateDictionary[kDefaultAdaptiveState]?
|
||||
}
|
||||
|
||||
return offset!
|
||||
}
|
||||
|
||||
|
||||
public func setTitleColor(color:UIColor, state:String){
|
||||
buttonsTitleColorsForStateDictionary.updateValue(color, forKey:state)
|
||||
}
|
||||
|
||||
public func getTitleColorForState(state:NSString)->UIColor!{
|
||||
|
||||
var offset:UIColor? = buttonsTitleColorsForStateDictionary[state]
|
||||
if(offset == nil){
|
||||
offset = buttonsTitleColorsForStateDictionary[kDefaultAdaptiveState]?
|
||||
}
|
||||
|
||||
return offset!
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -8,21 +8,10 @@
|
||||
|
||||
import UIKit
|
||||
|
||||
public let countDaysToSmallTextState = 14
|
||||
public let countDaysToImageState = 30
|
||||
|
||||
public let defaultInsets = UIEdgeInsetsMake(0, 0,0, 0)
|
||||
public let defaultSmallTitleModeFont = UIFont(name: "Helvetica", size: 10.0)
|
||||
public let defaultSmallTitleModeImageInsets = UIEdgeInsetsMake(0, 0, 0, 0)
|
||||
public let defaultImageModeInsets = UIEdgeInsetsMake(6, 0, -6, 0)
|
||||
public let defaultSmallTitleModeOffset = UIOffsetMake(0, 20)
|
||||
public let defaultOffset = UIOffsetMake(0, 00)
|
||||
public let tabColor = UIColor(red: 169/255, green: 79/255, blue: 152/255, alpha: 1.0)
|
||||
|
||||
|
||||
|
||||
@objc public protocol AdaptiveApperanceProtocol {
|
||||
optional func setFontToAdaptiveButton(font: UIFont)
|
||||
func setFontToAdaptiveButton(font: UIFont , controlState:UIControlState)
|
||||
//optional func setFontToAdaptiveButton(font: UIFont)
|
||||
optional func setTitleToAdaptiveButton(text: NSString)
|
||||
optional func setImageToAdaptiveButton(image: UIImage?)
|
||||
optional func setHighlightedToAdaptiveButton(image: UIImage?)
|
||||
@@ -30,69 +19,68 @@ public let tabColor = UIColor(red: 169/255, green: 79/255, blue: 152/255, alpha:
|
||||
optional func setSelectedImageToAdaptiveButton(image: UIImage?)
|
||||
optional func setImageInsetsToAdaptiveButton(insets: UIEdgeInsets)
|
||||
optional func setTitleOffsetToAdaptiveButton(offset: UIOffset)
|
||||
optional func setTitleColorToAdaptiveButton(titleColor: UIColor)
|
||||
//optional func setTitleColorToAdaptiveButton(titleColor: UIColor)
|
||||
|
||||
optional func setTitleColorToAdaptiveButton(color: UIColor, controlState:UIControlState)
|
||||
}
|
||||
|
||||
public let selected = "Selected"
|
||||
public let highlighted = "Higlihted"
|
||||
|
||||
public class AdaptiveButtonsStateManager: NSObject {
|
||||
public class AdaptiveButtonsStateManager <AdaptiveStateClass: AdaptiveState> {
|
||||
|
||||
|
||||
public convenience init (state:AdaptiveState,buttonsAray:[AdaptiveApperanceProtocol],buttonsAppearance:[AdaptiveButtonAppearance]){
|
||||
self.init()
|
||||
self.setButtonsState(state, buttonsAray: buttonsAray, buttonsAppearance: buttonsAppearance)
|
||||
}
|
||||
|
||||
public func setButtonsState(state:AdaptiveState,buttonsAray:[AdaptiveApperanceProtocol],buttonsAppearance:[AdaptiveButtonAppearance]){
|
||||
public class func setupButtonsAppearanceFromState(adaptiveState:AdaptiveStateClass,buttonsAray:[AdaptiveApperanceProtocol],buttonsAppearances:[AdaptiveButtonAppearance]){
|
||||
|
||||
var state:String = state.currentItemState!
|
||||
|
||||
var countElements = buttonsAray.count > buttonsAppearance.count ? buttonsAppearance.count : buttonsAray.count
|
||||
var state = adaptiveState.currentItemState
|
||||
|
||||
var countElements = buttonsAray.count > buttonsAppearances.count ? buttonsAppearances.count : buttonsAray.count
|
||||
for var index = 0; index < countElements; ++index {
|
||||
println("index is \(index)")
|
||||
println("buttons count array is \(buttonsAray.count)")
|
||||
|
||||
var button :AdaptiveApperanceProtocol = buttonsAray[index]
|
||||
var buttonApperance = buttonsAppearance[index]
|
||||
|
||||
let title = buttonApperance.getButonTitleForState(state)
|
||||
println("title: /(title)")
|
||||
println(NSString(format:"title %@",title))
|
||||
button.setTitleToAdaptiveButton!(title)
|
||||
|
||||
|
||||
button.setFontToAdaptiveButton!(buttonApperance.getButonTitleFontForState(state))
|
||||
|
||||
if let image = buttonApperance.getButonImageForState(state) {
|
||||
button.setImageToAdaptiveButton?(image)
|
||||
}else{
|
||||
|
||||
}
|
||||
|
||||
if let selectedImage = buttonApperance.getButonImageForState(state+selected) {
|
||||
button.setSelectedImageToAdaptiveButton?(selectedImage)
|
||||
}
|
||||
|
||||
if let highlightedImage = buttonApperance.getButonImageForState(state+highlighted) {
|
||||
button.setHighlightedToAdaptiveButton?(highlightedImage)
|
||||
var button :AdaptiveApperanceProtocol = buttonsAray[index]
|
||||
var buttonApperance = buttonsAppearances[index]
|
||||
|
||||
if let controlStateValue = buttonApperance.stateDictionary[state!] {
|
||||
|
||||
|
||||
let normalStateAppearenceObject = controlStateValue.controlStates[UIControlState.Normal.rawValue]
|
||||
|
||||
|
||||
if let title = normalStateAppearenceObject?.title {
|
||||
button.setTitleToAdaptiveButton?(title)
|
||||
}
|
||||
|
||||
if let imageName = normalStateAppearenceObject?.imageName?{
|
||||
|
||||
if let image = UIImage(named: imageName) {
|
||||
button.setImageToAdaptiveButton?(image)
|
||||
}
|
||||
}
|
||||
|
||||
if let backgroundImage = buttonApperance.getButonImageForState(state) {
|
||||
|
||||
if let backgroundImage = normalStateAppearenceObject?.backgroundImage {
|
||||
button.setBackgroundImageToAdaptiveButton?(backgroundImage)
|
||||
}
|
||||
|
||||
if let imageInset = buttonApperance.getImageInsetsForState(state) {
|
||||
if let imageInset = normalStateAppearenceObject?.imageInsets{
|
||||
button.setImageInsetsToAdaptiveButton?(imageInset)
|
||||
}
|
||||
|
||||
if let titleOffset = buttonApperance.getTitleOffsetForState(state) {
|
||||
if let titleOffset = normalStateAppearenceObject?.titleOffset {
|
||||
button.setTitleOffsetToAdaptiveButton?(titleOffset)
|
||||
}
|
||||
|
||||
if let titleColor = buttonApperance.getTitleColorForState(state) {
|
||||
button.setTitleColorToAdaptiveButton?(titleColor)
|
||||
for (key, controlStateValue) in controlStateValue.controlStates{
|
||||
|
||||
if let titleFont = controlStateValue.font{
|
||||
|
||||
button.setFontToAdaptiveButton(titleFont , controlState:UIControlState(key))
|
||||
}
|
||||
|
||||
if let titleColor = controlStateValue.titleColor{
|
||||
button.setTitleColorToAdaptiveButton?(titleColor, controlState:UIControlState(key) )
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -8,23 +8,18 @@
|
||||
|
||||
import UIKit
|
||||
|
||||
public let kSmallTitleAdaptiveState = "kImageAdaptiveState"
|
||||
public let kImageAdaptiveState = "kNormalImageAdaptiveState"
|
||||
public let kSmallTitleAdaptiveState = "kSmallTitleAdaptiveState"
|
||||
public let kImageAdaptiveState = "kImageAdaptiveState"
|
||||
|
||||
public class AdaptiveDateState: AdaptiveState {
|
||||
|
||||
|
||||
public override init(){
|
||||
super.init()
|
||||
super.addNewCustomAdaptiveStates([kSmallTitleAdaptiveState,kImageAdaptiveState])
|
||||
}
|
||||
|
||||
public convenience init(installDate:NSDate, currentDate:NSDate,countDaysToSmallTextState:Int,countDaysToImageState:Int) {
|
||||
self.init()
|
||||
|
||||
var remainsDays = self.daysBetweenDates(installDate,currentDate: currentDate)
|
||||
self.currentItemState = self.stateRemainDays(remainsDays,countDaysToSmallTextState:countDaysToSmallTextState,countDaysToImageState:countDaysToImageState)
|
||||
print(currentItemState)
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -39,16 +34,19 @@ public class AdaptiveDateState: AdaptiveState {
|
||||
return components.day+1;
|
||||
}
|
||||
|
||||
func stateRemainDays (remainDays:Int,countDaysToSmallTextState:Int,countDaysToImageState:Int)->String{
|
||||
func stateRemainDays (remainDays:Int,countDaysToSmallTextState:Int,countDaysToImageState:Int)->StateType{
|
||||
|
||||
var mode:StateType = .DefaultAdaptiveState
|
||||
|
||||
var mode:String = kDefaultAdaptiveState
|
||||
print(" DAYS \(remainDays) ")
|
||||
if remainDays > countDaysToSmallTextState && remainDays < countDaysToImageState{
|
||||
mode = kSmallTitleAdaptiveState
|
||||
mode = .SmallTitleAdaptiveState
|
||||
}else if remainDays > countDaysToImageState {
|
||||
mode = kImageAdaptiveState
|
||||
mode = .ImageAdaptiveState
|
||||
}
|
||||
print(mode)
|
||||
|
||||
return mode
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -5,35 +5,37 @@
|
||||
// Created by Arcilite on 04.10.14.
|
||||
// Copyright (c) 2014 Ramotion. All rights reserved.
|
||||
//
|
||||
public let countDaysForSmaltextState = 3
|
||||
public let countDaysForImageModeState = 7
|
||||
|
||||
|
||||
import UIKit
|
||||
|
||||
typealias StateType = AdaptiveStateEnum
|
||||
|
||||
public class AdaptiveLaunchesState : AdaptiveState {
|
||||
|
||||
|
||||
public override init(){
|
||||
super.init()
|
||||
super.addNewCustomAdaptiveStates([kSmallTitleAdaptiveState,kImageAdaptiveState])
|
||||
typealias StateType = AdaptiveStateEnum
|
||||
|
||||
|
||||
override init(){
|
||||
|
||||
}
|
||||
|
||||
|
||||
public convenience init(curentCountLaunches:Int,countLaunchesToSmallTextState:Int,countLaunchesToImageState:Int) {
|
||||
public convenience init(curentCountLaunches:Int,countLaunchesToSmallTextState:Int,countLaunchesToImageState:Int){
|
||||
self.init()
|
||||
|
||||
|
||||
|
||||
self.currentItemState = stateRemainDays(curentCountLaunches,countLaunchesToSmallTextState: countLaunchesToSmallTextState,countLaunchesToImageState: countLaunchesToImageState);
|
||||
|
||||
//print(currentItemState)
|
||||
}
|
||||
|
||||
internal func stateRemainDays (curentCountLaunches:Int,countLaunchesToSmallTextState:Int,countLaunchesToImageState:Int)->String{
|
||||
var mode:String = kDefaultAdaptiveState
|
||||
internal func stateRemainDays (curentCountLaunches:Int,countLaunchesToSmallTextState:Int,countLaunchesToImageState:Int)->StateType{
|
||||
var mode:StateType = .DefaultAdaptiveState
|
||||
|
||||
if curentCountLaunches > countLaunchesToSmallTextState && curentCountLaunches < countLaunchesToImageState{
|
||||
mode = kSmallTitleAdaptiveState
|
||||
mode = .SmallTitleAdaptiveState
|
||||
}else if curentCountLaunches > countLaunchesToImageState {
|
||||
mode = kImageAdaptiveState
|
||||
mode = .ImageAdaptiveState
|
||||
}
|
||||
|
||||
return mode;
|
||||
|
||||
@@ -9,30 +9,25 @@
|
||||
import UIKit
|
||||
|
||||
|
||||
public let kDefaultAdaptiveState:String = "DefaultAdaptiveState"
|
||||
public let kDefaultAdaptiveState:String = "kDefaultAdaptiveState"
|
||||
|
||||
public enum AdaptiveStateEnum:String{
|
||||
case DefaultAdaptiveState = "kDefaultAdaptiveState"
|
||||
case SmallTitleAdaptiveState = "kSmallTitleAdaptiveState"
|
||||
case ImageAdaptiveState = "kImageAdaptiveState"
|
||||
|
||||
}
|
||||
|
||||
public typealias StateKey = AdaptiveStateEnum
|
||||
|
||||
public class AdaptiveState {
|
||||
|
||||
public typealias StateType = AdaptiveStateEnum
|
||||
var currentItemState:StateType?
|
||||
|
||||
init(){
|
||||
|
||||
}
|
||||
|
||||
|
||||
public class AdaptiveState: NSObject {
|
||||
|
||||
var currentItemState:NSString?
|
||||
|
||||
|
||||
var buttonStates:[String] = [String]()
|
||||
|
||||
|
||||
public override init(){
|
||||
super.init()
|
||||
self.currentItemState = kDefaultAdaptiveState
|
||||
self.addNewCustomAdaptiveStates([kDefaultAdaptiveState])
|
||||
}
|
||||
|
||||
internal func addNewCustomAdaptiveStates(customAdaptiveStates:Array<String>){
|
||||
self.buttonStates+customAdaptiveStates
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
//
|
||||
// AppearanceSerializationProtocol.swift
|
||||
// AdaptiveController
|
||||
//
|
||||
// Created by Arcilite on 22.10.14.
|
||||
// Copyright (c) 2014 Ramotion. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
protocol AppearanceSerializationProtocol {
|
||||
typealias DictionaryObject
|
||||
|
||||
func getObjectDictionary() -> Dictionary<String,DictionaryObject>
|
||||
func setObjectDictionary(dictionary:Dictionary<String,DictionaryObject>)
|
||||
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
//
|
||||
// AppearenceSettingManager.swift
|
||||
// AdaptiveController
|
||||
//
|
||||
// Created by Arcilite on 13.11.14.
|
||||
// Copyright (c) 2014 Ramotion. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import UIKit
|
||||
|
||||
public class AppearenceSettingManager{
|
||||
private var defaultAppearencesStyles:Dictionary<StateKey,ControlStateValue>
|
||||
|
||||
public init(){
|
||||
defaultAppearencesStyles = Dictionary<StateKey,ControlStateValue>()
|
||||
}
|
||||
|
||||
public init(stylesAppearances:Dictionary<StateKey,ControlStateValue>){
|
||||
defaultAppearencesStyles = stylesAppearances
|
||||
}
|
||||
|
||||
public func defaultStyleSettingsForNormalState(state:StateKey, titleOffset:UIOffset, imageInsets:UIEdgeInsets, titleColor:UIColor, font:UIFont, backgroundColor:UIColor ){
|
||||
var controlDefaultStyleStateAppearence = ControlStateAppearance()
|
||||
|
||||
controlDefaultStyleStateAppearence.titleColor = titleColor
|
||||
controlDefaultStyleStateAppearence.imageInsets = imageInsets
|
||||
controlDefaultStyleStateAppearence.font = font
|
||||
controlDefaultStyleStateAppearence.backgroundColor = backgroundColor
|
||||
controlDefaultStyleStateAppearence.titleOffset = titleOffset
|
||||
let controlStatesValues = [UIControlState.Normal.rawValue:controlDefaultStyleStateAppearence]
|
||||
let controlStateValue = ControlStateValue(values: controlStatesValues)
|
||||
|
||||
defaultAppearencesStyles.updateValue(controlStateValue,forKey:state)
|
||||
}
|
||||
|
||||
public func defaultStyleValuesForNormalState(state:StateKey, title:String, imageName:String) -> ControlStateValue {
|
||||
|
||||
var defaultStateValue = defaultAppearencesStyles[state] as ControlStateValue?
|
||||
var normalDefaultAppearance = defaultStateValue?.controlStates[UIControlState.Normal.rawValue]
|
||||
var controlSmallTitleStyleStateAppearence = ControlStateAppearance(appearanceStyle:normalDefaultAppearance)
|
||||
|
||||
controlSmallTitleStyleStateAppearence.imageName = imageName
|
||||
controlSmallTitleStyleStateAppearence.title = title
|
||||
|
||||
let controSmallTitleStatesValues = [UIControlState.Normal.rawValue:controlSmallTitleStyleStateAppearence]
|
||||
let controlSmallTitleStateValue = ControlStateValue(values: controSmallTitleStatesValues)
|
||||
return controlSmallTitleStateValue
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
//
|
||||
// Constants.swift
|
||||
// AdaptiveController
|
||||
//
|
||||
// Created by Arcilite on 10.11.14.
|
||||
// Copyright (c) 2014 Ramotion. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import UIKit
|
||||
//Default apearence settings
|
||||
public let countDaysForSmaltextState = 3
|
||||
public let countDaysForImageModeState = 7
|
||||
|
||||
public let countDaysToSmallTextState = 14
|
||||
public let countDaysToImageState = 30
|
||||
|
||||
public let defaultInsets = UIEdgeInsetsMake(0, 0,0, 0)
|
||||
public let defaultSmallTitleModeFont = UIFont(name: "Helvetica", size: 10.0)
|
||||
public let defaultSmallTitleModeImageInsets = UIEdgeInsetsMake(0, 0, 0, 0)
|
||||
public let defaultImageModeInsets = UIEdgeInsetsMake(6, 0, -6, 0)
|
||||
public let defaultSmallTitleModeOffset = UIOffsetMake(0, 20)
|
||||
public let defaultOffset = UIOffsetMake(0, 00)
|
||||
public let tabColor = UIColor(red: 169/255, green: 79/255, blue: 152/255, alpha: 1.0)
|
||||
public let defaultFont = UIFont(name: "Helvetica", size: 14.0)
|
||||
@@ -0,0 +1,263 @@
|
||||
//
|
||||
// ControlStateAppearance.swift
|
||||
// AdaptiveController
|
||||
//
|
||||
// Created by Arcilite on 22.10.14.
|
||||
// Copyright (c) 2014 Ramotion. All rights reserved.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
let titleKey = "title"
|
||||
let fontKey = "font"
|
||||
let imageNameKey = "imageName"
|
||||
let backgroundImageNameKey = "backgroundImageName"
|
||||
let titleOffsetKey = "titleOffset"
|
||||
let imageInsetsKey = "imageInsets"
|
||||
let colorKey = "color"
|
||||
let backgroundColorKey = "backgroundColor"
|
||||
|
||||
let horizontalKey = "horizontal"
|
||||
let verticalKey = "vertical"
|
||||
let heightKey = "height"
|
||||
let widthKey = "width"
|
||||
|
||||
let leftKey = "left"
|
||||
let topKey = "top"
|
||||
let rightKey = "right"
|
||||
let bottomKey = "bottom"
|
||||
|
||||
let fontNameKey = "fontName"
|
||||
let fontSizeKey = "fontSize"
|
||||
|
||||
let redColor = "red"
|
||||
let greenColor = "green"
|
||||
let blueColor = "blue"
|
||||
let alphaColor = "alpha"
|
||||
|
||||
public class ControlStateAppearance: AppearanceSerializationProtocol{
|
||||
|
||||
typealias DictionaryObject = AnyObject
|
||||
typealias StateObject = AnyObject
|
||||
|
||||
public var title: String?
|
||||
public var font: UIFont?
|
||||
public var imageName: String?
|
||||
public var image: UIImage?
|
||||
public var backgroundImageName:String?
|
||||
public var backgroundImage: UIImage?
|
||||
public var titleOffset:UIOffset?
|
||||
public var imageInsets:UIEdgeInsets?
|
||||
public var titleColor:UIColor?
|
||||
public var backgroundColor:UIColor?
|
||||
public var enabled:Bool?
|
||||
|
||||
public init(){
|
||||
title = ""
|
||||
//font = defaultFont
|
||||
// titleOffset = defaultOffset
|
||||
//imageInsets = defaultImageModeInsets
|
||||
titleColor = UIColor.whiteColor()
|
||||
backgroundColor = UIColor.clearColor()
|
||||
}
|
||||
public convenience init(appearanceFullStyle:ControlStateAppearance?){
|
||||
self.init()
|
||||
font = appearanceFullStyle?.font
|
||||
titleOffset = appearanceFullStyle?.titleOffset
|
||||
imageInsets = appearanceFullStyle?.imageInsets
|
||||
titleColor = appearanceFullStyle?.titleColor
|
||||
backgroundColor = appearanceFullStyle?.backgroundColor
|
||||
imageName = appearanceFullStyle?.imageName
|
||||
backgroundImageName = appearanceFullStyle?.backgroundImageName
|
||||
image = appearanceFullStyle?.image
|
||||
backgroundImage = appearanceFullStyle?.backgroundImage
|
||||
}
|
||||
|
||||
public convenience init(appearanceStyle:ControlStateAppearance?){
|
||||
self.init()
|
||||
font = appearanceStyle?.font
|
||||
titleOffset = appearanceStyle?.titleOffset
|
||||
imageInsets = appearanceStyle?.imageInsets
|
||||
titleColor = appearanceStyle?.titleColor
|
||||
backgroundColor = appearanceStyle?.backgroundColor
|
||||
title = appearanceStyle?.title
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
func colorToDctionary(color:UIColor) -> Dictionary<String,AnyObject>{
|
||||
|
||||
var components = CGColorGetComponents(color.CGColor)
|
||||
|
||||
var colorDictionary = Dictionary<String,AnyObject>()
|
||||
|
||||
if CGColorGetNumberOfComponents(color.CGColor) == 2{
|
||||
colorDictionary[redColor] = components[0]
|
||||
colorDictionary[greenColor] = components[0]
|
||||
colorDictionary[blueColor] = components[0]
|
||||
colorDictionary[alphaColor] = components[1]
|
||||
}else{
|
||||
colorDictionary[redColor] = components[0]
|
||||
colorDictionary[greenColor] = components[1]
|
||||
colorDictionary[blueColor] = components[2]
|
||||
colorDictionary[alphaColor] = components[3]
|
||||
}
|
||||
|
||||
return colorDictionary
|
||||
}
|
||||
|
||||
func dictionaryToColor(colorDictionary: Dictionary<String,CGFloat>?) -> UIColor{
|
||||
if let colorValueDictioanary = colorDictionary {
|
||||
var red:CGFloat = 0
|
||||
|
||||
if let redValue = colorValueDictioanary [redColor]{
|
||||
red = redValue
|
||||
}
|
||||
|
||||
var green:CGFloat = 0
|
||||
|
||||
if let greenValue = colorValueDictioanary [greenColor]{
|
||||
green = greenValue
|
||||
}
|
||||
|
||||
var blue:CGFloat = 0
|
||||
|
||||
if let blueValue = colorValueDictioanary [blueColor]{
|
||||
blue = blueValue
|
||||
}
|
||||
|
||||
var alpha:CGFloat = 0
|
||||
|
||||
if let alphaValue = colorValueDictioanary [alphaColor]{
|
||||
alpha = alphaValue
|
||||
}
|
||||
|
||||
return UIColor(red: red, green: green, blue: blue, alpha: alpha)
|
||||
}else{
|
||||
return UIColor.clearColor()
|
||||
}
|
||||
}
|
||||
|
||||
func dictionaryToInsets(insetsDictionary: Dictionary<String,CGFloat>?) -> UIEdgeInsets!{
|
||||
if let insetsDictionary = insetsDictionary{
|
||||
var left:CGFloat = 0
|
||||
if let leftDictioanaryValue = insetsDictionary [leftKey]{
|
||||
left = leftDictioanaryValue
|
||||
}
|
||||
|
||||
var top:CGFloat = 0
|
||||
|
||||
if let topDictioanaryValue = insetsDictionary [topKey]{
|
||||
top = topDictioanaryValue
|
||||
}
|
||||
|
||||
var right:CGFloat = 0
|
||||
|
||||
if let rightDictionary = insetsDictionary[rightKey]{
|
||||
right = rightDictionary
|
||||
}
|
||||
|
||||
var bottom:CGFloat = 0
|
||||
|
||||
if let bottomDictionaryValue = insetsDictionary[bottomKey]{
|
||||
bottom = bottomDictionaryValue
|
||||
}
|
||||
|
||||
return UIEdgeInsetsMake(top, left, bottom, right)
|
||||
}else{
|
||||
return UIEdgeInsetsZero
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func dictionaryToOffset(offsetDictionary: Dictionary<String,CGFloat>?) -> UIOffset{
|
||||
|
||||
var horizontal:CGFloat = 0
|
||||
|
||||
if let horizontalFromDictionary = offsetDictionary![horizontalKey]{
|
||||
horizontal = horizontalFromDictionary
|
||||
}
|
||||
|
||||
var vertical:CGFloat = 0
|
||||
|
||||
if let verticalFromDictionary = offsetDictionary![verticalKey]{
|
||||
vertical = verticalFromDictionary
|
||||
}
|
||||
|
||||
return UIOffsetMake(horizontal, vertical)
|
||||
|
||||
}
|
||||
|
||||
|
||||
func dictionaryToFont(fontDictionary: Dictionary<String,AnyObject>) -> UIFont{
|
||||
|
||||
var fontName:String = fontDictionary [fontNameKey]! as String
|
||||
var fontSize:CGFloat = fontDictionary [fontSizeKey]! as CGFloat
|
||||
|
||||
return UIFont( name: fontName, size:fontSize )!
|
||||
}
|
||||
|
||||
func setObjectDictionary(dictionary:Dictionary<String,DictionaryObject>){
|
||||
|
||||
title = dictionary[titleKey] as? String
|
||||
font = dictionaryToFont(dictionary[fontKey] as Dictionary <String, AnyObject>)
|
||||
titleOffset = dictionaryToOffset(dictionary[titleOffsetKey] as? Dictionary <String, CGFloat>)
|
||||
imageInsets = dictionaryToInsets(dictionary[imageInsetsKey] as? Dictionary <String, CGFloat>)
|
||||
titleColor = dictionaryToColor(dictionary[colorKey]! as? Dictionary <String, CGFloat>)
|
||||
backgroundColor = dictionaryToColor(dictionary[backgroundColorKey]! as? Dictionary <String, CGFloat>)
|
||||
|
||||
if let imageName = dictionary[imageNameKey] as? String{
|
||||
image = UIImage(named:imageName)
|
||||
self.imageName = imageName
|
||||
}
|
||||
|
||||
if let backgroundImageName = dictionary[backgroundImageNameKey] as? String{
|
||||
backgroundImage = UIImage(named:backgroundImageName)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func getObjectDictionary() -> Dictionary<String,DictionaryObject>{
|
||||
var controlStateDictionary = Dictionary<String,AnyObject>()
|
||||
|
||||
if title != nil {
|
||||
controlStateDictionary[titleKey] = title!
|
||||
}else{
|
||||
controlStateDictionary[titleKey] = ""
|
||||
}
|
||||
|
||||
var fontDictionary = Dictionary<String,AnyObject>()
|
||||
fontDictionary[fontNameKey] = font?.fontName
|
||||
fontDictionary[fontSizeKey] = font?.pointSize
|
||||
controlStateDictionary[fontKey] = fontDictionary
|
||||
|
||||
var offsetDictionary = Dictionary<String,AnyObject>()
|
||||
offsetDictionary[horizontalKey] = titleOffset?.horizontal
|
||||
offsetDictionary[verticalKey] = titleOffset?.vertical
|
||||
controlStateDictionary[titleOffsetKey] = offsetDictionary
|
||||
|
||||
|
||||
var insetsDictionary = Dictionary<String,AnyObject>()
|
||||
|
||||
insetsDictionary[bottomKey] = imageInsets?.bottom
|
||||
insetsDictionary[topKey] = imageInsets?.top
|
||||
insetsDictionary[leftKey] = imageInsets?.left
|
||||
insetsDictionary[rightKey] = imageInsets?.right
|
||||
|
||||
controlStateDictionary[imageInsetsKey] = insetsDictionary
|
||||
if titleColor != nil{
|
||||
controlStateDictionary[colorKey] = colorToDctionary(titleColor!)
|
||||
}else{
|
||||
controlStateDictionary[colorKey] = UIColor(red: 0, green: 0, blue: 0, alpha: 0)
|
||||
}
|
||||
|
||||
|
||||
controlStateDictionary[backgroundColorKey] = colorToDctionary(backgroundColor!)
|
||||
controlStateDictionary[imageNameKey] = imageName
|
||||
controlStateDictionary[backgroundImageNameKey] = backgroundImageName
|
||||
|
||||
return controlStateDictionary
|
||||
}
|
||||
|
||||
}
|
||||
@@ -8,12 +8,11 @@
|
||||
|
||||
import Foundation
|
||||
|
||||
protocol ControlStateProtocol {
|
||||
protocol ControlStateProtocol:AppearanceSerializationProtocol {
|
||||
|
||||
typealias StateEnum
|
||||
typealias StateObject
|
||||
typealias ControlStateType:Hashable
|
||||
|
||||
var normalState: StateEnum?{get set}
|
||||
var selectedState: StateEnum?{get set}
|
||||
var highlightedState: StateEnum?{get set}
|
||||
var controlStates: Dictionary <ControlStateType, StateObject>{get }
|
||||
|
||||
}
|
||||
@@ -8,28 +8,95 @@
|
||||
|
||||
import UIKit
|
||||
|
||||
public enum ControlStateEnum {
|
||||
case ControlStateFont(UIFont), ControlStateImage(UIImage),ControlStateTitle(String),ControlStateInsets(UIEdgeInsets),ControlStateColor(UIColor),UIControlState(UIOffset)
|
||||
extension UIControlState {
|
||||
|
||||
init(string:StringLiteralType){
|
||||
switch(string){
|
||||
case "UIControlStateNormal" :
|
||||
self = UIControlState.Normal
|
||||
case "UIControlStateHighlighted":
|
||||
self = UIControlState.Highlighted
|
||||
case"UIControlStateHighlighted":
|
||||
self = UIControlState.Selected
|
||||
default:
|
||||
self = UIControlState.Disabled
|
||||
}
|
||||
}
|
||||
|
||||
func getStringKey()->String{
|
||||
switch(self){
|
||||
case UIControlState.Normal: return "UIControlStateNormal"
|
||||
case UIControlState.Highlighted: return "UIControlStateHighlighted"
|
||||
case UIControlState.Selected: return "UIControlStateSelected"
|
||||
default: return "None"
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
public class ControlStateValue:ControlStateProtocol{
|
||||
|
||||
public typealias StateEnum = ControlStateEnum
|
||||
|
||||
public typealias ControlStateType = UInt
|
||||
|
||||
public typealias StateObject = ControlStateAppearance
|
||||
public typealias DictionaryObject = Dictionary <String,AnyObject>
|
||||
|
||||
public var normalState: StateEnum?
|
||||
public var selectedState: StateEnum?
|
||||
public var highlightedState: StateEnum?
|
||||
|
||||
|
||||
public convenience init(valueForNormalState:ControlStateEnum?) {
|
||||
self.init()
|
||||
|
||||
self.normalState = valueForNormalState
|
||||
self.selectedState = valueForNormalState
|
||||
self.highlightedState = valueForNormalState
|
||||
public var controlStates :Dictionary <ControlStateType,ControlStateAppearance>
|
||||
|
||||
public init(){
|
||||
self.controlStates = Dictionary<ControlStateType,ControlStateAppearance>()
|
||||
}
|
||||
|
||||
public convenience init(values:Dictionary<ControlStateType,ControlStateAppearance>) {
|
||||
self.init()
|
||||
controlStates = values
|
||||
|
||||
}
|
||||
|
||||
|
||||
public convenience init(styleValueStates:ControlStateValue) {
|
||||
self.init()
|
||||
|
||||
for (state, object) in styleValueStates.controlStates {
|
||||
self.controlStates.updateValue( ControlStateAppearance(appearanceStyle: object), forKey: state)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public func getObjectDictionary() -> Dictionary<String,DictionaryObject>{
|
||||
|
||||
var controlStatesDictionary = Dictionary<String,DictionaryObject>()
|
||||
|
||||
for (key,object ) in controlStates{
|
||||
var appearance = object as ControlStateAppearance
|
||||
var appearanceDictionary = appearance.getObjectDictionary()
|
||||
let controlKey = UIControlState(key).getStringKey()
|
||||
controlStatesDictionary.updateValue(appearanceDictionary, forKey:controlKey )
|
||||
}
|
||||
|
||||
return controlStatesDictionary
|
||||
}
|
||||
|
||||
|
||||
public func setObjectDictionary(dictionary:Dictionary <String,DictionaryObject>){
|
||||
|
||||
var controlStatesDictionary = Dictionary<ControlStateType,ControlStateAppearance>()
|
||||
|
||||
for (key,object ) in dictionary{
|
||||
var appearanceDictionary = object as Dictionary <String,AnyObject>
|
||||
var appearanceObject = ControlStateAppearance()
|
||||
appearanceObject.setObjectDictionary(appearanceDictionary)
|
||||
controlStatesDictionary.updateValue(appearanceObject, forKey: UIControlState(string:key).rawValue)
|
||||
}
|
||||
|
||||
self.controlStates = controlStatesDictionary
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
//
|
||||
// DictioanarySeriliazator.swift
|
||||
// AdaptiveController
|
||||
//
|
||||
// Created by Arcilite on 04.11.14.
|
||||
// Copyright (c) 2014 Ramotion. All rights reserved.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
public class DictioanarySerializer: NSObject {
|
||||
|
||||
public typealias DictionaryObject = Dictionary <String,AnyObject>
|
||||
|
||||
|
||||
public func buttonApperancesToArrayDictionary(buttonApearances:[AdaptiveButtonAppearance]) -> Array<Dictionary<String, AnyObject>>{
|
||||
var buttonsApearancesDictionaryArray = Array<Dictionary<String, AnyObject>>()
|
||||
for appeareance in buttonApearances{
|
||||
buttonsApearancesDictionaryArray.append(appeareance.getObjectDictionary())
|
||||
}
|
||||
return buttonsApearancesDictionaryArray
|
||||
}
|
||||
|
||||
public func saveStateDictionary(buttonApearances:[AdaptiveButtonAppearance],filePath:String){
|
||||
|
||||
var dataArray = buttonApperancesToArrayDictionary(buttonApearances)
|
||||
var data : NSArray = dataArray as NSArray
|
||||
data.writeToFile(filePath, atomically: true)
|
||||
|
||||
}
|
||||
|
||||
public func dictionaryAppearancesToArrayApperances(buttonApearancesDictionary:Array<Dictionary<String, DictionaryObject>>) -> [AdaptiveButtonAppearance]{
|
||||
var buttonsApearancesDictionaryArray = [AdaptiveButtonAppearance]()
|
||||
for appeareanceDictionary in buttonApearancesDictionary{
|
||||
var appearance = AdaptiveButtonAppearance()
|
||||
appearance.setObjectDictionary(appeareanceDictionary)
|
||||
buttonsApearancesDictionaryArray.append(appearance)
|
||||
}
|
||||
return buttonsApearancesDictionaryArray
|
||||
}
|
||||
|
||||
|
||||
public func parseFromPlistToButtonAppearances(filePath:String)->[AdaptiveButtonAppearance] {
|
||||
|
||||
if countElements(filePath) > 0 {
|
||||
// The file saved previously
|
||||
|
||||
// Check for existence of the file
|
||||
if NSFileManager.defaultManager().fileExistsAtPath(filePath){
|
||||
let resultArray = NSArray(contentsOfFile: filePath)
|
||||
var appearancesDictionaryArray = resultArray as Array<Dictionary<String, DictionaryObject>>
|
||||
|
||||
return dictionaryAppearancesToArrayApperances(appearancesDictionaryArray)
|
||||
|
||||
}
|
||||
}
|
||||
return [AdaptiveButtonAppearance]()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
//
|
||||
// AdaptiveButtonAppearanceTest.swift
|
||||
// AdaptiveController
|
||||
//
|
||||
// Created by Arcilite on 03.11.14.
|
||||
// Copyright (c) 2014 Ramotion. All rights reserved.
|
||||
//
|
||||
|
||||
|
||||
import XCTest
|
||||
import UIKit
|
||||
import AdaptiveController
|
||||
|
||||
|
||||
class AdaptiveButtonAppearanceTest: XCTestCase {
|
||||
|
||||
func testAppearanceSetup() {
|
||||
|
||||
var settingsManager = AppearenceSettingManager()
|
||||
//
|
||||
settingsManager.defaultStyleSettingsForNormalState(AdaptiveStateEnum.DefaultAdaptiveState,titleOffset:defaultOffset, imageInsets:defaultInsets, titleColor:UIColor(red: 1, green: 1, blue: 1, alpha: 1), font:defaultFont!, backgroundColor:UIColor.clearColor())
|
||||
settingsManager.defaultStyleSettingsForNormalState(AdaptiveStateEnum.SmallTitleAdaptiveState,titleOffset:defaultOffset, imageInsets:defaultSmallTitleModeImageInsets, titleColor:UIColor.whiteColor(), font:defaultSmallTitleModeFont!, backgroundColor:UIColor.clearColor())
|
||||
|
||||
settingsManager.defaultStyleSettingsForNormalState(AdaptiveStateEnum.ImageAdaptiveState,titleOffset:defaultOffset, imageInsets:defaultImageModeInsets, titleColor:UIColor.whiteColor(), font:defaultFont!, backgroundColor:UIColor.clearColor())
|
||||
|
||||
|
||||
|
||||
|
||||
var watchControlDefaultStateValue = settingsManager.defaultStyleValuesForNormalState(AdaptiveStateEnum.DefaultAdaptiveState, title:"watch", imageName:"watch")
|
||||
|
||||
var watchControlSmallTitleStateValue = settingsManager.defaultStyleValuesForNormalState(AdaptiveStateEnum.SmallTitleAdaptiveState, title:"watch", imageName:"watch_smalltitle")
|
||||
var watchControlImageStateValue = settingsManager.defaultStyleValuesForNormalState(AdaptiveStateEnum.ImageAdaptiveState, title:"", imageName:"watch_bigimage")
|
||||
|
||||
let watchAppearanceStates = [AdaptiveStateEnum.DefaultAdaptiveState:watchControlDefaultStateValue,
|
||||
AdaptiveStateEnum.SmallTitleAdaptiveState:watchControlSmallTitleStateValue,
|
||||
AdaptiveStateEnum.ImageAdaptiveState:watchControlImageStateValue]
|
||||
|
||||
|
||||
|
||||
var watchAppearance = AdaptiveButtonAppearance(states:watchAppearanceStates)
|
||||
|
||||
|
||||
|
||||
var appearanceDictionary = watchAppearance.getObjectDictionary()
|
||||
|
||||
var testAppearance = AdaptiveButtonAppearance()
|
||||
|
||||
testAppearance.setObjectDictionary(appearanceDictionary)
|
||||
|
||||
|
||||
if let controlStateValue = testAppearance.stateDictionary[AdaptiveStateEnum.DefaultAdaptiveState]{
|
||||
|
||||
if let normalStateAppearenceObject = controlStateValue.controlStates[UIControlState.Normal.rawValue]{
|
||||
XCTAssert(normalStateAppearenceObject.titleColor == UIColor(red: 1, green: 1, blue: 1, alpha: 1), "Fail color")
|
||||
XCTAssert(UIOffsetEqualToOffset(normalStateAppearenceObject.titleOffset!,defaultOffset), "Fail offset")
|
||||
XCTAssert(UIEdgeInsetsEqualToEdgeInsets(defaultInsets, normalStateAppearenceObject.imageInsets!), "Fail insets")
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -46,7 +46,7 @@ class AdaptiveControllerTests: XCTestCase {
|
||||
|
||||
var arrayButtons = [tabBarItem]
|
||||
|
||||
AdaptiveButtonsStateManager(state: adaptiveDateState,buttonsAray:arrayButtons ,buttonsAppearance: buttonsAppearances)
|
||||
AdaptiveButtonsStateManager.setupButtonsAppearanceFromState(adaptiveDateState,buttonsAray:arrayButtons ,buttonsAppearances: buttonsAppearances)
|
||||
//assert
|
||||
|
||||
|
||||
@@ -54,8 +54,8 @@ class AdaptiveControllerTests: XCTestCase {
|
||||
XCTAssert(UIOffsetEqualToOffset(tabBarItem.offset!,defaultOffset), "Fail offset")
|
||||
XCTAssert(UIEdgeInsetsEqualToEdgeInsets(defaultInsets, tabBarItem.insets!), "Fail insets")
|
||||
let bundle = NSBundle(forClass: AdaptiveButtonAppearance.self)
|
||||
var image:MockUIImage = tabBarItem.image as MockUIImage
|
||||
XCTAssert(image.checkImageString!.isEqual("default Image"), "Fail image")
|
||||
// var image:MockUIImage = tabBarItem.image as MockUIImage
|
||||
//XCTAssert(image.checkImageString!.isEqual("default Image"), "Fail image")
|
||||
XCTAssert(tabBarItem.text!.isEqualToString("watch"), "Fail text")
|
||||
XCTAssert(tabBarItem.font!.isEqual(defaultFont), "Fail font")
|
||||
}
|
||||
@@ -67,7 +67,7 @@ class AdaptiveControllerTests: XCTestCase {
|
||||
|
||||
var adaptiveDateState = AdaptiveDateState(installDate: installDate,currentDate:currentDate,countDaysToSmallTextState:countDaysToSmallTextState,countDaysToImageState:countDaysToImageState)
|
||||
|
||||
XCTAssert(!adaptiveDateState.isEqual(kSmallTitleAdaptiveState), "Fail SmallTitleState")
|
||||
// XCTAssert(!adaptiveDateState.isEqual(kSmallTitleAdaptiveState), "Fail SmallTitleState")
|
||||
|
||||
var buttonsAppearances = buttonsAppearancesGenerate()
|
||||
var tabBarItem = TestTabBarItem()
|
||||
@@ -75,13 +75,14 @@ class AdaptiveControllerTests: XCTestCase {
|
||||
|
||||
var arrayButtons = [tabBarItem]
|
||||
|
||||
AdaptiveButtonsStateManager(state: adaptiveDateState,buttonsAray:arrayButtons ,buttonsAppearance: buttonsAppearances)
|
||||
// AdaptiveButtonsStateManager(state: adaptiveDateState,buttonsAray:arrayButtons ,buttonsAppearance: buttonsAppearances)
|
||||
AdaptiveButtonsStateManager.setupButtonsAppearanceFromState(adaptiveDateState,buttonsAray:arrayButtons ,buttonsAppearances: buttonsAppearances)
|
||||
|
||||
XCTAssert(tabBarItem.color!.isEqual(UIColor.whiteColor()), "Fail color")
|
||||
XCTAssert(UIOffsetEqualToOffset(tabBarItem.offset!,defaultOffset), "Fail offset")
|
||||
XCTAssert(UIEdgeInsetsEqualToEdgeInsets(defaultInsets, tabBarItem.insets!), "Fail insets")
|
||||
var image:MockUIImage = tabBarItem.image as MockUIImage
|
||||
XCTAssert(image.checkImageString!.isEqual("smalltitle Image"), "Fail image")
|
||||
//var image:MockUIImage = tabBarItem.image as MockUIImage
|
||||
//XCTAssert(image.checkImageString!.isEqual("smalltitle Image"), "Fail image")
|
||||
|
||||
XCTAssert(tabBarItem.font!.isEqual(defaultSmallTitleModeFont), "Fail font")
|
||||
}
|
||||
@@ -93,7 +94,7 @@ class AdaptiveControllerTests: XCTestCase {
|
||||
|
||||
var adaptiveDateState = AdaptiveDateState(installDate: installDate,currentDate:currentDate,countDaysToSmallTextState:countDaysToSmallTextState,countDaysToImageState:countDaysToImageState)
|
||||
|
||||
XCTAssert(!adaptiveDateState.isEqual(kImageAdaptiveState), "Fail ImageAdaptiveState")
|
||||
//XCTAssert(!adaptiveDateState.isEqual(kImageAdaptiveState), "Fail ImageAdaptiveState")
|
||||
|
||||
var buttonsAppearances = buttonsAppearancesGenerate()
|
||||
var tabBarItem = TestTabBarItem()
|
||||
@@ -101,14 +102,14 @@ class AdaptiveControllerTests: XCTestCase {
|
||||
|
||||
var arrayButtons = [tabBarItem]
|
||||
|
||||
AdaptiveButtonsStateManager(state: adaptiveDateState,buttonsAray:arrayButtons ,buttonsAppearance: buttonsAppearances)
|
||||
|
||||
// AdaptiveButtonsStateManager(state: adaptiveDateState,buttonsAray:arrayButtons ,buttonsAppearance: buttonsAppearances)
|
||||
AdaptiveButtonsStateManager.setupButtonsAppearanceFromState(adaptiveDateState,buttonsAray:arrayButtons ,buttonsAppearances: buttonsAppearances)
|
||||
|
||||
XCTAssert(tabBarItem.color!.isEqual(UIColor.whiteColor()), "Fail color")
|
||||
XCTAssert(UIOffsetEqualToOffset(tabBarItem.offset!,defaultOffset), "Fail offset")
|
||||
XCTAssert(UIEdgeInsetsEqualToEdgeInsets(defaultImageModeInsets, tabBarItem.insets!), "Fail insets")
|
||||
var image:MockUIImage = tabBarItem.image as MockUIImage
|
||||
XCTAssert(image.checkImageString!.isEqual("big Image"), "Fail image")
|
||||
// var image:MockUIImage = tabBarItem.image as MockUIImage
|
||||
// XCTAssert(image.checkImageString!.isEqual("big Image"), "Fail image")
|
||||
XCTAssert(tabBarItem.text!.isEqualToString(""), "Fail text")
|
||||
XCTAssert(tabBarItem.font!.isEqual(defaultFont), "Fail font")
|
||||
}
|
||||
@@ -117,48 +118,28 @@ class AdaptiveControllerTests: XCTestCase {
|
||||
func buttonsAppearancesGenerate() -> [AdaptiveButtonAppearance]{
|
||||
|
||||
|
||||
var imageExtensionsForStates:Dictionary = [ kSmallTitleAdaptiveState:"_smalltitle",
|
||||
kImageAdaptiveState:"_bigimage",
|
||||
kSmallTitleAdaptiveState+selected :"_smalltitle",
|
||||
kImageAdaptiveState+selected:"_bigimage" ]
|
||||
var settingsManager = AppearenceSettingManager()
|
||||
//
|
||||
settingsManager.defaultStyleSettingsForNormalState(AdaptiveStateEnum.DefaultAdaptiveState,titleOffset:defaultOffset, imageInsets:defaultInsets, titleColor:UIColor.whiteColor(), font:defaultFont!, backgroundColor:UIColor.clearColor())
|
||||
settingsManager.defaultStyleSettingsForNormalState(AdaptiveStateEnum.SmallTitleAdaptiveState,titleOffset:defaultOffset, imageInsets:defaultSmallTitleModeImageInsets, titleColor:UIColor.whiteColor(), font:defaultSmallTitleModeFont!, backgroundColor:UIColor.clearColor())
|
||||
|
||||
settingsManager.defaultStyleSettingsForNormalState(AdaptiveStateEnum.ImageAdaptiveState,titleOffset:defaultOffset, imageInsets:defaultImageModeInsets, titleColor:UIColor.whiteColor(), font:defaultFont!, backgroundColor:UIColor.clearColor())
|
||||
|
||||
|
||||
var watchAppearance = AdaptiveButtonAppearance();
|
||||
|
||||
watchAppearance.setButonTitle("watch", state: kDefaultAdaptiveState)
|
||||
watchAppearance.setButonTitle("watch2", state: kSmallTitleAdaptiveState)
|
||||
watchAppearance.setButonTitle("", state: kImageAdaptiveState)
|
||||
watchAppearance.setTitleColor(UIColor.whiteColor(), state: kDefaultAdaptiveState)
|
||||
|
||||
watchAppearance.setButonTitleFontForState(defaultFont, state: kDefaultAdaptiveState)
|
||||
|
||||
watchAppearance.setButonTitleFontForState(defaultSmallTitleModeFont, state: kSmallTitleAdaptiveState)
|
||||
|
||||
|
||||
//watchAppearance.setImageNamesForStatesImageExtesions("watch", imageExtensionsForState:imageExtensionsForStates)
|
||||
var watchControlDefaultStateValue = settingsManager.defaultStyleValuesForNormalState(AdaptiveStateEnum.DefaultAdaptiveState, title:"watch", imageName:"watch")
|
||||
|
||||
let mockImage = MockUIImage()
|
||||
mockImage.checkImageString = "default Image"
|
||||
var watchControlSmallTitleStateValue = settingsManager.defaultStyleValuesForNormalState(AdaptiveStateEnum.SmallTitleAdaptiveState, title:"watch", imageName:"watch_smalltitle")
|
||||
var watchControlImageStateValue = settingsManager.defaultStyleValuesForNormalState(AdaptiveStateEnum.ImageAdaptiveState, title:"", imageName:"watch_bigimage")
|
||||
|
||||
watchAppearance.setButtonImage(mockImage, state: kDefaultAdaptiveState)
|
||||
let watchAppearanceStates = [AdaptiveStateEnum.DefaultAdaptiveState:watchControlDefaultStateValue,
|
||||
AdaptiveStateEnum.SmallTitleAdaptiveState:watchControlSmallTitleStateValue,
|
||||
AdaptiveStateEnum.ImageAdaptiveState:watchControlImageStateValue]
|
||||
|
||||
|
||||
let mockSmallTitleImage = MockUIImage()
|
||||
mockSmallTitleImage.checkImageString = "smalltitle Image"
|
||||
|
||||
watchAppearance.setButtonImage(mockSmallTitleImage, state: kSmallTitleAdaptiveState)
|
||||
|
||||
let mockBigImageStateImage = MockUIImage()
|
||||
mockBigImageStateImage.checkImageString = "big Image"
|
||||
|
||||
watchAppearance.setButtonImage(mockBigImageStateImage, state: kImageAdaptiveState)
|
||||
|
||||
|
||||
watchAppearance.setImageInsets(defaultInsets, state: kDefaultAdaptiveState);
|
||||
|
||||
watchAppearance.setImageInsets(defaultSmallTitleModeImageInsets, state: kSmallTitleAdaptiveState)
|
||||
watchAppearance.setTitleOffset(defaultOffset, state: kDefaultAdaptiveState)
|
||||
watchAppearance.setImageInsets(defaultImageModeInsets, state: kImageAdaptiveState);
|
||||
var watchAppearance = AdaptiveButtonAppearance(states:watchAppearanceStates)
|
||||
|
||||
|
||||
return [watchAppearance]
|
||||
|
||||
@@ -20,9 +20,9 @@ class AdaptiveDateStateTest: XCTestCase {
|
||||
super.setUp()
|
||||
|
||||
installDate = NSDate(dateString:"2014-07-7")
|
||||
var currentDate = NSDate(dateString:"2014-07-7")
|
||||
var currentDate = NSDate(dateString:"2014-07-8")
|
||||
|
||||
adaptiveDateState = AdaptiveDateState(installDate: installDate!,currentDate:NSDate(),countDaysToSmallTextState:countDaysToSmallTextState,countDaysToImageState:countDaysToImageState)
|
||||
adaptiveDateState = AdaptiveDateState(installDate: installDate!,currentDate:currentDate,countDaysToSmallTextState:countDaysToSmallTextState,countDaysToImageState:countDaysToImageState)
|
||||
|
||||
// Put setup code here. This method is called before the invocation of each test method in the class.
|
||||
}
|
||||
@@ -34,16 +34,16 @@ class AdaptiveDateStateTest: XCTestCase {
|
||||
|
||||
func testDefaultState() {
|
||||
// This is an example of a functional test case.
|
||||
XCTAssert(!adaptiveDateState!.isEqual(kDefaultAdaptiveState), "Fail DefaultState")
|
||||
XCTAssert(adaptiveDateState?.currentItemState?.rawValue == AdaptiveStateEnum.DefaultAdaptiveState.rawValue, "Fail DefaultState")
|
||||
}
|
||||
|
||||
func testSmallTextState() {
|
||||
// This is an example of a functional test case.
|
||||
var currentDate = NSDate(dateString:"2014-07-21")
|
||||
|
||||
adaptiveDateState = AdaptiveDateState(installDate: installDate!,currentDate:NSDate(),countDaysToSmallTextState:countDaysToSmallTextState,countDaysToImageState:countDaysToImageState)
|
||||
adaptiveDateState = AdaptiveDateState(installDate: installDate!,currentDate:currentDate,countDaysToSmallTextState:countDaysToSmallTextState,countDaysToImageState:countDaysToImageState)
|
||||
|
||||
XCTAssert(!adaptiveDateState!.isEqual(kSmallTitleAdaptiveState), "Fail SmallTitleState")
|
||||
XCTAssert(adaptiveDateState?.currentItemState?.rawValue == AdaptiveStateEnum.SmallTitleAdaptiveState.rawValue, "Fail SmallTitleState")
|
||||
}
|
||||
|
||||
func testImageState() {
|
||||
@@ -52,7 +52,7 @@ class AdaptiveDateStateTest: XCTestCase {
|
||||
|
||||
adaptiveDateState = AdaptiveDateState(installDate: installDate!,currentDate:NSDate(),countDaysToSmallTextState:countDaysToSmallTextState,countDaysToImageState:countDaysToImageState)
|
||||
|
||||
XCTAssert(!adaptiveDateState!.isEqual(kImageAdaptiveState), "Fail ImageAdaptiveState")
|
||||
XCTAssert(adaptiveDateState?.currentItemState?.rawValue == AdaptiveStateEnum.ImageAdaptiveState.rawValue, "Fail ImageAdaptiveState")
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -29,7 +29,8 @@ class AdaptiveLaunchesStateTest: XCTestCase {
|
||||
|
||||
adaptiveLaunchState = AdaptiveLaunchesState(curentCountLaunches:curentCountLaunches,countLaunchesToSmallTextState:countDaysForSmaltextState,countLaunchesToImageState:countDaysForImageModeState)
|
||||
// This is an example of a functional test case.
|
||||
XCTAssert(!adaptiveLaunchState!.isEqual(kDefaultAdaptiveState), "Fail DefaultState")
|
||||
// This is an example of a functional test case.
|
||||
XCTAssert(adaptiveLaunchState?.currentItemState?.rawValue == AdaptiveStateEnum.DefaultAdaptiveState.rawValue, "Fail DefaultState")
|
||||
}
|
||||
|
||||
func testSmallTextState() {
|
||||
@@ -38,18 +39,17 @@ class AdaptiveLaunchesStateTest: XCTestCase {
|
||||
|
||||
adaptiveLaunchState = AdaptiveLaunchesState(curentCountLaunches:curentCountLaunches,countLaunchesToSmallTextState:countDaysForSmaltextState,countLaunchesToImageState:countDaysForImageModeState)
|
||||
|
||||
XCTAssert(!adaptiveLaunchState!.isEqual(kSmallTitleAdaptiveState), "Fail SmallTitleState")
|
||||
XCTAssert(adaptiveLaunchState?.currentItemState?.rawValue == AdaptiveStateEnum.SmallTitleAdaptiveState.rawValue, "Fail SmaltitleState")
|
||||
}
|
||||
|
||||
func testImageState() {
|
||||
// This is an example of a functional test case.
|
||||
var curentCountLaunches = 7
|
||||
var curentCountLaunches = 10
|
||||
|
||||
adaptiveLaunchState = AdaptiveLaunchesState(curentCountLaunches:curentCountLaunches,countLaunchesToSmallTextState:countDaysForSmaltextState,countLaunchesToImageState:countDaysForImageModeState)
|
||||
|
||||
|
||||
XCTAssert(!adaptiveLaunchState!.isEqual(kImageAdaptiveState), "Fail ImageAdaptiveState")
|
||||
|
||||
XCTAssert(adaptiveLaunchState?.currentItemState?.rawValue == AdaptiveStateEnum.ImageAdaptiveState.rawValue, "Fail ImageAdaptiveState")
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
//
|
||||
// ControlStateAppearanceTest.swift
|
||||
// AdaptiveController
|
||||
//
|
||||
// Created by Arcilite on 01.11.14.
|
||||
// Copyright (c) 2014 Ramotion. All rights reserved.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
import XCTest
|
||||
import AdaptiveController
|
||||
|
||||
//extension ControlStateAppearance{
|
||||
//
|
||||
// public func getObjectDictionary() -> Dictionary<String,AnyObject>{
|
||||
// return getObjectDictionary()
|
||||
// }
|
||||
// public func setObjectDictionary(dictionary:Dictionary<String,AnyObject>){
|
||||
// setObjectDictionary(dictionary)
|
||||
// }
|
||||
//}
|
||||
|
||||
class ControlStateAppearanceTest: 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 testControlstateAppearance() {
|
||||
|
||||
var appearance = ControlStateAppearance();
|
||||
appearance.font = UIFont(name: "Arial", size: 12)
|
||||
appearance.title = "2"
|
||||
appearance.imageInsets = UIEdgeInsetsMake(2, 2, 2, 2)
|
||||
appearance.titleOffset = UIOffsetMake(2, 2)
|
||||
appearance.titleColor = UIColor(red: 0, green: 0, blue: 0, alpha: 1)
|
||||
appearance.backgroundColor = UIColor(red: 0, green: 7, blue: 0, alpha: 1)
|
||||
|
||||
var appearance1 = ControlStateAppearance();
|
||||
appearance1.setObjectDictionary( appearance.getObjectDictionary())
|
||||
|
||||
|
||||
|
||||
XCTAssert(appearance.titleColor == appearance1.titleColor, "Fail color")
|
||||
|
||||
XCTAssert(appearance.backgroundColor == appearance1.backgroundColor, "Fail color")
|
||||
|
||||
XCTAssert(appearance1.titleColor == appearance.titleColor, "Fail color")
|
||||
XCTAssert(UIOffsetEqualToOffset(appearance1.titleOffset!,appearance.titleOffset!), "Fail offset")
|
||||
XCTAssert(UIEdgeInsetsEqualToEdgeInsets(appearance.imageInsets!, appearance1.imageInsets!), "Fail insets")
|
||||
|
||||
|
||||
}
|
||||
|
||||
func testPerformanceExample() {
|
||||
// This is an example of a performance test case.
|
||||
self.measureBlock() {
|
||||
// Put the code you want to measure the time of here.
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
//
|
||||
// ControlStateValueTest.swift
|
||||
// AdaptiveController
|
||||
//
|
||||
// Created by Arcilite on 28.10.14.
|
||||
// Copyright (c) 2014 Ramotion. All rights reserved.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
import XCTest
|
||||
import AdaptiveController
|
||||
class ControlStateValueTest: 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 testControlStateAppearance() {
|
||||
var appearance = ControlStateAppearance()
|
||||
appearance.font = UIFont(name: "Arial", size: 12)
|
||||
appearance.title = "2"
|
||||
appearance.imageInsets = UIEdgeInsetsMake(2, 2, 2, 2)
|
||||
appearance.titleOffset = UIOffsetMake(2, 2)
|
||||
appearance.titleColor = UIColor(red: 0, green: 0, blue: 0, alpha: 1)
|
||||
appearance.backgroundColor = UIColor(red: 0, green: 7, blue: 0, alpha: 1)
|
||||
|
||||
var value = ControlStateValue(values: [UIControlState.Normal.rawValue:appearance])
|
||||
// value.setControlApearence(appearance,state:UIControlState.Normal)
|
||||
var object:ControlStateAppearance = value.controlStates[UIControlState.Normal.rawValue]!
|
||||
|
||||
|
||||
XCTAssert(object.title! == appearance.title , "Pass")
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
func testControlStateAppearanceSerialization() {
|
||||
|
||||
var appearance = ControlStateAppearance()
|
||||
appearance.font = UIFont(name: "Arial", size: 12)
|
||||
appearance.title = "2"
|
||||
appearance.imageInsets = UIEdgeInsetsMake(2, 2, 2, 2)
|
||||
appearance.titleOffset = UIOffsetMake(2, 2)
|
||||
appearance.titleColor = UIColor(red: 0, green: 0, blue: 0, alpha: 1)
|
||||
appearance.backgroundColor = UIColor(red: 0, green: 7, blue: 0, alpha: 1)
|
||||
//
|
||||
var value = ControlStateValue(values: [UIControlState.Normal.rawValue:appearance])
|
||||
|
||||
var object:ControlStateAppearance = value.controlStates[UIControlState.Normal.rawValue]!
|
||||
|
||||
XCTAssert(object.title! == appearance.title , "Pass")
|
||||
|
||||
var value1 = ControlStateValue()
|
||||
value1.setObjectDictionary(value.getObjectDictionary())
|
||||
var object1:ControlStateAppearance = value.controlStates[UIControlState.Normal.rawValue]!
|
||||
XCTAssert(object1.title! == appearance.title , "Pass")
|
||||
|
||||
|
||||
XCTAssert(appearance.titleColor == object1.titleColor, "Fail color")
|
||||
|
||||
XCTAssert(appearance.backgroundColor == object1.backgroundColor, "Fail color")
|
||||
|
||||
XCTAssert(appearance.titleColor == object1.titleColor, "Fail color")
|
||||
XCTAssert(UIOffsetEqualToOffset(appearance.titleOffset!,object1.titleOffset!), "Fail offset")
|
||||
XCTAssert(UIEdgeInsetsEqualToEdgeInsets(appearance.imageInsets!, object1.imageInsets!), "Fail insets")
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
func testPerformanceExample() {
|
||||
// This is an example of a performance test case.
|
||||
self.measureBlock() {
|
||||
// Put the code you want to measure the time of here.
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -11,7 +11,7 @@ import UIKit
|
||||
import AdaptiveController
|
||||
import XCTest
|
||||
|
||||
class TestTabBarItem: AdaptiveApperanceProtocol {
|
||||
public class TestTabBarItem: AdaptiveApperanceProtocol {
|
||||
|
||||
var font:UIFont?
|
||||
var text:NSString?
|
||||
@@ -30,13 +30,13 @@ class TestTabBarItem: AdaptiveApperanceProtocol {
|
||||
self.font = font
|
||||
}
|
||||
|
||||
func setTitleToAdaptiveButton(text: NSString){
|
||||
public func setTitleToAdaptiveButton(text: NSString){
|
||||
|
||||
self.text = text;
|
||||
|
||||
}
|
||||
|
||||
func setImageToAdaptiveButton(image: UIImage?){
|
||||
public func setImageToAdaptiveButton(image: UIImage?){
|
||||
// XCTAssertNotNil(image)
|
||||
self.image = image
|
||||
|
||||
@@ -47,12 +47,12 @@ class TestTabBarItem: AdaptiveApperanceProtocol {
|
||||
|
||||
}
|
||||
|
||||
func setImageInsetsToAdaptiveButton(insets: UIEdgeInsets){
|
||||
public func setImageInsetsToAdaptiveButton(insets: UIEdgeInsets){
|
||||
self.insets = insets
|
||||
|
||||
}
|
||||
|
||||
func setTitleOffsetToAdaptiveButton(offset: UIOffset){
|
||||
public func setTitleOffsetToAdaptiveButton(offset: UIOffset){
|
||||
|
||||
self.offset = offset;
|
||||
|
||||
@@ -64,5 +64,14 @@ class TestTabBarItem: AdaptiveApperanceProtocol {
|
||||
}
|
||||
|
||||
|
||||
public func setFontToAdaptiveButton(font: UIFont , controlState:UIControlState){
|
||||
|
||||
self.font = font
|
||||
}
|
||||
|
||||
public func setTitleColorToAdaptiveButton(color: UIColor, controlState:UIControlState){
|
||||
self.color = color;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -49,44 +49,54 @@ And then you should setup an array of appearances. You should setup button image
|
||||
|
||||
And then you should setup an array of items Appearance object. You should set the button's image for each state for each appearance object.
|
||||
|
||||
First, you should setup a dictionary for the extension of the image for each UI state:
|
||||
First, you should setup a style for each UI state:
|
||||
|
||||
```swift
|
||||
var imageExtensionsForStates:Dictionary = [ kSmallTitleAdaptiveState:"_smalltitle", kImageAdaptiveState:"_bigimage", kSmallTitleAdaptiveState+selected :"_smalltitle", kImageAdaptiveState+selected:"_bigimage" ]
|
||||
```swift
|
||||
var settingsManager = AppearenceSettingManager()
|
||||
settingsManager.defaultStyleSettingsForNormalState(AdaptiveStateEnum.DefaultAdaptiveState,titleOffset:defaultOffset, imageInsets:defaultInsets, titleColor:UIColor.whiteColor(), font:defaultFont!, backgroundColor:UIColor.clearColor())
|
||||
settingsManager.defaultStyleSettingsForNormalState(AdaptiveStateEnum.SmallTitleAdaptiveState,titleOffset:defaultOffset, imageInsets:defaultSmallTitleModeImageInsets, titleColor:UIColor.whiteColor(), font:defaultSmallTitleModeFont!, backgroundColor:UIColor.clearColor())
|
||||
settingsManager.defaultStyleSettingsForNormalState(AdaptiveStateEnum.ImageAdaptiveState,titleOffset:defaultOffset, imageInsets:defaultImageModeInsets, titleColor:UIColor.whiteColor(), font:defaultFont!, backgroundColor:UIColor.clearColor())
|
||||
```
|
||||
Then you should set the Appearance for each UITabBarItem title for each state, fonts for each state, a default image if you describe an extension for each state, or if you do not describe an extension, you should setup each image for each state.
|
||||
Then you should set the Appearance for each UITabBarItem title for each state and image for each state
|
||||
|
||||
First, init the appearance object and setup the text for each state. If the text is the same for each state, you can set text for the default state:
|
||||
First, init the appearance values with title and image with presetes appearances style :
|
||||
|
||||
```swift
|
||||
var watchAppearance = AdaptiveButtonAppearance();
|
||||
watchAppearance.setButonTitle("watch", state: kDefaultAdaptiveState)
|
||||
watchAppearance.setButonTitle("watch", state: kSmallTitleAdaptiveState)
|
||||
watchAppearance.setButonTitle("", state: kImageAdaptiveState)
|
||||
```swift
|
||||
var messageСontrolDefaultStateValue = settingsManager.defaultStyleValuesForNormalState(AdaptiveStateEnum.DefaultAdaptiveState, title:"messages", imageName:"messages")
|
||||
var messageControlSmallTitleStateValue = settingsManager.defaultStyleValuesForNormalState(AdaptiveStateEnum.SmallTitleAdaptiveState, title:"messages", imageName:"messages_smalltitle")
|
||||
var messageControlImageStateValue = settingsManager.defaultStyleValuesForNormalState(AdaptiveStateEnum.ImageAdaptiveState, title:"", imageName:"messages_bigimage")
|
||||
```
|
||||
|
||||
Then you should setup your fonts for each state:
|
||||
then init appearace opject with aprerance object for each state
|
||||
|
||||
```swift
|
||||
watchAppearance.setButonTitleFontForState(yourDefaultFont, state: kDefaultAdaptiveState)
|
||||
watchAppearance.setButonTitleFontForState(yourDefaultSmallTitleModeFont, state: kSmallTitleAdaptiveState)
|
||||
let messageAppearanceStates = [AdaptiveStateEnum.DefaultAdaptiveState:messageСontrolDefaultStateValue,
|
||||
AdaptiveStateEnum.SmallTitleAdaptiveState:messageControlSmallTitleStateValue,
|
||||
AdaptiveStateEnum.ImageAdaptiveState:messageControlImageStateValue]
|
||||
var messageAperance = AdaptiveButtonAppearance(states:messageAppearanceStates)
|
||||
es)
|
||||
```
|
||||
|
||||
Then you should set the default image and extensions for each state a function which automaticaly sets images for each state:
|
||||
In alternative way you can setup all appearances settings in plist like on image
|
||||
|
||||
```swift
|
||||
watchAppearance.setImageNamesForStatesImageExtesions("watch", imageExtensionsForState:imageExtensionsForStates)
|
||||

|
||||
|
||||
sample of plist you can find in example-date-adaptive-tab-bar project file named appearances.plist
|
||||
|
||||
for setuping button appearences from plist you can use this code:
|
||||
|
||||
```swift
|
||||
var seriliazator = DictioanarySeriliazator()
|
||||
var butonsApperances = seriliazator.getButtonApperances(path!)
|
||||
```
|
||||
|
||||
Then you should setup the appearance insets for each state:
|
||||
|
||||
```swift
|
||||
watchAppearance.setImageInsets(defaultInsets, state: kDefaultAdaptiveState);
|
||||
watchAppearance.setImageInsets(defaultSmallTitleModeImageInsets, state: kSmallTitleAdaptiveState)
|
||||
watchAppearance.setTitleOffset(defaultOffset, state: kDefaultAdaptiveState)
|
||||
watchAppearance.setImageInsets(defaultImageModeInsets, state: kImageAdaptiveState);
|
||||
```
|
||||
for debugging button appearences you can save your aperances in plist for this you can use next code:
|
||||
|
||||
```swift
|
||||
var paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String
|
||||
paths = paths.stringByAppendingPathComponent("appearances.plist")
|
||||
seriliazator.saveStateDictionary(butonsApperances,filePath:paths)
|
||||
```
|
||||
|
||||
Then you should setup сustom UITabBarItems which conform to the AdaptiveButtonsProtocol:
|
||||
|
||||
```swift
|
||||
|
||||
@@ -37,106 +37,31 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
|
||||
tabBar.barTintColor = tabColor
|
||||
tabBar.clipsToBounds = true
|
||||
|
||||
var installDate = NSDate(dateString:"2014-07-7")
|
||||
var installDate = NSDate(dateString:"2014-10-22")
|
||||
|
||||
|
||||
var adaptiveState = AdaptiveDateState(installDate: installDate,currentDate:NSDate(),countDaysToSmallTextState:countDaysToSmallTextState,countDaysToImageState:countDaysToImageState)
|
||||
|
||||
let path = NSBundle.mainBundle().pathForResource("appearances", ofType: "plist")
|
||||
|
||||
var butonsApperances = buttonsAppearancesGenerate()
|
||||
var serializer = DictioanarySerializer()
|
||||
|
||||
|
||||
var butonsApperances = serializer.parseFromPlistToButtonAppearances(path!)
|
||||
|
||||
|
||||
var arrayButtons = tabBar.items as [AdaptiveTabBarItem]
|
||||
|
||||
AdaptiveButtonsStateManager(state: adaptiveState,buttonsAray:arrayButtons ,buttonsAppearance: butonsApperances)
|
||||
var arrayButtons = tabBar.items as [UITabBarItem]
|
||||
|
||||
|
||||
|
||||
AdaptiveButtonsStateManager.setupButtonsAppearanceFromState(adaptiveState,buttonsAray:arrayButtons ,buttonsAppearances: butonsApperances)
|
||||
|
||||
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
|
||||
func buttonsAppearancesGenerate() -> [AdaptiveButtonAppearance]{
|
||||
|
||||
|
||||
var imageExtensionsForStates:Dictionary = [ kDefaultAdaptiveState:"",
|
||||
kSmallTitleAdaptiveState:"_smalltitle",
|
||||
kImageAdaptiveState:"_bigimage",
|
||||
kSmallTitleAdaptiveState+selected :"_smalltitle",
|
||||
kImageAdaptiveState+selected:"_bigimage" ]
|
||||
|
||||
|
||||
var watchAperance = AdaptiveButtonAppearance();
|
||||
|
||||
watchAperance.setButonTitle("watch", state: kDefaultAdaptiveState)
|
||||
watchAperance.setButonTitle("watch", state: kSmallTitleAdaptiveState)
|
||||
watchAperance.setButonTitle("", state: kImageAdaptiveState)
|
||||
watchAperance.setTitleColor(UIColor.whiteColor(), state: kDefaultAdaptiveState)
|
||||
|
||||
watchAperance.setButonTitleFontForState(defaultFont, state: kDefaultAdaptiveState)
|
||||
|
||||
watchAperance.setButonTitleFontForState(defaultSmallTitleModeFont, state: kSmallTitleAdaptiveState)
|
||||
|
||||
|
||||
watchAperance.setImageNamesForStatesImageExtesions("watch", imageExtensionsForState:imageExtensionsForStates)
|
||||
|
||||
|
||||
watchAperance.setImageInsets(defaultInsets, state: kDefaultAdaptiveState);
|
||||
|
||||
watchAperance.setImageInsets(defaultSmallTitleModeImageInsets, state: kSmallTitleAdaptiveState)
|
||||
watchAperance.setTitleOffset(defaultOffset, state: kDefaultAdaptiveState)
|
||||
watchAperance.setImageInsets(defaultImageModeInsets, state: kImageAdaptiveState);
|
||||
|
||||
|
||||
var userAperance = AdaptiveButtonAppearance();
|
||||
|
||||
|
||||
userAperance.setAllCommonApperanceFrom(watchAperance)
|
||||
|
||||
userAperance.setButonTitle("user", state: kDefaultAdaptiveState)
|
||||
userAperance.setButonTitle("", state: kImageAdaptiveState)
|
||||
userAperance.setImageNamesForStatesImageExtesions("man", imageExtensionsForState:imageExtensionsForStates)
|
||||
|
||||
|
||||
|
||||
var messageAperance = AdaptiveButtonAppearance();
|
||||
|
||||
messageAperance.setAllCommonApperanceFrom((watchAperance))
|
||||
|
||||
messageAperance.setButonTitle("message", state: kDefaultAdaptiveState)
|
||||
messageAperance.setButonTitle("", state: kImageAdaptiveState)
|
||||
|
||||
messageAperance.setImageNamesForStatesImageExtesions("messages", imageExtensionsForState:imageExtensionsForStates)
|
||||
|
||||
|
||||
|
||||
|
||||
var menuAperance = AdaptiveButtonAppearance();
|
||||
|
||||
|
||||
menuAperance.setAllCommonApperanceFrom((watchAperance))
|
||||
|
||||
menuAperance.setButonTitle("dial", state: kDefaultAdaptiveState)
|
||||
menuAperance.setButonTitle("", state: kImageAdaptiveState)
|
||||
menuAperance.setImageNamesForStatesImageExtesions("menu", imageExtensionsForState:imageExtensionsForStates)
|
||||
|
||||
|
||||
|
||||
var moreAperance = AdaptiveButtonAppearance();
|
||||
|
||||
moreAperance.setAllCommonApperanceFrom((watchAperance))
|
||||
|
||||
moreAperance.setButonTitle("more", state: kDefaultAdaptiveState)
|
||||
moreAperance.setButonTitle("", state: kImageAdaptiveState)
|
||||
|
||||
moreAperance.setImageNamesForStatesImageExtesions("more", imageExtensionsForState:imageExtensionsForStates)
|
||||
|
||||
|
||||
|
||||
return [watchAperance ,messageAperance,userAperance,menuAperance,moreAperance]
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="6245" systemVersion="13F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES">
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="6250" systemVersion="14A389" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES">
|
||||
<dependencies>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6238"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6244"/>
|
||||
<capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="6245" systemVersion="13F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="49e-Tb-3d3">
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="6250" systemVersion="14A389" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="49e-Tb-3d3">
|
||||
<dependencies>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6238"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6244"/>
|
||||
<capability name="Constraints to layout margins" minToolsVersion="6.0"/>
|
||||
</dependencies>
|
||||
<scenes>
|
||||
<!--First-->
|
||||
<scene sceneID="hNz-n2-bh7">
|
||||
<objects>
|
||||
<viewController id="9pv-A4-QxB" customClass="WatchViewController" customModule="adaptive_tab_bar" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<viewController id="9pv-A4-QxB" customClass="WatchViewController" customModule="example_date_adaptive_tab_bar" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<layoutGuides>
|
||||
<viewControllerLayoutGuide type="top" id="Ia1-K6-d13"/>
|
||||
<viewControllerLayoutGuide type="bottom" id="4ug-Mw-9AY"/>
|
||||
@@ -29,19 +30,23 @@
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="background" translatesAutoresizingMaskIntoConstraints="NO" id="bTY-b5-lYl">
|
||||
<rect key="frame" x="0.0" y="0.0" width="640" height="550"/>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="background" translatesAutoresizingMaskIntoConstraints="NO" id="bTY-b5-lYl">
|
||||
<rect key="frame" x="0.0" y="0.0" width="640" height="551"/>
|
||||
</imageView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstItem="4ug-Mw-9AY" firstAttribute="top" secondItem="bTY-b5-lYl" secondAttribute="bottom" id="57C-0I-UhP"/>
|
||||
<constraint firstAttribute="centerX" secondItem="KQZ-1w-vlD" secondAttribute="centerX" id="6BV-lF-sBN"/>
|
||||
<constraint firstItem="A5M-7J-77L" firstAttribute="top" secondItem="KQZ-1w-vlD" secondAttribute="bottom" constant="8" symbolic="YES" id="cfb-er-3JN"/>
|
||||
<constraint firstItem="A5M-7J-77L" firstAttribute="centerX" secondItem="KQZ-1w-vlD" secondAttribute="centerX" id="e1l-AV-tCB"/>
|
||||
<constraint firstAttribute="centerY" secondItem="KQZ-1w-vlD" secondAttribute="centerY" id="exm-UA-ej4"/>
|
||||
<constraint firstItem="bTY-b5-lYl" firstAttribute="top" secondItem="tsR-hK-woN" secondAttribute="top" id="kWQ-y6-H6g"/>
|
||||
<constraint firstAttribute="trailing" secondItem="bTY-b5-lYl" secondAttribute="trailing" constant="-40" id="sYy-Hj-V1a"/>
|
||||
<constraint firstItem="bTY-b5-lYl" firstAttribute="leading" secondItem="tsR-hK-woN" secondAttribute="leading" id="ueh-EO-Puf"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<tabBarItem key="tabBarItem" title="First" id="acW-dT-cKf" customClass="AdaptiveTabBarItem" customModule="adaptive_tab_bar" customModuleProvider="target"/>
|
||||
<tabBarItem key="tabBarItem" title="First" id="acW-dT-cKf" customClass="AdaptiveTabBarItem" customModule="example_date_adaptive_tab_bar" customModuleProvider="target"/>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="W5J-7L-Pyd" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
@@ -50,7 +55,7 @@
|
||||
<!--Second-->
|
||||
<scene sceneID="wg7-f3-ORb">
|
||||
<objects>
|
||||
<viewController id="8rJ-Kc-sve" customClass="MessageViewController" customModule="adaptive_tab_bar" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<viewController id="8rJ-Kc-sve" customClass="MessageViewController" customModule="example_date_adaptive_tab_bar" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<layoutGuides>
|
||||
<viewControllerLayoutGuide type="top" id="L7p-HK-0SC"/>
|
||||
<viewControllerLayoutGuide type="bottom" id="Djb-ko-YwX"/>
|
||||
@@ -72,19 +77,23 @@
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="background" translatesAutoresizingMaskIntoConstraints="NO" id="d3m-k5-qah">
|
||||
<rect key="frame" x="0.0" y="0.0" width="640" height="550"/>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="background" translatesAutoresizingMaskIntoConstraints="NO" id="d3m-k5-qah">
|
||||
<rect key="frame" x="0.0" y="0.0" width="640" height="551"/>
|
||||
</imageView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="trailing" secondItem="d3m-k5-qah" secondAttribute="trailing" constant="-40" id="8KS-iG-8XT"/>
|
||||
<constraint firstItem="NDk-cv-Gan" firstAttribute="top" secondItem="zEq-FU-wV5" secondAttribute="bottom" constant="8" symbolic="YES" id="Day-4N-Vmt"/>
|
||||
<constraint firstItem="NDk-cv-Gan" firstAttribute="centerX" secondItem="zEq-FU-wV5" secondAttribute="centerX" id="JgO-Fn-dHn"/>
|
||||
<constraint firstItem="d3m-k5-qah" firstAttribute="leading" secondItem="QS5-Rx-YEW" secondAttribute="leading" id="X9o-k0-h62"/>
|
||||
<constraint firstAttribute="centerX" secondItem="zEq-FU-wV5" secondAttribute="centerX" id="qqM-NS-xev"/>
|
||||
<constraint firstAttribute="centerY" secondItem="zEq-FU-wV5" secondAttribute="centerY" id="qzY-Ky-pLD"/>
|
||||
<constraint firstItem="d3m-k5-qah" firstAttribute="top" secondItem="QS5-Rx-YEW" secondAttribute="top" id="tA2-Eh-fSb"/>
|
||||
<constraint firstItem="Djb-ko-YwX" firstAttribute="top" secondItem="d3m-k5-qah" secondAttribute="bottom" id="zws-Zn-RsZ"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<tabBarItem key="tabBarItem" title="Second" image="second" id="cPa-gy-q4n" customClass="AdaptiveTabBarItem" customModule="adaptive_tab_bar" customModuleProvider="target"/>
|
||||
<tabBarItem key="tabBarItem" title="Second" image="second" id="cPa-gy-q4n" customClass="AdaptiveTabBarItem" customModule="example_count_launches_adaptive_tabbar"/>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="4Nw-L8-lE0" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
@@ -93,7 +102,7 @@
|
||||
<!--Tab Bar View Controller-->
|
||||
<scene sceneID="yl2-sM-qoP">
|
||||
<objects>
|
||||
<tabBarController id="49e-Tb-3d3" customClass="TabBarViewController" customModule="adaptive_tab_bar" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<tabBarController id="49e-Tb-3d3" customClass="TabBarViewController" customModule="example_date_adaptive_tab_bar" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<nil key="simulatedBottomBarMetrics"/>
|
||||
<tabBar key="tabBar" contentMode="scaleToFill" id="W28-zg-YXA">
|
||||
<rect key="frame" x="0.0" y="975" width="768" height="49"/>
|
||||
@@ -115,7 +124,7 @@
|
||||
<!--Item-->
|
||||
<scene sceneID="60i-zg-cAx">
|
||||
<objects>
|
||||
<viewController id="BiK-DX-JK5" customClass="UserViewController" customModule="adaptive_tab_bar" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<viewController id="BiK-DX-JK5" customClass="UserViewController" customModule="example_date_adaptive_tab_bar" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<layoutGuides>
|
||||
<viewControllerLayoutGuide type="top" id="oSS-7K-rER"/>
|
||||
<viewControllerLayoutGuide type="bottom" id="Ba7-rp-yUE"/>
|
||||
@@ -124,13 +133,19 @@
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="background" translatesAutoresizingMaskIntoConstraints="NO" id="jtr-dW-8XE">
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="background" translatesAutoresizingMaskIntoConstraints="NO" id="jtr-dW-8XE">
|
||||
<rect key="frame" x="0.0" y="0.0" width="640" height="555"/>
|
||||
</imageView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="trailing" secondItem="jtr-dW-8XE" secondAttribute="trailing" constant="-40" id="68Q-YE-GnZ"/>
|
||||
<constraint firstItem="jtr-dW-8XE" firstAttribute="leading" secondItem="Z9a-At-6Ll" secondAttribute="leading" id="9Lc-1F-lVY"/>
|
||||
<constraint firstAttribute="bottom" secondItem="jtr-dW-8XE" secondAttribute="bottom" constant="45" id="iHg-vq-ehR"/>
|
||||
<constraint firstItem="jtr-dW-8XE" firstAttribute="top" secondItem="Z9a-At-6Ll" secondAttribute="top" id="zds-Uy-hOW"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<tabBarItem key="tabBarItem" title="Item" id="g86-Lf-lWF" customClass="AdaptiveTabBarItem" customModule="adaptive_tab_bar" customModuleProvider="target"/>
|
||||
<tabBarItem key="tabBarItem" title="Item" id="g86-Lf-lWF" customClass="AdaptiveTabBarItem" customModule="example_date_adaptive_tab_bar" customModuleProvider="target"/>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="Ds1-lP-WuT" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
@@ -139,7 +154,7 @@
|
||||
<!--Item-->
|
||||
<scene sceneID="RUI-wr-KlE">
|
||||
<objects>
|
||||
<viewController id="aXk-96-nwf" customClass="MenuViewController" customModule="adaptive_tab_bar" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<viewController id="aXk-96-nwf" customClass="MenuViewController" customModule="example_date_adaptive_tab_bar" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<layoutGuides>
|
||||
<viewControllerLayoutGuide type="top" id="Aha-rh-ib6"/>
|
||||
<viewControllerLayoutGuide type="bottom" id="aNR-L8-QaD"/>
|
||||
@@ -148,13 +163,20 @@
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="background" translatesAutoresizingMaskIntoConstraints="NO" id="GGw-pn-6CX">
|
||||
<rect key="frame" x="0.0" y="0.0" width="640" height="550"/>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="background" translatesAutoresizingMaskIntoConstraints="NO" id="GGw-pn-6CX">
|
||||
<rect key="frame" x="0.0" y="0.0" width="640" height="551"/>
|
||||
</imageView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstItem="GGw-pn-6CX" firstAttribute="top" secondItem="UyR-nf-sp6" secondAttribute="topMargin" id="JNr-AP-tWr"/>
|
||||
<constraint firstItem="GGw-pn-6CX" firstAttribute="top" secondItem="UyR-nf-sp6" secondAttribute="topMargin" id="MSj-7q-ac7"/>
|
||||
<constraint firstItem="GGw-pn-6CX" firstAttribute="leading" secondItem="UyR-nf-sp6" secondAttribute="leading" id="SZF-JG-V57"/>
|
||||
<constraint firstItem="aNR-L8-QaD" firstAttribute="top" secondItem="GGw-pn-6CX" secondAttribute="bottom" id="YDT-AA-Wjy"/>
|
||||
<constraint firstItem="aNR-L8-QaD" firstAttribute="top" secondItem="GGw-pn-6CX" secondAttribute="bottom" id="nys-sX-kRN"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<tabBarItem key="tabBarItem" title="Item" id="RnB-fU-3RS" customClass="AdaptiveTabBarItem" customModule="adaptive_tab_bar" customModuleProvider="target"/>
|
||||
<tabBarItem key="tabBarItem" title="Item" id="RnB-fU-3RS" customClass="AdaptiveTabBarItem" customModule="example_date_adaptive_tab_bar" customModuleProvider="target"/>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="Hsc-p3-elF" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
@@ -163,7 +185,7 @@
|
||||
<!--Item-->
|
||||
<scene sceneID="B98-FR-Rjt">
|
||||
<objects>
|
||||
<viewController id="BgE-dr-gW8" customClass="MoreViewController" customModule="adaptive_tab_bar" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<viewController id="BgE-dr-gW8" customClass="MoreViewController" customModule="example_date_adaptive_tab_bar" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<layoutGuides>
|
||||
<viewControllerLayoutGuide type="top" id="r9s-DG-v8Y"/>
|
||||
<viewControllerLayoutGuide type="bottom" id="mju-qR-F4m"/>
|
||||
@@ -172,13 +194,19 @@
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="background" translatesAutoresizingMaskIntoConstraints="NO" id="fel-JW-y8K">
|
||||
<rect key="frame" x="0.0" y="0.0" width="640" height="550"/>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="background" translatesAutoresizingMaskIntoConstraints="NO" id="fel-JW-y8K">
|
||||
<rect key="frame" x="16" y="0.0" width="568" height="551"/>
|
||||
</imageView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstItem="mju-qR-F4m" firstAttribute="top" secondItem="fel-JW-y8K" secondAttribute="bottom" id="czL-kW-Gi5"/>
|
||||
<constraint firstItem="fel-JW-y8K" firstAttribute="top" secondItem="dgq-yB-Neb" secondAttribute="top" id="h6H-Nt-0EU"/>
|
||||
<constraint firstItem="fel-JW-y8K" firstAttribute="leading" secondItem="dgq-yB-Neb" secondAttribute="leading" constant="16" id="lvq-kK-shl"/>
|
||||
<constraint firstAttribute="trailing" secondItem="fel-JW-y8K" secondAttribute="trailing" constant="16" id="mnN-oR-w60"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<tabBarItem key="tabBarItem" title="Item" id="uWZ-JL-cND" customClass="AdaptiveTabBarItem" customModule="adaptive_tab_bar" customModuleProvider="target"/>
|
||||
<tabBarItem key="tabBarItem" title="Item" id="uWZ-JL-cND" customClass="AdaptiveTabBarItem" customModule="example_date_adaptive_tab_bar" customModuleProvider="target"/>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="xAq-zT-Wnn" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
|
||||
@@ -9,21 +9,19 @@
|
||||
import UIKit
|
||||
import AdaptiveController
|
||||
|
||||
class AdaptiveTabBarItem: UITabBarItem , AdaptiveApperanceProtocol {
|
||||
|
||||
|
||||
extension UITabBarItem : AdaptiveApperanceProtocol {
|
||||
|
||||
|
||||
override init(){
|
||||
super.init()
|
||||
|
||||
}
|
||||
// override init(){
|
||||
// super.init()
|
||||
//
|
||||
// }
|
||||
|
||||
func setFontToAdaptiveButton(font: UIFont){
|
||||
|
||||
self.setTitleTextAttributes(NSDictionary(objects: [font], forKeys: [NSFontAttributeName]), forState: UIControlState.Normal)
|
||||
|
||||
}
|
||||
|
||||
|
||||
func setTitleToAdaptiveButton(text: NSString){
|
||||
public func setTitleToAdaptiveButton(text: NSString){
|
||||
self.title = text
|
||||
}
|
||||
|
||||
@@ -31,24 +29,41 @@ class AdaptiveTabBarItem: UITabBarItem , AdaptiveApperanceProtocol {
|
||||
self.image = image
|
||||
}
|
||||
|
||||
func setSelectedImageToAdaptiveButton(image: UIImage?){
|
||||
public func setSelectedImageToAdaptiveButton(image: UIImage?){
|
||||
self.selectedImage = image
|
||||
}
|
||||
|
||||
func setImageInsetsToAdaptiveButton(insets: UIEdgeInsets){
|
||||
public func setImageInsetsToAdaptiveButton(insets: UIEdgeInsets){
|
||||
self.imageInsets = insets
|
||||
}
|
||||
|
||||
func setTitleOffsetToAdaptiveButton(offset: UIOffset){
|
||||
public func setTitleOffsetToAdaptiveButton(offset: UIOffset){
|
||||
self.setTitlePositionAdjustment(offset)
|
||||
}
|
||||
|
||||
func setTitleColorToAdaptiveButton(color: UIColor){
|
||||
var dictionary = self.titleTextAttributesForState(UIControlState.Normal)
|
||||
dictionary.updateValue(color, forKey: NSForegroundColorAttributeName)
|
||||
self.setTitleTextAttributes(dictionary, forState: UIControlState.Normal)
|
||||
// public func setTitleColorToAdaptiveButton(color: UIColor){
|
||||
// var dictionary = self.titleTextAttributesForState(UIControlState.Normal)
|
||||
// dictionary.updateValue(color, forKey: NSForegroundColorAttributeName)
|
||||
// self.setTitleTextAttributes(dictionary, forState: UIControlState.Normal)
|
||||
// }
|
||||
//
|
||||
// public func setFontToAdaptiveButton(font: UIFont){
|
||||
//
|
||||
// self.setTitleTextAttributes(NSDictionary(objects: [font], forKeys: [NSFontAttributeName]), forState: UIControlState.Normal)
|
||||
//
|
||||
// }
|
||||
//
|
||||
public func setFontToAdaptiveButton(font: UIFont , controlState:UIControlState){
|
||||
|
||||
self.setTitleTextAttributes(NSDictionary(objects: [font], forKeys: [NSFontAttributeName]), forState: controlState)
|
||||
|
||||
}
|
||||
|
||||
public func setTitleColorToAdaptiveButton(color: UIColor, controlState:UIControlState){
|
||||
var dictionary = self.titleTextAttributesForState(controlState)
|
||||
dictionary.updateValue(color, forKey: NSForegroundColorAttributeName)
|
||||
self.setTitleTextAttributes(dictionary, forState: controlState)
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -9,9 +9,8 @@
|
||||
import UIKit
|
||||
|
||||
extension NSDate{
|
||||
convenience
|
||||
|
||||
init(dateString:String) {
|
||||
convenience init(dateString:String) {
|
||||
let dateStringFormatter = NSDateFormatter()
|
||||
dateStringFormatter.dateFormat = "yyyy-MM-dd"
|
||||
dateStringFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
|
||||
|
||||
@@ -0,0 +1,871 @@
|
||||
<?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">
|
||||
<array>
|
||||
<dict>
|
||||
<key>kDefaultAdaptiveState</key>
|
||||
<dict>
|
||||
<key>UIControlStateNormal</key>
|
||||
<dict>
|
||||
<key>backgroundColor</key>
|
||||
<dict>
|
||||
<key>alpha</key>
|
||||
<real>0</real>
|
||||
<key>blue</key>
|
||||
<real>0</real>
|
||||
<key>green</key>
|
||||
<real>0</real>
|
||||
<key>red</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>color</key>
|
||||
<dict>
|
||||
<key>alpha</key>
|
||||
<real>1</real>
|
||||
<key>blue</key>
|
||||
<real>1</real>
|
||||
<key>green</key>
|
||||
<real>1</real>
|
||||
<key>red</key>
|
||||
<real>1</real>
|
||||
</dict>
|
||||
<key>font</key>
|
||||
<dict>
|
||||
<key>fontName</key>
|
||||
<string>Helvetica</string>
|
||||
<key>fontSize</key>
|
||||
<real>14</real>
|
||||
</dict>
|
||||
<key>imageInsets</key>
|
||||
<dict>
|
||||
<key>bottom</key>
|
||||
<real>0</real>
|
||||
<key>left</key>
|
||||
<real>0</real>
|
||||
<key>right</key>
|
||||
<real>0</real>
|
||||
<key>top</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>imageName</key>
|
||||
<string>watch</string>
|
||||
<key>title</key>
|
||||
<string>watch</string>
|
||||
<key>titleOffset</key>
|
||||
<dict>
|
||||
<key>horizontal</key>
|
||||
<real>0</real>
|
||||
<key>vertical</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>kImageAdaptiveState</key>
|
||||
<dict>
|
||||
<key>UIControlStateNormal</key>
|
||||
<dict>
|
||||
<key>backgroundColor</key>
|
||||
<dict>
|
||||
<key>alpha</key>
|
||||
<real>0</real>
|
||||
<key>blue</key>
|
||||
<real>0</real>
|
||||
<key>green</key>
|
||||
<real>0</real>
|
||||
<key>red</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>color</key>
|
||||
<dict>
|
||||
<key>alpha</key>
|
||||
<real>1</real>
|
||||
<key>blue</key>
|
||||
<real>0</real>
|
||||
<key>green</key>
|
||||
<real>0</real>
|
||||
<key>red</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>font</key>
|
||||
<dict>
|
||||
<key>fontName</key>
|
||||
<string>Helvetica</string>
|
||||
<key>fontSize</key>
|
||||
<real>14</real>
|
||||
</dict>
|
||||
<key>imageInsets</key>
|
||||
<dict>
|
||||
<key>bottom</key>
|
||||
<real>-6</real>
|
||||
<key>left</key>
|
||||
<real>0</real>
|
||||
<key>right</key>
|
||||
<real>0</real>
|
||||
<key>top</key>
|
||||
<real>6</real>
|
||||
</dict>
|
||||
<key>imageName</key>
|
||||
<string>watch_bigimage</string>
|
||||
<key>title</key>
|
||||
<string></string>
|
||||
<key>titleOffset</key>
|
||||
<dict>
|
||||
<key>horizontal</key>
|
||||
<real>0</real>
|
||||
<key>vertical</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>kSmallTitleAdaptiveState</key>
|
||||
<dict>
|
||||
<key>UIControlStateNormal</key>
|
||||
<dict>
|
||||
<key>backgroundColor</key>
|
||||
<dict>
|
||||
<key>alpha</key>
|
||||
<real>0</real>
|
||||
<key>blue</key>
|
||||
<real>0</real>
|
||||
<key>green</key>
|
||||
<real>0</real>
|
||||
<key>red</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>color</key>
|
||||
<dict>
|
||||
<key>alpha</key>
|
||||
<real>1</real>
|
||||
<key>blue</key>
|
||||
<real>1</real>
|
||||
<key>green</key>
|
||||
<real>1</real>
|
||||
<key>red</key>
|
||||
<real>1</real>
|
||||
</dict>
|
||||
<key>font</key>
|
||||
<dict>
|
||||
<key>fontName</key>
|
||||
<string>Helvetica</string>
|
||||
<key>fontSize</key>
|
||||
<real>10</real>
|
||||
</dict>
|
||||
<key>imageInsets</key>
|
||||
<dict>
|
||||
<key>bottom</key>
|
||||
<real>0</real>
|
||||
<key>left</key>
|
||||
<real>0</real>
|
||||
<key>right</key>
|
||||
<real>0</real>
|
||||
<key>top</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>imageName</key>
|
||||
<string>watch_smalltitle</string>
|
||||
<key>title</key>
|
||||
<string>watch</string>
|
||||
<key>titleOffset</key>
|
||||
<dict>
|
||||
<key>horizontal</key>
|
||||
<real>0</real>
|
||||
<key>vertical</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>kDefaultAdaptiveState</key>
|
||||
<dict>
|
||||
<key>UIControlStateNormal</key>
|
||||
<dict>
|
||||
<key>backgroundColor</key>
|
||||
<dict>
|
||||
<key>alpha</key>
|
||||
<real>0</real>
|
||||
<key>blue</key>
|
||||
<real>0</real>
|
||||
<key>green</key>
|
||||
<real>0</real>
|
||||
<key>red</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>color</key>
|
||||
<dict>
|
||||
<key>alpha</key>
|
||||
<real>1</real>
|
||||
<key>blue</key>
|
||||
<real>1</real>
|
||||
<key>green</key>
|
||||
<real>1</real>
|
||||
<key>red</key>
|
||||
<real>1</real>
|
||||
</dict>
|
||||
<key>font</key>
|
||||
<dict>
|
||||
<key>fontName</key>
|
||||
<string>Helvetica</string>
|
||||
<key>fontSize</key>
|
||||
<real>14</real>
|
||||
</dict>
|
||||
<key>imageInsets</key>
|
||||
<dict>
|
||||
<key>bottom</key>
|
||||
<real>0</real>
|
||||
<key>left</key>
|
||||
<real>0</real>
|
||||
<key>right</key>
|
||||
<real>0</real>
|
||||
<key>top</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>imageName</key>
|
||||
<string>messages</string>
|
||||
<key>title</key>
|
||||
<string>message</string>
|
||||
<key>titleOffset</key>
|
||||
<dict>
|
||||
<key>horizontal</key>
|
||||
<real>0</real>
|
||||
<key>vertical</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>kImageAdaptiveState</key>
|
||||
<dict>
|
||||
<key>UIControlStateNormal</key>
|
||||
<dict>
|
||||
<key>backgroundColor</key>
|
||||
<dict>
|
||||
<key>alpha</key>
|
||||
<real>0</real>
|
||||
<key>blue</key>
|
||||
<real>0</real>
|
||||
<key>green</key>
|
||||
<real>0</real>
|
||||
<key>red</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>color</key>
|
||||
<dict>
|
||||
<key>alpha</key>
|
||||
<real>1</real>
|
||||
<key>blue</key>
|
||||
<real>0</real>
|
||||
<key>green</key>
|
||||
<real>0</real>
|
||||
<key>red</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>font</key>
|
||||
<dict>
|
||||
<key>fontName</key>
|
||||
<string>Helvetica</string>
|
||||
<key>fontSize</key>
|
||||
<real>14</real>
|
||||
</dict>
|
||||
<key>imageInsets</key>
|
||||
<dict>
|
||||
<key>bottom</key>
|
||||
<real>-6</real>
|
||||
<key>left</key>
|
||||
<real>0</real>
|
||||
<key>right</key>
|
||||
<real>0</real>
|
||||
<key>top</key>
|
||||
<real>6</real>
|
||||
</dict>
|
||||
<key>imageName</key>
|
||||
<string>messages_bigimage</string>
|
||||
<key>title</key>
|
||||
<string></string>
|
||||
<key>titleOffset</key>
|
||||
<dict>
|
||||
<key>horizontal</key>
|
||||
<real>0</real>
|
||||
<key>vertical</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>kSmallTitleAdaptiveState</key>
|
||||
<dict>
|
||||
<key>UIControlStateNormal</key>
|
||||
<dict>
|
||||
<key>backgroundColor</key>
|
||||
<dict>
|
||||
<key>alpha</key>
|
||||
<real>0</real>
|
||||
<key>blue</key>
|
||||
<real>0</real>
|
||||
<key>green</key>
|
||||
<real>0</real>
|
||||
<key>red</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>color</key>
|
||||
<dict>
|
||||
<key>alpha</key>
|
||||
<real>1</real>
|
||||
<key>blue</key>
|
||||
<real>1</real>
|
||||
<key>green</key>
|
||||
<real>1</real>
|
||||
<key>red</key>
|
||||
<real>1</real>
|
||||
</dict>
|
||||
<key>font</key>
|
||||
<dict>
|
||||
<key>fontName</key>
|
||||
<string>Helvetica</string>
|
||||
<key>fontSize</key>
|
||||
<real>10</real>
|
||||
</dict>
|
||||
<key>imageInsets</key>
|
||||
<dict>
|
||||
<key>bottom</key>
|
||||
<real>0</real>
|
||||
<key>left</key>
|
||||
<real>0</real>
|
||||
<key>right</key>
|
||||
<real>0</real>
|
||||
<key>top</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>imageName</key>
|
||||
<string>messages_smalltitle</string>
|
||||
<key>title</key>
|
||||
<string>message</string>
|
||||
<key>titleOffset</key>
|
||||
<dict>
|
||||
<key>horizontal</key>
|
||||
<real>0</real>
|
||||
<key>vertical</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>kDefaultAdaptiveState</key>
|
||||
<dict>
|
||||
<key>UIControlStateNormal</key>
|
||||
<dict>
|
||||
<key>backgroundColor</key>
|
||||
<dict>
|
||||
<key>alpha</key>
|
||||
<real>0</real>
|
||||
<key>blue</key>
|
||||
<real>0</real>
|
||||
<key>green</key>
|
||||
<real>0</real>
|
||||
<key>red</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>color</key>
|
||||
<dict>
|
||||
<key>alpha</key>
|
||||
<real>1</real>
|
||||
<key>blue</key>
|
||||
<real>1</real>
|
||||
<key>green</key>
|
||||
<real>1</real>
|
||||
<key>red</key>
|
||||
<real>1</real>
|
||||
</dict>
|
||||
<key>font</key>
|
||||
<dict>
|
||||
<key>fontName</key>
|
||||
<string>Helvetica</string>
|
||||
<key>fontSize</key>
|
||||
<real>14</real>
|
||||
</dict>
|
||||
<key>imageInsets</key>
|
||||
<dict>
|
||||
<key>bottom</key>
|
||||
<real>0</real>
|
||||
<key>left</key>
|
||||
<real>0</real>
|
||||
<key>right</key>
|
||||
<real>0</real>
|
||||
<key>top</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>imageName</key>
|
||||
<string>man</string>
|
||||
<key>title</key>
|
||||
<string>user</string>
|
||||
<key>titleOffset</key>
|
||||
<dict>
|
||||
<key>horizontal</key>
|
||||
<real>0</real>
|
||||
<key>vertical</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>kImageAdaptiveState</key>
|
||||
<dict>
|
||||
<key>UIControlStateNormal</key>
|
||||
<dict>
|
||||
<key>backgroundColor</key>
|
||||
<dict>
|
||||
<key>alpha</key>
|
||||
<real>0</real>
|
||||
<key>blue</key>
|
||||
<real>0</real>
|
||||
<key>green</key>
|
||||
<real>0</real>
|
||||
<key>red</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>color</key>
|
||||
<dict>
|
||||
<key>alpha</key>
|
||||
<real>1</real>
|
||||
<key>blue</key>
|
||||
<real>0</real>
|
||||
<key>green</key>
|
||||
<real>0</real>
|
||||
<key>red</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>font</key>
|
||||
<dict>
|
||||
<key>fontName</key>
|
||||
<string>Helvetica</string>
|
||||
<key>fontSize</key>
|
||||
<real>14</real>
|
||||
</dict>
|
||||
<key>imageInsets</key>
|
||||
<dict>
|
||||
<key>bottom</key>
|
||||
<real>-6</real>
|
||||
<key>left</key>
|
||||
<real>0</real>
|
||||
<key>right</key>
|
||||
<real>0</real>
|
||||
<key>top</key>
|
||||
<real>6</real>
|
||||
</dict>
|
||||
<key>imageName</key>
|
||||
<string>man_bigimage</string>
|
||||
<key>title</key>
|
||||
<string></string>
|
||||
<key>titleOffset</key>
|
||||
<dict>
|
||||
<key>horizontal</key>
|
||||
<real>0</real>
|
||||
<key>vertical</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>kSmallTitleAdaptiveState</key>
|
||||
<dict>
|
||||
<key>UIControlStateNormal</key>
|
||||
<dict>
|
||||
<key>backgroundColor</key>
|
||||
<dict>
|
||||
<key>alpha</key>
|
||||
<real>0</real>
|
||||
<key>blue</key>
|
||||
<real>0</real>
|
||||
<key>green</key>
|
||||
<real>0</real>
|
||||
<key>red</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>color</key>
|
||||
<dict>
|
||||
<key>alpha</key>
|
||||
<real>1</real>
|
||||
<key>blue</key>
|
||||
<real>1</real>
|
||||
<key>green</key>
|
||||
<real>1</real>
|
||||
<key>red</key>
|
||||
<real>1</real>
|
||||
</dict>
|
||||
<key>font</key>
|
||||
<dict>
|
||||
<key>fontName</key>
|
||||
<string>Helvetica</string>
|
||||
<key>fontSize</key>
|
||||
<real>10</real>
|
||||
</dict>
|
||||
<key>imageInsets</key>
|
||||
<dict>
|
||||
<key>bottom</key>
|
||||
<real>0</real>
|
||||
<key>left</key>
|
||||
<real>0</real>
|
||||
<key>right</key>
|
||||
<real>0</real>
|
||||
<key>top</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>imageName</key>
|
||||
<string>man_smalltitle</string>
|
||||
<key>title</key>
|
||||
<string>user</string>
|
||||
<key>titleOffset</key>
|
||||
<dict>
|
||||
<key>horizontal</key>
|
||||
<real>0</real>
|
||||
<key>vertical</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>kDefaultAdaptiveState</key>
|
||||
<dict>
|
||||
<key>UIControlStateNormal</key>
|
||||
<dict>
|
||||
<key>backgroundColor</key>
|
||||
<dict>
|
||||
<key>alpha</key>
|
||||
<real>0</real>
|
||||
<key>blue</key>
|
||||
<real>0</real>
|
||||
<key>green</key>
|
||||
<real>0</real>
|
||||
<key>red</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>color</key>
|
||||
<dict>
|
||||
<key>alpha</key>
|
||||
<real>1</real>
|
||||
<key>blue</key>
|
||||
<real>1</real>
|
||||
<key>green</key>
|
||||
<real>1</real>
|
||||
<key>red</key>
|
||||
<real>1</real>
|
||||
</dict>
|
||||
<key>font</key>
|
||||
<dict>
|
||||
<key>fontName</key>
|
||||
<string>Helvetica</string>
|
||||
<key>fontSize</key>
|
||||
<real>14</real>
|
||||
</dict>
|
||||
<key>imageInsets</key>
|
||||
<dict>
|
||||
<key>bottom</key>
|
||||
<real>0</real>
|
||||
<key>left</key>
|
||||
<real>0</real>
|
||||
<key>right</key>
|
||||
<real>0</real>
|
||||
<key>top</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>imageName</key>
|
||||
<string>menu</string>
|
||||
<key>title</key>
|
||||
<string>dial</string>
|
||||
<key>titleOffset</key>
|
||||
<dict>
|
||||
<key>horizontal</key>
|
||||
<real>0</real>
|
||||
<key>vertical</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>kImageAdaptiveState</key>
|
||||
<dict>
|
||||
<key>UIControlStateNormal</key>
|
||||
<dict>
|
||||
<key>backgroundColor</key>
|
||||
<dict>
|
||||
<key>alpha</key>
|
||||
<real>0</real>
|
||||
<key>blue</key>
|
||||
<real>0</real>
|
||||
<key>green</key>
|
||||
<real>0</real>
|
||||
<key>red</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>color</key>
|
||||
<dict>
|
||||
<key>alpha</key>
|
||||
<real>1</real>
|
||||
<key>blue</key>
|
||||
<real>0</real>
|
||||
<key>green</key>
|
||||
<real>0</real>
|
||||
<key>red</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>font</key>
|
||||
<dict>
|
||||
<key>fontName</key>
|
||||
<string>Helvetica</string>
|
||||
<key>fontSize</key>
|
||||
<real>14</real>
|
||||
</dict>
|
||||
<key>imageInsets</key>
|
||||
<dict>
|
||||
<key>bottom</key>
|
||||
<real>-6</real>
|
||||
<key>left</key>
|
||||
<real>0</real>
|
||||
<key>right</key>
|
||||
<real>0</real>
|
||||
<key>top</key>
|
||||
<real>6</real>
|
||||
</dict>
|
||||
<key>imageName</key>
|
||||
<string>menu_bigimage</string>
|
||||
<key>title</key>
|
||||
<string></string>
|
||||
<key>titleOffset</key>
|
||||
<dict>
|
||||
<key>horizontal</key>
|
||||
<real>0</real>
|
||||
<key>vertical</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>kSmallTitleAdaptiveState</key>
|
||||
<dict>
|
||||
<key>UIControlStateNormal</key>
|
||||
<dict>
|
||||
<key>backgroundColor</key>
|
||||
<dict>
|
||||
<key>alpha</key>
|
||||
<real>0</real>
|
||||
<key>blue</key>
|
||||
<real>0</real>
|
||||
<key>green</key>
|
||||
<real>0</real>
|
||||
<key>red</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>color</key>
|
||||
<dict>
|
||||
<key>alpha</key>
|
||||
<real>1</real>
|
||||
<key>blue</key>
|
||||
<real>1</real>
|
||||
<key>green</key>
|
||||
<real>1</real>
|
||||
<key>red</key>
|
||||
<real>1</real>
|
||||
</dict>
|
||||
<key>font</key>
|
||||
<dict>
|
||||
<key>fontName</key>
|
||||
<string>Helvetica</string>
|
||||
<key>fontSize</key>
|
||||
<real>10</real>
|
||||
</dict>
|
||||
<key>imageInsets</key>
|
||||
<dict>
|
||||
<key>bottom</key>
|
||||
<real>0</real>
|
||||
<key>left</key>
|
||||
<real>0</real>
|
||||
<key>right</key>
|
||||
<real>0</real>
|
||||
<key>top</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>imageName</key>
|
||||
<string>menu_smalltitle</string>
|
||||
<key>title</key>
|
||||
<string>dial</string>
|
||||
<key>titleOffset</key>
|
||||
<dict>
|
||||
<key>horizontal</key>
|
||||
<real>0</real>
|
||||
<key>vertical</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>kDefaultAdaptiveState</key>
|
||||
<dict>
|
||||
<key>UIControlStateNormal</key>
|
||||
<dict>
|
||||
<key>backgroundColor</key>
|
||||
<dict>
|
||||
<key>alpha</key>
|
||||
<real>0</real>
|
||||
<key>blue</key>
|
||||
<real>0</real>
|
||||
<key>green</key>
|
||||
<real>0</real>
|
||||
<key>red</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>color</key>
|
||||
<dict>
|
||||
<key>alpha</key>
|
||||
<real>1</real>
|
||||
<key>blue</key>
|
||||
<real>1</real>
|
||||
<key>green</key>
|
||||
<real>1</real>
|
||||
<key>red</key>
|
||||
<real>1</real>
|
||||
</dict>
|
||||
<key>font</key>
|
||||
<dict>
|
||||
<key>fontName</key>
|
||||
<string>Helvetica</string>
|
||||
<key>fontSize</key>
|
||||
<real>14</real>
|
||||
</dict>
|
||||
<key>imageInsets</key>
|
||||
<dict>
|
||||
<key>bottom</key>
|
||||
<real>0</real>
|
||||
<key>left</key>
|
||||
<real>0</real>
|
||||
<key>right</key>
|
||||
<real>0</real>
|
||||
<key>top</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>imageName</key>
|
||||
<string>more</string>
|
||||
<key>title</key>
|
||||
<string>more</string>
|
||||
<key>titleOffset</key>
|
||||
<dict>
|
||||
<key>horizontal</key>
|
||||
<real>0</real>
|
||||
<key>vertical</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>kImageAdaptiveState</key>
|
||||
<dict>
|
||||
<key>UIControlStateNormal</key>
|
||||
<dict>
|
||||
<key>backgroundColor</key>
|
||||
<dict>
|
||||
<key>alpha</key>
|
||||
<real>0</real>
|
||||
<key>blue</key>
|
||||
<real>0</real>
|
||||
<key>green</key>
|
||||
<real>0</real>
|
||||
<key>red</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>color</key>
|
||||
<dict>
|
||||
<key>alpha</key>
|
||||
<real>1</real>
|
||||
<key>blue</key>
|
||||
<real>0</real>
|
||||
<key>green</key>
|
||||
<real>0</real>
|
||||
<key>red</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>font</key>
|
||||
<dict>
|
||||
<key>fontName</key>
|
||||
<string>Helvetica</string>
|
||||
<key>fontSize</key>
|
||||
<real>14</real>
|
||||
</dict>
|
||||
<key>imageInsets</key>
|
||||
<dict>
|
||||
<key>bottom</key>
|
||||
<real>-6</real>
|
||||
<key>left</key>
|
||||
<real>0</real>
|
||||
<key>right</key>
|
||||
<real>0</real>
|
||||
<key>top</key>
|
||||
<real>6</real>
|
||||
</dict>
|
||||
<key>imageName</key>
|
||||
<string>more_bigimage</string>
|
||||
<key>title</key>
|
||||
<string></string>
|
||||
<key>titleOffset</key>
|
||||
<dict>
|
||||
<key>horizontal</key>
|
||||
<real>0</real>
|
||||
<key>vertical</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>kSmallTitleAdaptiveState</key>
|
||||
<dict>
|
||||
<key>UIControlStateNormal</key>
|
||||
<dict>
|
||||
<key>backgroundColor</key>
|
||||
<dict>
|
||||
<key>alpha</key>
|
||||
<real>0</real>
|
||||
<key>blue</key>
|
||||
<real>0</real>
|
||||
<key>green</key>
|
||||
<real>0</real>
|
||||
<key>red</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>color</key>
|
||||
<dict>
|
||||
<key>alpha</key>
|
||||
<real>1</real>
|
||||
<key>blue</key>
|
||||
<real>1</real>
|
||||
<key>green</key>
|
||||
<real>1</real>
|
||||
<key>red</key>
|
||||
<real>1</real>
|
||||
</dict>
|
||||
<key>font</key>
|
||||
<dict>
|
||||
<key>fontName</key>
|
||||
<string>Helvetica</string>
|
||||
<key>fontSize</key>
|
||||
<real>10</real>
|
||||
</dict>
|
||||
<key>imageInsets</key>
|
||||
<dict>
|
||||
<key>bottom</key>
|
||||
<real>0</real>
|
||||
<key>left</key>
|
||||
<real>0</real>
|
||||
<key>right</key>
|
||||
<real>0</real>
|
||||
<key>top</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>imageName</key>
|
||||
<string>more_smalltitle</string>
|
||||
<key>title</key>
|
||||
<string>more</string>
|
||||
<key>titleOffset</key>
|
||||
<dict>
|
||||
<key>horizontal</key>
|
||||
<real>0</real>
|
||||
<key>vertical</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
</plist>
|
||||
@@ -0,0 +1,901 @@
|
||||
<?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">
|
||||
<array>
|
||||
<dict>
|
||||
<key>DefaultAdaptiveState</key>
|
||||
<dict>
|
||||
<key>UIControlState.Normal</key>
|
||||
<dict>
|
||||
<key>backgroundColorKey</key>
|
||||
<dict>
|
||||
<key>alphaColor</key>
|
||||
<real>0</real>
|
||||
<key>blueColor</key>
|
||||
<real>0</real>
|
||||
<key>greenColor</key>
|
||||
<real>0</real>
|
||||
<key>redColor</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>backgroundImageNameKey</key>
|
||||
<string></string>
|
||||
<key>colorKey</key>
|
||||
<dict>
|
||||
<key>alphaColor</key>
|
||||
<real>1</real>
|
||||
<key>blueColor</key>
|
||||
<real>1</real>
|
||||
<key>greenColor</key>
|
||||
<real>1</real>
|
||||
<key>redColor</key>
|
||||
<real>1</real>
|
||||
</dict>
|
||||
<key>fontKey</key>
|
||||
<dict>
|
||||
<key>fontNameKey</key>
|
||||
<string>Helvetica</string>
|
||||
<key>fontSizeKey</key>
|
||||
<real>14</real>
|
||||
</dict>
|
||||
<key>imageInsetsKey</key>
|
||||
<dict>
|
||||
<key>bottomKey</key>
|
||||
<real>0</real>
|
||||
<key>leftKey</key>
|
||||
<real>0</real>
|
||||
<key>rightKey</key>
|
||||
<real>0</real>
|
||||
<key>topKey</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>imageNameKey</key>
|
||||
<string>watch</string>
|
||||
<key>title</key>
|
||||
<string>watch</string>
|
||||
<key>titleOffsetKey</key>
|
||||
<dict>
|
||||
<key>xKey</key>
|
||||
<real>0</real>
|
||||
<key>yKey</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>kImageAdaptiveState</key>
|
||||
<dict>
|
||||
<key>UIControlState.Normal</key>
|
||||
<dict>
|
||||
<key>backgroundColorKey</key>
|
||||
<dict>
|
||||
<key>alphaColor</key>
|
||||
<real>0</real>
|
||||
<key>blueColor</key>
|
||||
<real>0</real>
|
||||
<key>greenColor</key>
|
||||
<real>0</real>
|
||||
<key>redColor</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>backgroundImageNameKey</key>
|
||||
<string></string>
|
||||
<key>colorKey</key>
|
||||
<dict>
|
||||
<key>alphaColor</key>
|
||||
<real>1</real>
|
||||
<key>blueColor</key>
|
||||
<real>0</real>
|
||||
<key>greenColor</key>
|
||||
<real>0</real>
|
||||
<key>redColor</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>fontKey</key>
|
||||
<dict>
|
||||
<key>fontNameKey</key>
|
||||
<string>Helvetica</string>
|
||||
<key>fontSizeKey</key>
|
||||
<real>14</real>
|
||||
</dict>
|
||||
<key>imageInsetsKey</key>
|
||||
<dict>
|
||||
<key>bottomKey</key>
|
||||
<integer>-6</integer>
|
||||
<key>leftKey</key>
|
||||
<integer>0</integer>
|
||||
<key>rightKey</key>
|
||||
<integer>0</integer>
|
||||
<key>topKey</key>
|
||||
<integer>6</integer>
|
||||
</dict>
|
||||
<key>imageNameKey</key>
|
||||
<string>watch_bigimage</string>
|
||||
<key>title</key>
|
||||
<string></string>
|
||||
<key>titleOffsetKey</key>
|
||||
<dict>
|
||||
<key>xKey</key>
|
||||
<real>0</real>
|
||||
<key>yKey</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>kSmallTitleAdaptiveState</key>
|
||||
<dict>
|
||||
<key>UIControlState.Normal</key>
|
||||
<dict>
|
||||
<key>backgroundColorKey</key>
|
||||
<dict>
|
||||
<key>alphaColor</key>
|
||||
<real>0</real>
|
||||
<key>blueColor</key>
|
||||
<real>0</real>
|
||||
<key>greenColor</key>
|
||||
<real>0</real>
|
||||
<key>redColor</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>backgroundImageNameKey</key>
|
||||
<string></string>
|
||||
<key>colorKey</key>
|
||||
<dict>
|
||||
<key>alphaColor</key>
|
||||
<real>1</real>
|
||||
<key>blueColor</key>
|
||||
<real>1</real>
|
||||
<key>greenColor</key>
|
||||
<real>1</real>
|
||||
<key>redColor</key>
|
||||
<real>1</real>
|
||||
</dict>
|
||||
<key>fontKey</key>
|
||||
<dict>
|
||||
<key>fontNameKey</key>
|
||||
<string>Helvetica</string>
|
||||
<key>fontSizeKey</key>
|
||||
<real>10</real>
|
||||
</dict>
|
||||
<key>imageInsetsKey</key>
|
||||
<dict>
|
||||
<key>bottomKey</key>
|
||||
<real>0</real>
|
||||
<key>leftKey</key>
|
||||
<real>0</real>
|
||||
<key>rightKey</key>
|
||||
<real>0</real>
|
||||
<key>topKey</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>imageNameKey</key>
|
||||
<string>watch_smalltitle</string>
|
||||
<key>title</key>
|
||||
<string>watch</string>
|
||||
<key>titleOffsetKey</key>
|
||||
<dict>
|
||||
<key>xKey</key>
|
||||
<real>0</real>
|
||||
<key>yKey</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>DefaultAdaptiveState</key>
|
||||
<dict>
|
||||
<key>UIControlState.Normal</key>
|
||||
<dict>
|
||||
<key>backgroundColorKey</key>
|
||||
<dict>
|
||||
<key>alphaColor</key>
|
||||
<real>0</real>
|
||||
<key>blueColor</key>
|
||||
<real>0</real>
|
||||
<key>greenColor</key>
|
||||
<real>0</real>
|
||||
<key>redColor</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>backgroundImageNameKey</key>
|
||||
<string></string>
|
||||
<key>colorKey</key>
|
||||
<dict>
|
||||
<key>alphaColor</key>
|
||||
<real>1</real>
|
||||
<key>blueColor</key>
|
||||
<real>1</real>
|
||||
<key>greenColor</key>
|
||||
<real>1</real>
|
||||
<key>redColor</key>
|
||||
<real>1</real>
|
||||
</dict>
|
||||
<key>fontKey</key>
|
||||
<dict>
|
||||
<key>fontNameKey</key>
|
||||
<string>Helvetica</string>
|
||||
<key>fontSizeKey</key>
|
||||
<real>14</real>
|
||||
</dict>
|
||||
<key>imageInsetsKey</key>
|
||||
<dict>
|
||||
<key>bottomKey</key>
|
||||
<real>0</real>
|
||||
<key>leftKey</key>
|
||||
<real>0</real>
|
||||
<key>rightKey</key>
|
||||
<real>0</real>
|
||||
<key>topKey</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>imageNameKey</key>
|
||||
<string>messages</string>
|
||||
<key>title</key>
|
||||
<string>message</string>
|
||||
<key>titleOffsetKey</key>
|
||||
<dict>
|
||||
<key>xKey</key>
|
||||
<real>0</real>
|
||||
<key>yKey</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>kImageAdaptiveState</key>
|
||||
<dict>
|
||||
<key>UIControlState.Normal</key>
|
||||
<dict>
|
||||
<key>backgroundColorKey</key>
|
||||
<dict>
|
||||
<key>alphaColor</key>
|
||||
<real>0</real>
|
||||
<key>blueColor</key>
|
||||
<real>0</real>
|
||||
<key>greenColor</key>
|
||||
<real>0</real>
|
||||
<key>redColor</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>backgroundImageNameKey</key>
|
||||
<string></string>
|
||||
<key>colorKey</key>
|
||||
<dict>
|
||||
<key>alphaColor</key>
|
||||
<real>1</real>
|
||||
<key>blueColor</key>
|
||||
<real>0</real>
|
||||
<key>greenColor</key>
|
||||
<real>0</real>
|
||||
<key>redColor</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>fontKey</key>
|
||||
<dict>
|
||||
<key>fontNameKey</key>
|
||||
<string>Helvetica</string>
|
||||
<key>fontSizeKey</key>
|
||||
<real>14</real>
|
||||
</dict>
|
||||
<key>imageInsetsKey</key>
|
||||
<dict>
|
||||
<key>bottomKey</key>
|
||||
<real>-6</real>
|
||||
<key>leftKey</key>
|
||||
<real>0</real>
|
||||
<key>rightKey</key>
|
||||
<integer>0</integer>
|
||||
<key>topKey</key>
|
||||
<real>6</real>
|
||||
</dict>
|
||||
<key>imageNameKey</key>
|
||||
<string>messages_bigimage</string>
|
||||
<key>title</key>
|
||||
<string></string>
|
||||
<key>titleOffsetKey</key>
|
||||
<dict>
|
||||
<key>xKey</key>
|
||||
<real>0</real>
|
||||
<key>yKey</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>kSmallTitleAdaptiveState</key>
|
||||
<dict>
|
||||
<key>UIControlState.Normal</key>
|
||||
<dict>
|
||||
<key>backgroundColorKey</key>
|
||||
<dict>
|
||||
<key>alphaColor</key>
|
||||
<real>0</real>
|
||||
<key>blueColor</key>
|
||||
<real>0</real>
|
||||
<key>greenColor</key>
|
||||
<real>0</real>
|
||||
<key>redColor</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>backgroundImageNameKey</key>
|
||||
<string></string>
|
||||
<key>colorKey</key>
|
||||
<dict>
|
||||
<key>alphaColor</key>
|
||||
<real>1</real>
|
||||
<key>blueColor</key>
|
||||
<real>1</real>
|
||||
<key>greenColor</key>
|
||||
<real>1</real>
|
||||
<key>redColor</key>
|
||||
<real>1</real>
|
||||
</dict>
|
||||
<key>fontKey</key>
|
||||
<dict>
|
||||
<key>fontNameKey</key>
|
||||
<string>Helvetica</string>
|
||||
<key>fontSizeKey</key>
|
||||
<real>10</real>
|
||||
</dict>
|
||||
<key>imageInsetsKey</key>
|
||||
<dict>
|
||||
<key>bottomKey</key>
|
||||
<real>0</real>
|
||||
<key>leftKey</key>
|
||||
<real>0</real>
|
||||
<key>rightKey</key>
|
||||
<real>0</real>
|
||||
<key>topKey</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>imageNameKey</key>
|
||||
<string>messages_smalltitle</string>
|
||||
<key>title</key>
|
||||
<string>message</string>
|
||||
<key>titleOffsetKey</key>
|
||||
<dict>
|
||||
<key>xKey</key>
|
||||
<real>0</real>
|
||||
<key>yKey</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>DefaultAdaptiveState</key>
|
||||
<dict>
|
||||
<key>UIControlState.Normal</key>
|
||||
<dict>
|
||||
<key>backgroundColorKey</key>
|
||||
<dict>
|
||||
<key>alphaColor</key>
|
||||
<real>0</real>
|
||||
<key>blueColor</key>
|
||||
<real>0</real>
|
||||
<key>greenColor</key>
|
||||
<real>0</real>
|
||||
<key>redColor</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>backgroundImageNameKey</key>
|
||||
<string></string>
|
||||
<key>colorKey</key>
|
||||
<dict>
|
||||
<key>alphaColor</key>
|
||||
<real>1</real>
|
||||
<key>blueColor</key>
|
||||
<real>1</real>
|
||||
<key>greenColor</key>
|
||||
<real>1</real>
|
||||
<key>redColor</key>
|
||||
<real>1</real>
|
||||
</dict>
|
||||
<key>fontKey</key>
|
||||
<dict>
|
||||
<key>fontNameKey</key>
|
||||
<string>Helvetica</string>
|
||||
<key>fontSizeKey</key>
|
||||
<real>14</real>
|
||||
</dict>
|
||||
<key>imageInsetsKey</key>
|
||||
<dict>
|
||||
<key>bottomKey</key>
|
||||
<real>0</real>
|
||||
<key>leftKey</key>
|
||||
<real>0</real>
|
||||
<key>rightKey</key>
|
||||
<real>0</real>
|
||||
<key>topKey</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>imageNameKey</key>
|
||||
<string>man</string>
|
||||
<key>title</key>
|
||||
<string>user</string>
|
||||
<key>titleOffsetKey</key>
|
||||
<dict>
|
||||
<key>xKey</key>
|
||||
<real>0</real>
|
||||
<key>yKey</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>kImageAdaptiveState</key>
|
||||
<dict>
|
||||
<key>UIControlState.Normal</key>
|
||||
<dict>
|
||||
<key>backgroundColorKey</key>
|
||||
<dict>
|
||||
<key>alphaColor</key>
|
||||
<real>0</real>
|
||||
<key>blueColor</key>
|
||||
<real>0</real>
|
||||
<key>greenColor</key>
|
||||
<real>0</real>
|
||||
<key>redColor</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>backgroundImageNameKey</key>
|
||||
<string></string>
|
||||
<key>colorKey</key>
|
||||
<dict>
|
||||
<key>alphaColor</key>
|
||||
<real>1</real>
|
||||
<key>blueColor</key>
|
||||
<real>0</real>
|
||||
<key>greenColor</key>
|
||||
<real>0</real>
|
||||
<key>redColor</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>fontKey</key>
|
||||
<dict>
|
||||
<key>fontNameKey</key>
|
||||
<string>Helvetica</string>
|
||||
<key>fontSizeKey</key>
|
||||
<real>14</real>
|
||||
</dict>
|
||||
<key>imageInsetsKey</key>
|
||||
<dict>
|
||||
<key>bottomKey</key>
|
||||
<real>-6</real>
|
||||
<key>leftKey</key>
|
||||
<real>0</real>
|
||||
<key>rightKey</key>
|
||||
<integer>0</integer>
|
||||
<key>topKey</key>
|
||||
<real>6</real>
|
||||
</dict>
|
||||
<key>imageNameKey</key>
|
||||
<string>man_bigimage</string>
|
||||
<key>title</key>
|
||||
<string></string>
|
||||
<key>titleOffsetKey</key>
|
||||
<dict>
|
||||
<key>xKey</key>
|
||||
<real>0</real>
|
||||
<key>yKey</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>kSmallTitleAdaptiveState</key>
|
||||
<dict>
|
||||
<key>UIControlState.Normal</key>
|
||||
<dict>
|
||||
<key>backgroundColorKey</key>
|
||||
<dict>
|
||||
<key>alphaColor</key>
|
||||
<real>0</real>
|
||||
<key>blueColor</key>
|
||||
<real>0</real>
|
||||
<key>greenColor</key>
|
||||
<real>0</real>
|
||||
<key>redColor</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>backgroundImageNameKey</key>
|
||||
<string></string>
|
||||
<key>colorKey</key>
|
||||
<dict>
|
||||
<key>alphaColor</key>
|
||||
<real>1</real>
|
||||
<key>blueColor</key>
|
||||
<real>1</real>
|
||||
<key>greenColor</key>
|
||||
<real>1</real>
|
||||
<key>redColor</key>
|
||||
<real>1</real>
|
||||
</dict>
|
||||
<key>fontKey</key>
|
||||
<dict>
|
||||
<key>fontNameKey</key>
|
||||
<string>Helvetica</string>
|
||||
<key>fontSizeKey</key>
|
||||
<real>10</real>
|
||||
</dict>
|
||||
<key>imageInsetsKey</key>
|
||||
<dict>
|
||||
<key>bottomKey</key>
|
||||
<real>0</real>
|
||||
<key>leftKey</key>
|
||||
<real>0</real>
|
||||
<key>rightKey</key>
|
||||
<real>0</real>
|
||||
<key>topKey</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>imageNameKey</key>
|
||||
<string>man_smalltitle</string>
|
||||
<key>title</key>
|
||||
<string>user</string>
|
||||
<key>titleOffsetKey</key>
|
||||
<dict>
|
||||
<key>xKey</key>
|
||||
<real>0</real>
|
||||
<key>yKey</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>DefaultAdaptiveState</key>
|
||||
<dict>
|
||||
<key>UIControlState.Normal</key>
|
||||
<dict>
|
||||
<key>backgroundColorKey</key>
|
||||
<dict>
|
||||
<key>alphaColor</key>
|
||||
<real>0</real>
|
||||
<key>blueColor</key>
|
||||
<real>0</real>
|
||||
<key>greenColor</key>
|
||||
<real>0</real>
|
||||
<key>redColor</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>backgroundImageNameKey</key>
|
||||
<string></string>
|
||||
<key>colorKey</key>
|
||||
<dict>
|
||||
<key>alphaColor</key>
|
||||
<real>1</real>
|
||||
<key>blueColor</key>
|
||||
<real>1</real>
|
||||
<key>greenColor</key>
|
||||
<real>1</real>
|
||||
<key>redColor</key>
|
||||
<real>1</real>
|
||||
</dict>
|
||||
<key>fontKey</key>
|
||||
<dict>
|
||||
<key>fontNameKey</key>
|
||||
<string>Helvetica</string>
|
||||
<key>fontSizeKey</key>
|
||||
<real>14</real>
|
||||
</dict>
|
||||
<key>imageInsetsKey</key>
|
||||
<dict>
|
||||
<key>bottomKey</key>
|
||||
<real>0</real>
|
||||
<key>leftKey</key>
|
||||
<real>0</real>
|
||||
<key>rightKey</key>
|
||||
<real>0</real>
|
||||
<key>topKey</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>imageNameKey</key>
|
||||
<string>menu</string>
|
||||
<key>title</key>
|
||||
<string>dial</string>
|
||||
<key>titleOffsetKey</key>
|
||||
<dict>
|
||||
<key>xKey</key>
|
||||
<real>0</real>
|
||||
<key>yKey</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>kImageAdaptiveState</key>
|
||||
<dict>
|
||||
<key>UIControlState.Normal</key>
|
||||
<dict>
|
||||
<key>backgroundColorKey</key>
|
||||
<dict>
|
||||
<key>alphaColor</key>
|
||||
<real>0</real>
|
||||
<key>blueColor</key>
|
||||
<real>0</real>
|
||||
<key>greenColor</key>
|
||||
<real>0</real>
|
||||
<key>redColor</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>backgroundImageNameKey</key>
|
||||
<string></string>
|
||||
<key>colorKey</key>
|
||||
<dict>
|
||||
<key>alphaColor</key>
|
||||
<real>1</real>
|
||||
<key>blueColor</key>
|
||||
<real>0</real>
|
||||
<key>greenColor</key>
|
||||
<real>0</real>
|
||||
<key>redColor</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>fontKey</key>
|
||||
<dict>
|
||||
<key>fontNameKey</key>
|
||||
<string>Helvetica</string>
|
||||
<key>fontSizeKey</key>
|
||||
<real>14</real>
|
||||
</dict>
|
||||
<key>imageInsetsKey</key>
|
||||
<dict>
|
||||
<key>bottomKey</key>
|
||||
<real>-6</real>
|
||||
<key>leftKey</key>
|
||||
<real>0</real>
|
||||
<key>rightKey</key>
|
||||
<integer>0</integer>
|
||||
<key>topKey</key>
|
||||
<integer>6</integer>
|
||||
</dict>
|
||||
<key>imageNameKey</key>
|
||||
<string>menu_bigimage</string>
|
||||
<key>title</key>
|
||||
<string></string>
|
||||
<key>titleOffsetKey</key>
|
||||
<dict>
|
||||
<key>xKey</key>
|
||||
<real>0</real>
|
||||
<key>yKey</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>kSmallTitleAdaptiveState</key>
|
||||
<dict>
|
||||
<key>UIControlState.Normal</key>
|
||||
<dict>
|
||||
<key>backgroundColorKey</key>
|
||||
<dict>
|
||||
<key>alphaColor</key>
|
||||
<real>0</real>
|
||||
<key>blueColor</key>
|
||||
<real>0</real>
|
||||
<key>greenColor</key>
|
||||
<real>0</real>
|
||||
<key>redColor</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>backgroundImageNameKey</key>
|
||||
<string></string>
|
||||
<key>colorKey</key>
|
||||
<dict>
|
||||
<key>alphaColor</key>
|
||||
<real>1</real>
|
||||
<key>blueColor</key>
|
||||
<real>1</real>
|
||||
<key>greenColor</key>
|
||||
<real>1</real>
|
||||
<key>redColor</key>
|
||||
<real>1</real>
|
||||
</dict>
|
||||
<key>fontKey</key>
|
||||
<dict>
|
||||
<key>fontNameKey</key>
|
||||
<string>Helvetica</string>
|
||||
<key>fontSizeKey</key>
|
||||
<real>10</real>
|
||||
</dict>
|
||||
<key>imageInsetsKey</key>
|
||||
<dict>
|
||||
<key>bottomKey</key>
|
||||
<real>0</real>
|
||||
<key>leftKey</key>
|
||||
<real>0</real>
|
||||
<key>rightKey</key>
|
||||
<real>0</real>
|
||||
<key>topKey</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>imageNameKey</key>
|
||||
<string>menu_smalltitle</string>
|
||||
<key>title</key>
|
||||
<string>dial</string>
|
||||
<key>titleOffsetKey</key>
|
||||
<dict>
|
||||
<key>xKey</key>
|
||||
<real>0</real>
|
||||
<key>yKey</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>DefaultAdaptiveState</key>
|
||||
<dict>
|
||||
<key>UIControlState.Normal</key>
|
||||
<dict>
|
||||
<key>backgroundColorKey</key>
|
||||
<dict>
|
||||
<key>alphaColor</key>
|
||||
<real>0</real>
|
||||
<key>blueColor</key>
|
||||
<real>0</real>
|
||||
<key>greenColor</key>
|
||||
<real>0</real>
|
||||
<key>redColor</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>backgroundImageNameKey</key>
|
||||
<string></string>
|
||||
<key>colorKey</key>
|
||||
<dict>
|
||||
<key>alphaColor</key>
|
||||
<real>1</real>
|
||||
<key>blueColor</key>
|
||||
<real>1</real>
|
||||
<key>greenColor</key>
|
||||
<real>1</real>
|
||||
<key>redColor</key>
|
||||
<real>1</real>
|
||||
</dict>
|
||||
<key>fontKey</key>
|
||||
<dict>
|
||||
<key>fontNameKey</key>
|
||||
<string>Helvetica</string>
|
||||
<key>fontSizeKey</key>
|
||||
<real>14</real>
|
||||
</dict>
|
||||
<key>imageInsetsKey</key>
|
||||
<dict>
|
||||
<key>bottomKey</key>
|
||||
<real>0</real>
|
||||
<key>leftKey</key>
|
||||
<real>0</real>
|
||||
<key>rightKey</key>
|
||||
<real>0</real>
|
||||
<key>topKey</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>imageNameKey</key>
|
||||
<string>more</string>
|
||||
<key>title</key>
|
||||
<string>more</string>
|
||||
<key>titleOffsetKey</key>
|
||||
<dict>
|
||||
<key>xKey</key>
|
||||
<real>0</real>
|
||||
<key>yKey</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>kImageAdaptiveState</key>
|
||||
<dict>
|
||||
<key>UIControlState.Normal</key>
|
||||
<dict>
|
||||
<key>backgroundColorKey</key>
|
||||
<dict>
|
||||
<key>alphaColor</key>
|
||||
<real>0</real>
|
||||
<key>blueColor</key>
|
||||
<real>0</real>
|
||||
<key>greenColor</key>
|
||||
<real>0</real>
|
||||
<key>redColor</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>backgroundImageNameKey</key>
|
||||
<string></string>
|
||||
<key>colorKey</key>
|
||||
<dict>
|
||||
<key>alphaColor</key>
|
||||
<real>1</real>
|
||||
<key>blueColor</key>
|
||||
<real>0</real>
|
||||
<key>greenColor</key>
|
||||
<real>0</real>
|
||||
<key>redColor</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>fontKey</key>
|
||||
<dict>
|
||||
<key>fontNameKey</key>
|
||||
<string>Helvetica</string>
|
||||
<key>fontSizeKey</key>
|
||||
<real>14</real>
|
||||
</dict>
|
||||
<key>imageInsetsKey</key>
|
||||
<dict>
|
||||
<key>bottomKey</key>
|
||||
<real>-6</real>
|
||||
<key>leftKey</key>
|
||||
<real>0</real>
|
||||
<key>rightKey</key>
|
||||
<integer>0</integer>
|
||||
<key>topKey</key>
|
||||
<real>6</real>
|
||||
</dict>
|
||||
<key>imageNameKey</key>
|
||||
<string>more_bigimage</string>
|
||||
<key>title</key>
|
||||
<string></string>
|
||||
<key>titleOffsetKey</key>
|
||||
<dict>
|
||||
<key>xKey</key>
|
||||
<real>0</real>
|
||||
<key>yKey</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>kSmallTitleAdaptiveState</key>
|
||||
<dict>
|
||||
<key>UIControlState.Normal</key>
|
||||
<dict>
|
||||
<key>backgroundColorKey</key>
|
||||
<dict>
|
||||
<key>alphaColor</key>
|
||||
<real>0</real>
|
||||
<key>blueColor</key>
|
||||
<real>0</real>
|
||||
<key>greenColor</key>
|
||||
<real>0</real>
|
||||
<key>redColor</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>backgroundImageNameKey</key>
|
||||
<string></string>
|
||||
<key>colorKey</key>
|
||||
<dict>
|
||||
<key>alphaColor</key>
|
||||
<real>1</real>
|
||||
<key>blueColor</key>
|
||||
<real>1</real>
|
||||
<key>greenColor</key>
|
||||
<real>1</real>
|
||||
<key>redColor</key>
|
||||
<real>1</real>
|
||||
</dict>
|
||||
<key>fontKey</key>
|
||||
<dict>
|
||||
<key>fontNameKey</key>
|
||||
<string>Helvetica</string>
|
||||
<key>fontSizeKey</key>
|
||||
<real>10</real>
|
||||
</dict>
|
||||
<key>imageInsetsKey</key>
|
||||
<dict>
|
||||
<key>bottomKey</key>
|
||||
<real>0</real>
|
||||
<key>leftKey</key>
|
||||
<real>0</real>
|
||||
<key>rightKey</key>
|
||||
<real>0</real>
|
||||
<key>topKey</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
<key>imageNameKey</key>
|
||||
<string>more_smalltitle</string>
|
||||
<key>title</key>
|
||||
<string>more</string>
|
||||
<key>titleOffsetKey</key>
|
||||
<dict>
|
||||
<key>xKey</key>
|
||||
<real>0</real>
|
||||
<key>yKey</key>
|
||||
<real>0</real>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
</plist>
|
||||
@@ -7,6 +7,7 @@
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
6A156E401A091169002A69AD /* appearances.plist in Resources */ = {isa = PBXBuildFile; fileRef = 6A156E3F1A091169002A69AD /* appearances.plist */; };
|
||||
6A3ED0C819ED0236006F06DD /* DateExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A87F54B19C8532500E8F31B /* DateExtension.swift */; };
|
||||
6A55590219E2C20900ED3B5C /* AdaptiveController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6A55590119E2C20900ED3B5C /* AdaptiveController.framework */; };
|
||||
6A55590819E2CF7200ED3B5C /* MenuViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A55590319E2CF7200ED3B5C /* MenuViewController.swift */; };
|
||||
@@ -49,6 +50,7 @@
|
||||
/* End PBXCopyFilesBuildPhase section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
6A156E3F1A091169002A69AD /* appearances.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = appearances.plist; sourceTree = "<group>"; };
|
||||
6A55590119E2C20900ED3B5C /* AdaptiveController.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AdaptiveController.framework; path = "../../AdaptiveController/build/Debug-iphoneos/AdaptiveController.framework"; sourceTree = "<group>"; };
|
||||
6A55590319E2CF7200ED3B5C /* MenuViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = MenuViewController.swift; path = UIControllers/MenuViewController.swift; sourceTree = "<group>"; };
|
||||
6A55590419E2CF7200ED3B5C /* MessageViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = MessageViewController.swift; path = UIControllers/MessageViewController.swift; sourceTree = "<group>"; };
|
||||
@@ -142,6 +144,7 @@
|
||||
6AD5A2F619C6C95E00606826 /* Supporting Files */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
6A156E3F1A091169002A69AD /* appearances.plist */,
|
||||
6AD5A2F719C6C95E00606826 /* Info.plist */,
|
||||
);
|
||||
name = "Supporting Files";
|
||||
@@ -256,6 +259,7 @@
|
||||
files = (
|
||||
6AD5A30019C6C95E00606826 /* Main.storyboard in Resources */,
|
||||
6AD5A30519C6C95E00606826 /* LaunchScreen.xib in Resources */,
|
||||
6A156E401A091169002A69AD /* appearances.plist in Resources */,
|
||||
6AD5A30219C6C95E00606826 /* Images.xcassets in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
|
||||
@@ -2,262 +2,4 @@
|
||||
<Bucket
|
||||
type = "1"
|
||||
version = "2.0">
|
||||
<Breakpoints>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "adaptive-tab-bar/AppDelegate.swift"
|
||||
timestampString = "434293473.185451"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "50"
|
||||
endingLineNumber = "50"
|
||||
landmarkName = "application(_:didFinishLaunchingWithOptions:)"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "adaptive-tab-bar/AdaptiveTabBarItem.swift"
|
||||
timestampString = "433270026.544751"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "22"
|
||||
endingLineNumber = "22"
|
||||
landmarkName = "setFontToAdaptiveButton(_:)"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "adaptive-tab-bar/AdaptiveTabBarItem.swift"
|
||||
timestampString = "433270026.544751"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "27"
|
||||
endingLineNumber = "27"
|
||||
landmarkName = "setTitleToAdaptiveButton(_:)"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "adaptive-tab-bar/AdaptiveTabBarItem.swift"
|
||||
timestampString = "433270026.544751"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "31"
|
||||
endingLineNumber = "31"
|
||||
landmarkName = "setImageToAdaptiveButton(_:)"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "adaptive-tab-bar/AdaptiveTabBarItem.swift"
|
||||
timestampString = "433270026.544751"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "39"
|
||||
endingLineNumber = "39"
|
||||
landmarkName = "setImageInsetsToAdaptiveButton(_:)"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "adaptive-tab-bar/AdaptiveTabBarItem.swift"
|
||||
timestampString = "433270026.544751"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "43"
|
||||
endingLineNumber = "43"
|
||||
landmarkName = "setTitleOffsetToAdaptiveButton(_:)"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "adaptive-tab-bar/AdaptiveTabBarItem.swift"
|
||||
timestampString = "433270026.544751"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "30"
|
||||
endingLineNumber = "30"
|
||||
landmarkName = "setImageToAdaptiveButton(_:)"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "adaptive-tab-bar/AdaptiveController/AdaptiveButtonsStateManager.swift"
|
||||
timestampString = "433094882.479065"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "53"
|
||||
endingLineNumber = "53"
|
||||
landmarkName = "setButtonsState(_:buttonsAray:buttonsApperance:)"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "adaptive-tab-bar/AdaptiveController/AdaptiveButtonApperance.swift"
|
||||
timestampString = "433165373.973683"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "111"
|
||||
endingLineNumber = "111"
|
||||
landmarkName = "getButonImageForState(_:)"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "adaptive-tab-bar/AdaptiveTabBarItem.swift"
|
||||
timestampString = "433270026.544751"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "35"
|
||||
endingLineNumber = "35"
|
||||
landmarkName = "setSelectedImageToAdaptiveButton(_:)"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "adaptive-tab-bar/AdaptiveController/AdaptiveDateState.swift"
|
||||
timestampString = "432824522.988969"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "25"
|
||||
endingLineNumber = "25"
|
||||
landmarkName = "init(installDate:currentDate:countDaysToSmallTextState:countDaysToImageState:)"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "adaptive-tab-bar/AdaptiveController/AdaptiveDateState.swift"
|
||||
timestampString = "432824525.591121"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "24"
|
||||
endingLineNumber = "24"
|
||||
landmarkName = "init(installDate:currentDate:countDaysToSmallTextState:countDaysToImageState:)"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "adaptive-tab-bar/AdaptiveController/AdaptiveDateState.swift"
|
||||
timestampString = "432828574.023887"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "48"
|
||||
endingLineNumber = "48"
|
||||
landmarkName = "stateRemainDays(_:countDaysToSmallTextState:countDaysToImageState:)"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "adaptive-tab-bar/AdaptiveController/AdaptiveDateState.swift"
|
||||
timestampString = "432828592.270449"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "46"
|
||||
endingLineNumber = "46"
|
||||
landmarkName = "stateRemainDays(_:countDaysToSmallTextState:countDaysToImageState:)"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "adaptive-tab-bar/AdaptiveTabBarItem.swift"
|
||||
timestampString = "433270026.544751"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "48"
|
||||
endingLineNumber = "48"
|
||||
landmarkName = "setTitleColorToAdaptiveButton(_:)"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "adaptive-tab-bar/AppDelegate.swift"
|
||||
timestampString = "434465681.065848"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "119"
|
||||
endingLineNumber = "119"
|
||||
landmarkName = "buttonsAppearancesGenerate()"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
</Breakpoints>
|
||||
</Bucket>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<dict>
|
||||
<key>SchemeUserState</key>
|
||||
<dict>
|
||||
<key>example-date-adaptive-tab-bar.xcscheme</key>
|
||||
<key>example-date-adaptive-tab-bar.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>3</integer>
|
||||
|
||||
@@ -39,100 +39,121 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
|
||||
tabBar.barTintColor = tabColor
|
||||
tabBar.clipsToBounds = true
|
||||
|
||||
var curentCountLaunches = 10
|
||||
var curentCountLaunches = 6
|
||||
|
||||
var adaptiveState = AdaptiveLaunchesState(curentCountLaunches:curentCountLaunches,countLaunchesToSmallTextState:countDaysForSmaltextState,countLaunchesToImageState:countDaysForImageModeState)
|
||||
|
||||
|
||||
var buttonsAppearances = buttonsAppearancesGenerate() //func butonsApprencesGenerate() -> [AdaptiveButtonApperance]
|
||||
|
||||
var buttonsAppearances = buttonsAppearancesGenerate()
|
||||
|
||||
var arrayButtons = tabBar.items as [AdaptiveTabBarItem]
|
||||
|
||||
AdaptiveButtonsStateManager(state: adaptiveState,buttonsAray:arrayButtons ,buttonsAppearance: buttonsAppearances)
|
||||
|
||||
|
||||
|
||||
AdaptiveButtonsStateManager.setupButtonsAppearanceFromState(adaptiveState,buttonsAray:arrayButtons ,buttonsAppearances: buttonsAppearances)
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
|
||||
func buttonsAppearancesGenerate() -> [AdaptiveButtonAppearance]{
|
||||
|
||||
var settingsManager = AppearenceSettingManager()
|
||||
//
|
||||
settingsManager.defaultStyleSettingsForNormalState(AdaptiveStateEnum.DefaultAdaptiveState,titleOffset:defaultOffset, imageInsets:defaultInsets, titleColor:UIColor.whiteColor(), font:defaultFont!, backgroundColor:UIColor.clearColor())
|
||||
settingsManager.defaultStyleSettingsForNormalState(AdaptiveStateEnum.SmallTitleAdaptiveState,titleOffset:defaultOffset, imageInsets:defaultSmallTitleModeImageInsets, titleColor:UIColor.whiteColor(), font:defaultSmallTitleModeFont!, backgroundColor:UIColor.clearColor())
|
||||
|
||||
var imageExtensionsForStates:Dictionary = [ kSmallTitleAdaptiveState:"_smalltitle",
|
||||
kImageAdaptiveState:"_bigimage",
|
||||
kSmallTitleAdaptiveState+selected :"_smalltitle",
|
||||
kImageAdaptiveState+selected:"_bigimage" ]
|
||||
settingsManager.defaultStyleSettingsForNormalState(AdaptiveStateEnum.ImageAdaptiveState,titleOffset:defaultOffset, imageInsets:defaultImageModeInsets, titleColor:UIColor.whiteColor(), font:defaultFont!, backgroundColor:UIColor.clearColor())
|
||||
|
||||
|
||||
|
||||
var watchAppearance = AdaptiveButtonAppearance();
|
||||
|
||||
watchAppearance.setButonTitle("watch", state: kDefaultAdaptiveState)
|
||||
watchAppearance.setButonTitle("watch", state: kSmallTitleAdaptiveState)
|
||||
watchAppearance.setButonTitle("", state: kImageAdaptiveState)
|
||||
watchAppearance.setTitleColor(UIColor.whiteColor(), state: kDefaultAdaptiveState)
|
||||
var watchControlDefaultStateValue = settingsManager.defaultStyleValuesForNormalState(AdaptiveStateEnum.DefaultAdaptiveState, title:"watch", imageName:"watch")
|
||||
|
||||
watchAppearance.setButonTitleFontForState(defaultFont, state: kDefaultAdaptiveState)
|
||||
var watchControlSmallTitleStateValue = settingsManager.defaultStyleValuesForNormalState(AdaptiveStateEnum.SmallTitleAdaptiveState, title:"watch", imageName:"watch_smalltitle")
|
||||
var watchControlImageStateValue = settingsManager.defaultStyleValuesForNormalState(AdaptiveStateEnum.ImageAdaptiveState, title:"", imageName:"watch_bigimage")
|
||||
|
||||
watchAppearance.setButonTitleFontForState(defaultSmallTitleModeFont, state: kSmallTitleAdaptiveState)
|
||||
let watchAppearanceStates = [AdaptiveStateEnum.DefaultAdaptiveState:watchControlDefaultStateValue,
|
||||
AdaptiveStateEnum.SmallTitleAdaptiveState:watchControlSmallTitleStateValue,
|
||||
AdaptiveStateEnum.ImageAdaptiveState:watchControlImageStateValue]
|
||||
|
||||
|
||||
|
||||
var watchAppearance = AdaptiveButtonAppearance(states:watchAppearanceStates)
|
||||
|
||||
|
||||
|
||||
var userСontrolDefaultStateValue = settingsManager.defaultStyleValuesForNormalState(AdaptiveStateEnum.DefaultAdaptiveState, title:"user", imageName:"man")
|
||||
|
||||
var userControlSmallTitleStateValue = settingsManager.defaultStyleValuesForNormalState(AdaptiveStateEnum.SmallTitleAdaptiveState, title:"user", imageName:"man_smalltitle")
|
||||
|
||||
watchAppearance.setImageNamesForStatesImageExtesions("watch", imageExtensionsForState:imageExtensionsForStates)
|
||||
var userControlImageStateValue = settingsManager.defaultStyleValuesForNormalState(AdaptiveStateEnum.ImageAdaptiveState, title:"", imageName:"man_bigimage")
|
||||
|
||||
let userappearanceStates = [AdaptiveStateEnum.DefaultAdaptiveState:watchControlDefaultStateValue,
|
||||
AdaptiveStateEnum.SmallTitleAdaptiveState:watchControlSmallTitleStateValue,
|
||||
AdaptiveStateEnum.ImageAdaptiveState:watchControlImageStateValue]
|
||||
|
||||
|
||||
|
||||
|
||||
watchAppearance.setImageInsets(defaultInsets, state: kDefaultAdaptiveState);
|
||||
let userAppearanceStates = [AdaptiveStateEnum.DefaultAdaptiveState:userСontrolDefaultStateValue,
|
||||
AdaptiveStateEnum.SmallTitleAdaptiveState:userControlSmallTitleStateValue,
|
||||
AdaptiveStateEnum.ImageAdaptiveState:userControlImageStateValue]
|
||||
|
||||
watchAppearance.setImageInsets(defaultSmallTitleModeImageInsets, state: kSmallTitleAdaptiveState)
|
||||
watchAppearance.setTitleOffset(defaultOffset, state: kDefaultAdaptiveState)
|
||||
watchAppearance.setImageInsets(defaultImageModeInsets, state: kImageAdaptiveState);
|
||||
|
||||
|
||||
var userAperance = AdaptiveButtonAppearance();
|
||||
|
||||
|
||||
userAperance.setAllCommonApperanceFrom(watchAppearance)
|
||||
|
||||
userAperance.setButonTitle("user", state: kDefaultAdaptiveState)
|
||||
userAperance.setButonTitle("", state: kImageAdaptiveState)
|
||||
userAperance.setImageNamesForStatesImageExtesions("man", imageExtensionsForState:imageExtensionsForStates)
|
||||
|
||||
|
||||
|
||||
var messageAperance = AdaptiveButtonAppearance();
|
||||
|
||||
messageAperance.setAllCommonApperanceFrom((watchAppearance))
|
||||
|
||||
messageAperance.setButonTitle("message", state: kDefaultAdaptiveState)
|
||||
messageAperance.setButonTitle("", state: kImageAdaptiveState)
|
||||
|
||||
messageAperance.setImageNamesForStatesImageExtesions("messages", imageExtensionsForState:imageExtensionsForStates)
|
||||
|
||||
|
||||
var userAperance = AdaptiveButtonAppearance(states:userAppearanceStates)
|
||||
|
||||
|
||||
var menuAperance = AdaptiveButtonAppearance();
|
||||
|
||||
var messageСontrolDefaultStateValue = settingsManager.defaultStyleValuesForNormalState(AdaptiveStateEnum.DefaultAdaptiveState, title:"messages", imageName:"messages")
|
||||
|
||||
var messageControlSmallTitleStateValue = settingsManager.defaultStyleValuesForNormalState(AdaptiveStateEnum.SmallTitleAdaptiveState, title:"messages", imageName:"messages_smalltitle")
|
||||
|
||||
var messageControlImageStateValue = settingsManager.defaultStyleValuesForNormalState(AdaptiveStateEnum.ImageAdaptiveState, title:"", imageName:"messages_bigimage")
|
||||
|
||||
|
||||
menuAperance.setAllCommonApperanceFrom((watchAppearance))
|
||||
let messageAppearanceStates = [AdaptiveStateEnum.DefaultAdaptiveState:messageСontrolDefaultStateValue,
|
||||
AdaptiveStateEnum.SmallTitleAdaptiveState:messageControlSmallTitleStateValue,
|
||||
AdaptiveStateEnum.ImageAdaptiveState:messageControlImageStateValue]
|
||||
|
||||
menuAperance.setButonTitle("dial", state: kDefaultAdaptiveState)
|
||||
menuAperance.setButonTitle("", state: kImageAdaptiveState)
|
||||
menuAperance.setImageNamesForStatesImageExtesions("menu", imageExtensionsForState:imageExtensionsForStates)
|
||||
var messageAperance = AdaptiveButtonAppearance(states:messageAppearanceStates)
|
||||
|
||||
|
||||
|
||||
var moreAperance = AdaptiveButtonAppearance();
|
||||
|
||||
moreAperance.setAllCommonApperanceFrom((watchAppearance))
|
||||
|
||||
moreAperance.setButonTitle("more", state: kDefaultAdaptiveState)
|
||||
moreAperance.setButonTitle("", state: kImageAdaptiveState)
|
||||
|
||||
moreAperance.setImageNamesForStatesImageExtesions("more", imageExtensionsForState:imageExtensionsForStates)
|
||||
|
||||
|
||||
|
||||
|
||||
var menuСontrolDefaultStateValue = settingsManager.defaultStyleValuesForNormalState(AdaptiveStateEnum.DefaultAdaptiveState, title:"dial", imageName:"menu")
|
||||
|
||||
var menuControlSmallTitleStateValue = settingsManager.defaultStyleValuesForNormalState(AdaptiveStateEnum.SmallTitleAdaptiveState, title:"dial", imageName:"menu_smalltitle")
|
||||
|
||||
var menuControlImageStateValue = settingsManager.defaultStyleValuesForNormalState(AdaptiveStateEnum.ImageAdaptiveState, title:"", imageName:"menu_bigimage")
|
||||
|
||||
|
||||
|
||||
let menuAppearanceStates = [AdaptiveStateEnum.DefaultAdaptiveState:menuСontrolDefaultStateValue,
|
||||
AdaptiveStateEnum.SmallTitleAdaptiveState:menuControlSmallTitleStateValue,
|
||||
AdaptiveStateEnum.ImageAdaptiveState:menuControlImageStateValue]
|
||||
|
||||
|
||||
|
||||
var menuAperance = AdaptiveButtonAppearance(states:menuAppearanceStates)
|
||||
|
||||
|
||||
var moreСontrolDefaultStateValue = settingsManager.defaultStyleValuesForNormalState(AdaptiveStateEnum.DefaultAdaptiveState, title:"more", imageName:"more")
|
||||
|
||||
var moreControlSmallTitleStateValue = settingsManager.defaultStyleValuesForNormalState(AdaptiveStateEnum.SmallTitleAdaptiveState, title:"more", imageName:"more_smalltitle")
|
||||
|
||||
var moreControlImageStateValue = settingsManager.defaultStyleValuesForNormalState(AdaptiveStateEnum.ImageAdaptiveState, title:"", imageName:"more_bigimage")
|
||||
|
||||
|
||||
|
||||
let moreAppearanceStates = [AdaptiveStateEnum.DefaultAdaptiveState:moreСontrolDefaultStateValue,
|
||||
AdaptiveStateEnum.SmallTitleAdaptiveState:moreControlSmallTitleStateValue,
|
||||
AdaptiveStateEnum.ImageAdaptiveState:moreControlImageStateValue]
|
||||
|
||||
var moreAperance = AdaptiveButtonAppearance(states:moreAppearanceStates)
|
||||
|
||||
|
||||
|
||||
return [watchAppearance ,messageAperance,userAperance,menuAperance,moreAperance]
|
||||
|
||||
}
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="6245" systemVersion="13F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="49e-Tb-3d3">
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="6250" systemVersion="14A389" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="49e-Tb-3d3">
|
||||
<dependencies>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6238"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6244"/>
|
||||
<capability name="Constraints to layout margins" minToolsVersion="6.0"/>
|
||||
</dependencies>
|
||||
<scenes>
|
||||
<!--First-->
|
||||
<scene sceneID="hNz-n2-bh7">
|
||||
<objects>
|
||||
<viewController id="9pv-A4-QxB" customClass="WatchViewController" customModule="adaptive_tab_bar" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<viewController id="9pv-A4-QxB" customClass="WatchViewController" customModule="example_count_launches_adaptive_tabbar" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<layoutGuides>
|
||||
<viewControllerLayoutGuide type="top" id="Ia1-K6-d13"/>
|
||||
<viewControllerLayoutGuide type="bottom" id="4ug-Mw-9AY"/>
|
||||
@@ -29,19 +30,23 @@
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="background" translatesAutoresizingMaskIntoConstraints="NO" id="bTY-b5-lYl">
|
||||
<rect key="frame" x="0.0" y="0.0" width="640" height="550"/>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="background" translatesAutoresizingMaskIntoConstraints="NO" id="bTY-b5-lYl">
|
||||
<rect key="frame" x="0.0" y="0.0" width="640" height="551"/>
|
||||
</imageView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstItem="4ug-Mw-9AY" firstAttribute="top" secondItem="bTY-b5-lYl" secondAttribute="bottom" id="57C-0I-UhP"/>
|
||||
<constraint firstAttribute="centerX" secondItem="KQZ-1w-vlD" secondAttribute="centerX" id="6BV-lF-sBN"/>
|
||||
<constraint firstItem="A5M-7J-77L" firstAttribute="top" secondItem="KQZ-1w-vlD" secondAttribute="bottom" constant="8" symbolic="YES" id="cfb-er-3JN"/>
|
||||
<constraint firstItem="A5M-7J-77L" firstAttribute="centerX" secondItem="KQZ-1w-vlD" secondAttribute="centerX" id="e1l-AV-tCB"/>
|
||||
<constraint firstAttribute="centerY" secondItem="KQZ-1w-vlD" secondAttribute="centerY" id="exm-UA-ej4"/>
|
||||
<constraint firstItem="bTY-b5-lYl" firstAttribute="top" secondItem="tsR-hK-woN" secondAttribute="top" id="kWQ-y6-H6g"/>
|
||||
<constraint firstAttribute="trailing" secondItem="bTY-b5-lYl" secondAttribute="trailing" constant="-40" id="sYy-Hj-V1a"/>
|
||||
<constraint firstItem="bTY-b5-lYl" firstAttribute="leading" secondItem="tsR-hK-woN" secondAttribute="leading" id="ueh-EO-Puf"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<tabBarItem key="tabBarItem" title="First" id="acW-dT-cKf" customClass="AdaptiveTabBarItem" customModule="adaptive_tab_bar" customModuleProvider="target"/>
|
||||
<tabBarItem key="tabBarItem" title="First" id="acW-dT-cKf" customClass="AdaptiveTabBarItem" customModule="example_count_launches_adaptive_tabbar" customModuleProvider="target"/>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="W5J-7L-Pyd" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
@@ -50,7 +55,7 @@
|
||||
<!--Second-->
|
||||
<scene sceneID="wg7-f3-ORb">
|
||||
<objects>
|
||||
<viewController id="8rJ-Kc-sve" customClass="MessageViewController" customModule="adaptive_tab_bar" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<viewController id="8rJ-Kc-sve" customClass="MessageViewController" customModule="example_count_launches_adaptive_tabbar" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<layoutGuides>
|
||||
<viewControllerLayoutGuide type="top" id="L7p-HK-0SC"/>
|
||||
<viewControllerLayoutGuide type="bottom" id="Djb-ko-YwX"/>
|
||||
@@ -72,19 +77,23 @@
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="background" translatesAutoresizingMaskIntoConstraints="NO" id="d3m-k5-qah">
|
||||
<rect key="frame" x="0.0" y="0.0" width="640" height="550"/>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="background" translatesAutoresizingMaskIntoConstraints="NO" id="d3m-k5-qah">
|
||||
<rect key="frame" x="0.0" y="0.0" width="640" height="551"/>
|
||||
</imageView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="trailing" secondItem="d3m-k5-qah" secondAttribute="trailing" constant="-40" id="8KS-iG-8XT"/>
|
||||
<constraint firstItem="NDk-cv-Gan" firstAttribute="top" secondItem="zEq-FU-wV5" secondAttribute="bottom" constant="8" symbolic="YES" id="Day-4N-Vmt"/>
|
||||
<constraint firstItem="NDk-cv-Gan" firstAttribute="centerX" secondItem="zEq-FU-wV5" secondAttribute="centerX" id="JgO-Fn-dHn"/>
|
||||
<constraint firstItem="d3m-k5-qah" firstAttribute="leading" secondItem="QS5-Rx-YEW" secondAttribute="leading" id="X9o-k0-h62"/>
|
||||
<constraint firstAttribute="centerX" secondItem="zEq-FU-wV5" secondAttribute="centerX" id="qqM-NS-xev"/>
|
||||
<constraint firstAttribute="centerY" secondItem="zEq-FU-wV5" secondAttribute="centerY" id="qzY-Ky-pLD"/>
|
||||
<constraint firstItem="d3m-k5-qah" firstAttribute="top" secondItem="QS5-Rx-YEW" secondAttribute="top" id="tA2-Eh-fSb"/>
|
||||
<constraint firstItem="Djb-ko-YwX" firstAttribute="top" secondItem="d3m-k5-qah" secondAttribute="bottom" id="zws-Zn-RsZ"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<tabBarItem key="tabBarItem" title="Second" image="second" id="cPa-gy-q4n" customClass="AdaptiveTabBarItem" customModule="adaptive_tab_bar" customModuleProvider="target"/>
|
||||
<tabBarItem key="tabBarItem" title="Second" id="cPa-gy-q4n" customClass="AdaptiveTabBarItem" customModule="example_count_launches_adaptive_tabbar"/>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="4Nw-L8-lE0" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
@@ -93,7 +102,7 @@
|
||||
<!--Tab Bar View Controller-->
|
||||
<scene sceneID="yl2-sM-qoP">
|
||||
<objects>
|
||||
<tabBarController id="49e-Tb-3d3" customClass="TabBarViewController" customModule="adaptive_tab_bar" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<tabBarController id="49e-Tb-3d3" customClass="TabBarViewController" customModule="example_count_launches_adaptive_tabbar" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<nil key="simulatedBottomBarMetrics"/>
|
||||
<tabBar key="tabBar" contentMode="scaleToFill" id="W28-zg-YXA">
|
||||
<rect key="frame" x="0.0" y="975" width="768" height="49"/>
|
||||
@@ -115,7 +124,7 @@
|
||||
<!--Item-->
|
||||
<scene sceneID="60i-zg-cAx">
|
||||
<objects>
|
||||
<viewController id="BiK-DX-JK5" customClass="UserViewController" customModule="adaptive_tab_bar" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<viewController id="BiK-DX-JK5" customClass="UserViewController" customModule="example_count_launches_adaptive_tabbar" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<layoutGuides>
|
||||
<viewControllerLayoutGuide type="top" id="oSS-7K-rER"/>
|
||||
<viewControllerLayoutGuide type="bottom" id="Ba7-rp-yUE"/>
|
||||
@@ -124,13 +133,19 @@
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="background" translatesAutoresizingMaskIntoConstraints="NO" id="jtr-dW-8XE">
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="background" translatesAutoresizingMaskIntoConstraints="NO" id="jtr-dW-8XE">
|
||||
<rect key="frame" x="0.0" y="0.0" width="640" height="555"/>
|
||||
</imageView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="trailing" secondItem="jtr-dW-8XE" secondAttribute="trailing" constant="-40" id="68Q-YE-GnZ"/>
|
||||
<constraint firstItem="jtr-dW-8XE" firstAttribute="leading" secondItem="Z9a-At-6Ll" secondAttribute="leading" id="9Lc-1F-lVY"/>
|
||||
<constraint firstAttribute="bottom" secondItem="jtr-dW-8XE" secondAttribute="bottom" constant="45" id="iHg-vq-ehR"/>
|
||||
<constraint firstItem="jtr-dW-8XE" firstAttribute="top" secondItem="Z9a-At-6Ll" secondAttribute="top" id="zds-Uy-hOW"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<tabBarItem key="tabBarItem" title="Item" id="g86-Lf-lWF" customClass="AdaptiveTabBarItem" customModule="adaptive_tab_bar" customModuleProvider="target"/>
|
||||
<tabBarItem key="tabBarItem" title="Item" id="g86-Lf-lWF" customClass="AdaptiveTabBarItem" customModule="example_count_launches_adaptive_tabbar" customModuleProvider="target"/>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="Ds1-lP-WuT" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
@@ -139,7 +154,7 @@
|
||||
<!--Item-->
|
||||
<scene sceneID="RUI-wr-KlE">
|
||||
<objects>
|
||||
<viewController id="aXk-96-nwf" customClass="MenuViewController" customModule="adaptive_tab_bar" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<viewController id="aXk-96-nwf" customClass="MenuViewController" customModule="example_count_launches_adaptive_tabbar" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<layoutGuides>
|
||||
<viewControllerLayoutGuide type="top" id="Aha-rh-ib6"/>
|
||||
<viewControllerLayoutGuide type="bottom" id="aNR-L8-QaD"/>
|
||||
@@ -148,13 +163,20 @@
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="background" translatesAutoresizingMaskIntoConstraints="NO" id="GGw-pn-6CX">
|
||||
<rect key="frame" x="0.0" y="0.0" width="640" height="550"/>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="background" translatesAutoresizingMaskIntoConstraints="NO" id="GGw-pn-6CX">
|
||||
<rect key="frame" x="0.0" y="0.0" width="640" height="551"/>
|
||||
</imageView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstItem="GGw-pn-6CX" firstAttribute="top" secondItem="UyR-nf-sp6" secondAttribute="topMargin" id="JNr-AP-tWr"/>
|
||||
<constraint firstItem="GGw-pn-6CX" firstAttribute="top" secondItem="UyR-nf-sp6" secondAttribute="topMargin" id="MSj-7q-ac7"/>
|
||||
<constraint firstItem="GGw-pn-6CX" firstAttribute="leading" secondItem="UyR-nf-sp6" secondAttribute="leading" id="SZF-JG-V57"/>
|
||||
<constraint firstItem="aNR-L8-QaD" firstAttribute="top" secondItem="GGw-pn-6CX" secondAttribute="bottom" id="YDT-AA-Wjy"/>
|
||||
<constraint firstItem="aNR-L8-QaD" firstAttribute="top" secondItem="GGw-pn-6CX" secondAttribute="bottom" id="nys-sX-kRN"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<tabBarItem key="tabBarItem" title="Item" id="RnB-fU-3RS" customClass="AdaptiveTabBarItem" customModule="adaptive_tab_bar" customModuleProvider="target"/>
|
||||
<tabBarItem key="tabBarItem" title="Item" id="RnB-fU-3RS" customClass="AdaptiveTabBarItem" customModule="example_count_launches_adaptive_tabbar" customModuleProvider="target"/>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="Hsc-p3-elF" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
@@ -163,7 +185,7 @@
|
||||
<!--Item-->
|
||||
<scene sceneID="B98-FR-Rjt">
|
||||
<objects>
|
||||
<viewController id="BgE-dr-gW8" customClass="MoreViewController" customModule="adaptive_tab_bar" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<viewController id="BgE-dr-gW8" customClass="MoreViewController" customModule="example_count_launches_adaptive_tabbar" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<layoutGuides>
|
||||
<viewControllerLayoutGuide type="top" id="r9s-DG-v8Y"/>
|
||||
<viewControllerLayoutGuide type="bottom" id="mju-qR-F4m"/>
|
||||
@@ -172,13 +194,19 @@
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="background" translatesAutoresizingMaskIntoConstraints="NO" id="fel-JW-y8K">
|
||||
<rect key="frame" x="0.0" y="0.0" width="640" height="550"/>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="background" translatesAutoresizingMaskIntoConstraints="NO" id="fel-JW-y8K">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="551"/>
|
||||
</imageView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstItem="mju-qR-F4m" firstAttribute="top" secondItem="fel-JW-y8K" secondAttribute="bottom" id="czL-kW-Gi5"/>
|
||||
<constraint firstItem="fel-JW-y8K" firstAttribute="top" secondItem="dgq-yB-Neb" secondAttribute="top" id="h6H-Nt-0EU"/>
|
||||
<constraint firstItem="fel-JW-y8K" firstAttribute="leading" secondItem="dgq-yB-Neb" secondAttribute="leading" id="lvq-kK-shl"/>
|
||||
<constraint firstAttribute="trailing" secondItem="fel-JW-y8K" secondAttribute="trailing" id="mnN-oR-w60"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<tabBarItem key="tabBarItem" title="Item" id="uWZ-JL-cND" customClass="AdaptiveTabBarItem" customModule="adaptive_tab_bar" customModuleProvider="target"/>
|
||||
<tabBarItem key="tabBarItem" title="Item" id="uWZ-JL-cND" customClass="AdaptiveTabBarItem" customModule="example_count_launches_adaptive_tabbar" customModuleProvider="target"/>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="xAq-zT-Wnn" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
@@ -187,6 +215,5 @@
|
||||
</scenes>
|
||||
<resources>
|
||||
<image name="background" width="640" height="1136"/>
|
||||
<image name="second" width="30" height="30"/>
|
||||
</resources>
|
||||
</document>
|
||||
|
||||
@@ -17,12 +17,19 @@ class AdaptiveTabBarItem: UITabBarItem , AdaptiveApperanceProtocol {
|
||||
|
||||
}
|
||||
|
||||
func setFontToAdaptiveButton(font: UIFont){
|
||||
func setFontToAdaptiveButton(font: UIFont , controlState:UIControlState){
|
||||
|
||||
self.setTitleTextAttributes(NSDictionary(objects: [font], forKeys: [NSFontAttributeName]), forState: UIControlState.Normal)
|
||||
self.setTitleTextAttributes(NSDictionary(objects: [font], forKeys: [NSFontAttributeName]), forState: controlState)
|
||||
|
||||
}
|
||||
|
||||
func setTitleColorToAdaptiveButton(color: UIColor, controlState:UIControlState){
|
||||
var dictionary = self.titleTextAttributesForState(UIControlState.Normal)
|
||||
dictionary.updateValue(color, forKey: NSForegroundColorAttributeName)
|
||||
self.setTitleTextAttributes(dictionary, forState: controlState)
|
||||
|
||||
}
|
||||
|
||||
func setTitleToAdaptiveButton(text: NSString){
|
||||
self.title = text
|
||||
}
|
||||
@@ -43,11 +50,7 @@ class AdaptiveTabBarItem: UITabBarItem , AdaptiveApperanceProtocol {
|
||||
self.setTitlePositionAdjustment(offset)
|
||||
}
|
||||
|
||||
func setTitleColorToAdaptiveButton(color: UIColor){
|
||||
var dictionary = self.titleTextAttributesForState(UIControlState.Normal)
|
||||
dictionary.updateValue(color, forKey: NSForegroundColorAttributeName)
|
||||
self.setTitleTextAttributes(dictionary, forState: UIControlState.Normal)
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<dict>
|
||||
<key>SchemeUserState</key>
|
||||
<dict>
|
||||
<key>example-count-launches-adaptive-tabbar.xcscheme</key>
|
||||
<key>example-count-launches-adaptive-tabbar.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>2</integer>
|
||||
|
||||
@@ -14,11 +14,11 @@
|
||||
<string>https://github.com/Ramotion/adaptive-tab-bar.git</string>
|
||||
</dict>
|
||||
<key>IDESourceControlProjectPath</key>
|
||||
<string>adaptive-tab-bar/SamplesAdaptiveController.xcworkspace</string>
|
||||
<string>SamplesAdaptiveController.xcworkspace</string>
|
||||
<key>IDESourceControlProjectRelativeInstallPathDictionary</key>
|
||||
<dict>
|
||||
<key>552AF48197B9D7FDBD86FA325146F289549818B8</key>
|
||||
<string>../..</string>
|
||||
<string>..</string>
|
||||
</dict>
|
||||
<key>IDESourceControlProjectURL</key>
|
||||
<string>https://github.com/Ramotion/adaptive-tab-bar.git</string>
|
||||
|
||||
@@ -2,9 +2,23 @@
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>BuildLocationStyle</key>
|
||||
<string>UseAppPreferences</string>
|
||||
<key>CustomBuildLocationType</key>
|
||||
<string>RelativeToDerivedData</string>
|
||||
<key>DerivedDataCustomLocation</key>
|
||||
<string>DerivedData</string>
|
||||
<key>DerivedDataLocationStyle</key>
|
||||
<string>WorkspaceRelativePath</string>
|
||||
<key>HasAskedToTakeAutomaticSnapshotBeforeSignificantChanges</key>
|
||||
<true/>
|
||||
<key>IssueFilterStyle</key>
|
||||
<string>ShowActiveSchemeOnly</string>
|
||||
<key>LiveSourceIssuesEnabled</key>
|
||||
<true/>
|
||||
<key>SnapshotAutomaticallyBeforeSignificantChanges</key>
|
||||
<true/>
|
||||
<key>SnapshotLocationStyle</key>
|
||||
<string>Default</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
||||
@@ -9,13 +9,341 @@
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "AdaptiveController/AdaptiveController/AdaptiveButtonAppearance.swift"
|
||||
timestampString = "434471100.953196"
|
||||
filePath = "AdaptiveController/AdaptiveController/AdaptiveButtonsStateManager.swift"
|
||||
timestampString = "437574364.516451"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "52"
|
||||
endingLineNumber = "52"
|
||||
landmarkName = "setImageNamesForStatesImageExtesions(_:imageExtensionsForState:)"
|
||||
startingLineNumber = "54"
|
||||
endingLineNumber = "54"
|
||||
landmarkName = "setupButtonsAppearanceFromState(_:buttonsAray:buttonsAppearances:)"
|
||||
landmarkType = "5">
|
||||
<Locations>
|
||||
<Location
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
symbolName = "AdaptiveController.AdaptiveButtonsStateManager.setupButtonsAppearanceFromState <A>(AdaptiveController.AdaptiveButtonsStateManager<A>.Type)(A, buttonsAray : Swift.Array<AdaptiveController.AdaptiveApperanceProtocol>, buttonsAppearances : Swift.Array<AdaptiveController.AdaptiveButtonAppearance>) -> ()"
|
||||
moduleName = "AdaptiveController"
|
||||
urlString = "file:///Users/arcilite/adaptive-tab-bar/AdaptiveController/AdaptiveController/AdaptiveButtonsStateManager.swift"
|
||||
timestampString = "437511910.467646"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "62"
|
||||
endingLineNumber = "62"
|
||||
offsetFromSymbolStart = "6790">
|
||||
</Location>
|
||||
<Location
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
symbolName = "reabstraction thunk helper <T_0_0 where T_0_0: AdaptiveController.AdaptiveState> from @callee_owned (@unowned Swift.Optional<ObjectiveC.UIImage>) -> (@unowned ()) to @callee_owned (@owned Swift.Optional<ObjectiveC.UIImage>) -> (@unowned ())"
|
||||
moduleName = "AdaptiveController"
|
||||
urlString = "file:///Users/arcilite/adaptive-tab-bar/AdaptiveController/AdaptiveController/AdaptiveButtonsStateManager.swift"
|
||||
timestampString = "437511910.467845"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "62"
|
||||
endingLineNumber = "62"
|
||||
offsetFromSymbolStart = "15">
|
||||
</Location>
|
||||
<Location
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
symbolName = "reabstraction thunk helper <T_0_0 where T_0_0: AdaptiveController.AdaptiveState> from @callee_owned (@owned Swift.Optional<ObjectiveC.UIImage>) -> (@unowned ()) to @callee_owned (@in Swift.Optional<ObjectiveC.UIImage>) -> (@out ())"
|
||||
moduleName = "AdaptiveController"
|
||||
urlString = "file:///Users/arcilite/adaptive-tab-bar/AdaptiveController/AdaptiveController/AdaptiveButtonsStateManager.swift"
|
||||
timestampString = "437511910.468033"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "62"
|
||||
endingLineNumber = "62"
|
||||
offsetFromSymbolStart = "22">
|
||||
</Location>
|
||||
<Location
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
symbolName = "reabstraction thunk helper <T_0_0 where T_0_0: AdaptiveController.AdaptiveState> from @callee_owned (@in Swift.Optional<ObjectiveC.UIImage>) -> (@out ()) to @callee_owned (@owned Swift.Optional<ObjectiveC.UIImage>) -> (@unowned ())"
|
||||
moduleName = "AdaptiveController"
|
||||
urlString = "file:///Users/arcilite/adaptive-tab-bar/AdaptiveController/AdaptiveController/AdaptiveButtonsStateManager.swift"
|
||||
timestampString = "437511910.468154"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "62"
|
||||
endingLineNumber = "62"
|
||||
offsetFromSymbolStart = "27">
|
||||
</Location>
|
||||
</Locations>
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "Samples/adaptive-launches-tabbar/adaptive-launches-tabbar/CustomTabBar/AdaptiveTabBarItem.swift"
|
||||
timestampString = "437511146.16835"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "38"
|
||||
endingLineNumber = "38"
|
||||
landmarkName = "setImageToAdaptiveButton(_:)"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "Samples/adaptive-launches-tabbar/adaptive-launches-tabbar/CustomTabBar/AdaptiveTabBarItem.swift"
|
||||
timestampString = "437556805.775899"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "22"
|
||||
endingLineNumber = "22"
|
||||
landmarkName = "setFontToAdaptiveButton(_:controlState:)"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "Samples/adaptive-launches-tabbar/adaptive-launches-tabbar/CustomTabBar/AdaptiveTabBarItem.swift"
|
||||
timestampString = "437556819.298386"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "21"
|
||||
endingLineNumber = "21"
|
||||
landmarkName = "setFontToAdaptiveButton(_:controlState:)"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "Samples/adaptive-launches-tabbar/adaptive-launches-tabbar/CustomTabBar/AdaptiveTabBarItem.swift"
|
||||
timestampString = "437556837.150922"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "29"
|
||||
endingLineNumber = "29"
|
||||
landmarkName = "setTitleColorToAdaptiveButton(_:controlState:)"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "Samples/adaptive-launches-tabbar/adaptive-launches-tabbar/CustomTabBar/AdaptiveTabBarItem.swift"
|
||||
timestampString = "437556844.951962"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "27"
|
||||
endingLineNumber = "27"
|
||||
landmarkName = "setTitleColorToAdaptiveButton(_:controlState:)"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "AdaptiveController/AdaptiveController/ControlStateAppearance.swift"
|
||||
timestampString = "437572295.023066"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "209"
|
||||
endingLineNumber = "209"
|
||||
landmarkName = "setObjectDictionary(_:)"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "AdaptiveController/AdaptiveController/AdaptiveButtonsStateManager.swift"
|
||||
timestampString = "437573877.33263"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "33"
|
||||
endingLineNumber = "33"
|
||||
landmarkName = "setupButtonsAppearanceFromState(_:buttonsAray:buttonsAppearances:)"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "AdaptiveController/AdaptiveController/AdaptiveDateState.swift"
|
||||
timestampString = "437573962.85138"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "43"
|
||||
endingLineNumber = "43"
|
||||
landmarkName = "stateRemainDays(_:countDaysToSmallTextState:countDaysToImageState:)"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "AdaptiveController/AdaptiveController/AdaptiveDateState.swift"
|
||||
timestampString = "437573964.596475"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "46"
|
||||
endingLineNumber = "46"
|
||||
landmarkName = "stateRemainDays(_:countDaysToSmallTextState:countDaysToImageState:)"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "AdaptiveController/AdaptiveController/AdaptiveDateState.swift"
|
||||
timestampString = "437573967.947855"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "22"
|
||||
endingLineNumber = "22"
|
||||
landmarkName = "init(installDate:currentDate:countDaysToSmallTextState:countDaysToImageState:)"
|
||||
landmarkType = "5">
|
||||
<Locations>
|
||||
<Location
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
symbolName = "AdaptiveController.AdaptiveDateState.init (AdaptiveController.AdaptiveDateState.Type)(installDate : ObjectiveC.NSDate, currentDate : ObjectiveC.NSDate, countDaysToSmallTextState : Swift.Int, countDaysToImageState : Swift.Int) -> AdaptiveController.AdaptiveDateState"
|
||||
moduleName = "AdaptiveController"
|
||||
urlString = "file:///Users/arcilite/adaptive-tab-bar/AdaptiveController/AdaptiveController/AdaptiveDateState.swift"
|
||||
timestampString = "437574130.940246"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "23"
|
||||
endingLineNumber = "23"
|
||||
offsetFromSymbolStart = "261">
|
||||
</Location>
|
||||
<Location
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
symbolName = "AdaptiveController.AdaptiveDateState.init (AdaptiveController.AdaptiveDateState.Type)(installDate : ObjectiveC.NSDate, currentDate : ObjectiveC.NSDate, countDaysToSmallTextState : Swift.Int, countDaysToImageState : Swift.Int) -> AdaptiveController.AdaptiveDateState"
|
||||
moduleName = "AdaptiveController"
|
||||
urlString = "file:///Users/arcilite/adaptive-tab-bar/AdaptiveController/AdaptiveController/AdaptiveDateState.swift"
|
||||
timestampString = "437574130.940351"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "23"
|
||||
endingLineNumber = "23"
|
||||
offsetFromSymbolStart = "283">
|
||||
</Location>
|
||||
</Locations>
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "AdaptiveController/AdaptiveController/AdaptiveButtonsStateManager.swift"
|
||||
timestampString = "437574364.516451"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "41"
|
||||
endingLineNumber = "41"
|
||||
landmarkName = "setupButtonsAppearanceFromState(_:buttonsAray:buttonsAppearances:)"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "AdaptiveController/AdaptiveController/AdaptiveButtonsStateManager.swift"
|
||||
timestampString = "437574360.622633"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "40"
|
||||
endingLineNumber = "40"
|
||||
landmarkName = "setupButtonsAppearanceFromState(_:buttonsAray:buttonsAppearances:)"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "AdaptiveController/AdaptiveController/AdaptiveButtonAppearance.swift"
|
||||
timestampString = "437574477.784606"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "46"
|
||||
endingLineNumber = "46"
|
||||
landmarkName = "setObjectDictionary(_:)"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "Yes"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "Samples/adaptive-dates-tabbar/adaptive-tab-bar/CustomTabBar/AdaptiveTabBarItem.swift"
|
||||
timestampString = "437677746.631783"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "29"
|
||||
endingLineNumber = "29"
|
||||
landmarkName = "setImageToAdaptiveButton(_:)"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "AdaptiveController/AdaptiveControllerTests/AdaptiveButtonAppearanceTest.swift"
|
||||
timestampString = "438276611.63638"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "21"
|
||||
endingLineNumber = "21"
|
||||
landmarkName = "testAppearanceSetup()"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
@@ -26,137 +354,41 @@
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "AdaptiveController/AdaptiveControllerTests/AdaptiveDateStateTest.swift"
|
||||
timestampString = "434966468.950239"
|
||||
timestampString = "437905449.96838"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "33"
|
||||
endingLineNumber = "33"
|
||||
landmarkName = "tearDown()"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "AdaptiveController/AdaptiveController/AdaptiveButtonAppearance.swift"
|
||||
timestampString = "435240731.057037"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "60"
|
||||
endingLineNumber = "60"
|
||||
landmarkName = "setButonTitle(_:state:)"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "AdaptiveController/AdaptiveController/AdaptiveButtonAppearance.swift"
|
||||
timestampString = "435241015.75753"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "68"
|
||||
endingLineNumber = "68"
|
||||
landmarkName = "getButonTitleForState(_:)"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "AdaptiveController/AdaptiveController/AdaptiveButtonAppearance.swift"
|
||||
timestampString = "435241018.694539"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "71"
|
||||
endingLineNumber = "71"
|
||||
landmarkName = "getButonTitleForState(_:)"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "AdaptiveController/AdaptiveController/AdaptiveButtonAppearance.swift"
|
||||
timestampString = "435241020.267833"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "73"
|
||||
endingLineNumber = "73"
|
||||
landmarkName = "getButonTitleForState(_:)"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "AdaptiveController/AdaptiveController/AdaptiveButtonAppearance.swift"
|
||||
timestampString = "435241219.58597"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "67"
|
||||
endingLineNumber = "67"
|
||||
landmarkName = "getButonTitleForState(_:)"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "AdaptiveController/AdaptiveControllerTests/TestTabBarItem.swift"
|
||||
timestampString = "435310351.588265"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "63"
|
||||
endingLineNumber = "63"
|
||||
landmarkName = "setTitleColorToAdaptiveButton(_:)"
|
||||
startingLineNumber = "37"
|
||||
endingLineNumber = "37"
|
||||
landmarkName = "testDefaultState()"
|
||||
landmarkType = "5">
|
||||
<Locations>
|
||||
<Location
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
symbolName = "AdaptiveControllerTests.TestTabBarItem.setTitleColorToAdaptiveButton (AdaptiveControllerTests.TestTabBarItem)(ObjectiveC.UIColor) -> ()"
|
||||
symbolName = "AdaptiveControllerTests.AdaptiveDateStateTest.testDefaultState (AdaptiveControllerTests.AdaptiveDateStateTest)() -> ()"
|
||||
moduleName = "AdaptiveControllerTests"
|
||||
urlString = "file:///Users/arcilite/adaptive-tab-bar/adaptive-tab-bar/AdaptiveController/AdaptiveControllerTests/TestTabBarItem.swift"
|
||||
timestampString = "435241968.974153"
|
||||
urlString = "file:///Users/arcilite/adaptive-tab-bar/AdaptiveController/AdaptiveControllerTests/AdaptiveDateStateTest.swift"
|
||||
timestampString = "437915565.762825"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "59"
|
||||
endingLineNumber = "59"
|
||||
offsetFromSymbolStart = "27">
|
||||
startingLineNumber = "37"
|
||||
endingLineNumber = "37"
|
||||
offsetFromSymbolStart = "46">
|
||||
</Location>
|
||||
<Location
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
symbolName = "AdaptiveControllerTests.TestTabBarItem.(setTitleColorToAdaptiveButton (AdaptiveControllerTests.TestTabBarItem) -> (ObjectiveC.UIColor) -> ()).(implicit closure #1)"
|
||||
symbolName = "AdaptiveControllerTests.AdaptiveDateStateTest.(testDefaultState (AdaptiveControllerTests.AdaptiveDateStateTest) -> () -> ()).(implicit closure #1)"
|
||||
moduleName = "AdaptiveControllerTests"
|
||||
urlString = "file:///Users/arcilite/adaptive-tab-bar/adaptive-tab-bar/AdaptiveController/AdaptiveControllerTests/TestTabBarItem.swift"
|
||||
timestampString = "435241968.974291"
|
||||
urlString = "file:///Users/arcilite/adaptive-tab-bar/AdaptiveController/AdaptiveControllerTests/AdaptiveDateStateTest.swift"
|
||||
timestampString = "437915565.763012"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "59"
|
||||
endingLineNumber = "59"
|
||||
offsetFromSymbolStart = "48">
|
||||
startingLineNumber = "37"
|
||||
endingLineNumber = "37"
|
||||
offsetFromSymbolStart = "45">
|
||||
</Location>
|
||||
</Locations>
|
||||
</BreakpointContent>
|
||||
@@ -167,59 +399,13 @@
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "AdaptiveController/AdaptiveControllerTests/TestTabBarItem.swift"
|
||||
timestampString = "435310351.588265"
|
||||
filePath = "AdaptiveController/AdaptiveControllerTests/AdaptiveLaunchesStateTest.swift"
|
||||
timestampString = "437915542.065597"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "42"
|
||||
endingLineNumber = "42"
|
||||
landmarkName = "setImageToAdaptiveButton(_:)"
|
||||
landmarkType = "5">
|
||||
<Locations>
|
||||
<Location
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
symbolName = "AdaptiveControllerTests.TestTabBarItem.setImageToAdaptiveButton (AdaptiveControllerTests.TestTabBarItem)(ObjectiveC.UIImage) -> ()"
|
||||
moduleName = "AdaptiveControllerTests"
|
||||
urlString = "file:///Users/arcilite/adaptive-tab-bar/adaptive-tab-bar/AdaptiveController/AdaptiveControllerTests/TestTabBarItem.swift"
|
||||
timestampString = "435241968.97443"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "41"
|
||||
endingLineNumber = "41"
|
||||
offsetFromSymbolStart = "27">
|
||||
</Location>
|
||||
<Location
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
symbolName = "AdaptiveControllerTests.TestTabBarItem.(setImageToAdaptiveButton (AdaptiveControllerTests.TestTabBarItem) -> (ObjectiveC.UIImage) -> ()).(implicit closure #1)"
|
||||
moduleName = "AdaptiveControllerTests"
|
||||
urlString = "file:///Users/arcilite/adaptive-tab-bar/adaptive-tab-bar/AdaptiveController/AdaptiveControllerTests/TestTabBarItem.swift"
|
||||
timestampString = "435241968.974569"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "41"
|
||||
endingLineNumber = "41"
|
||||
offsetFromSymbolStart = "48">
|
||||
</Location>
|
||||
</Locations>
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "Yes"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "AdaptiveController/AdaptiveControllerTests/TestTabBarItem.swift"
|
||||
timestampString = "435310351.588265"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "47"
|
||||
endingLineNumber = "47"
|
||||
landmarkName = "setSelectedImageToAdaptiveButton(_:)"
|
||||
startingLineNumber = "52"
|
||||
endingLineNumber = "52"
|
||||
landmarkName = "testImageState()"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
@@ -229,270 +415,42 @@
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "AdaptiveController/AdaptiveControllerTests/TestTabBarItem.swift"
|
||||
timestampString = "435246058.504401"
|
||||
filePath = "AdaptiveController/AdaptiveControllerTests/AdaptiveButtonAppearanceTest.swift"
|
||||
timestampString = "438277726.218459"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "29"
|
||||
endingLineNumber = "29"
|
||||
landmarkName = "setFontToAdaptiveButton(_:)"
|
||||
startingLineNumber = "55"
|
||||
endingLineNumber = "55"
|
||||
landmarkName = "testAppearanceSetup()"
|
||||
landmarkType = "5">
|
||||
<Locations>
|
||||
<Location
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
symbolName = "AdaptiveControllerTests.TestTabBarItem.setFontToAdaptiveButton (AdaptiveControllerTests.TestTabBarItem)(ObjectiveC.UIFont) -> ()"
|
||||
symbolName = "AdaptiveControllerTests.AdaptiveButtonAppearanceTest.testAppearanceSetup (AdaptiveControllerTests.AdaptiveButtonAppearanceTest)() -> ()"
|
||||
moduleName = "AdaptiveControllerTests"
|
||||
urlString = "file:///Users/arcilite/adaptive-tab-bar/adaptive-tab-bar/AdaptiveController/AdaptiveControllerTests/TestTabBarItem.swift"
|
||||
timestampString = "435244047.515732"
|
||||
urlString = "file:///Users/arcilite/adaptive-tab-bar/AdaptiveController/AdaptiveControllerTests/AdaptiveButtonAppearanceTest.swift"
|
||||
timestampString = "438277726.876122"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "30"
|
||||
endingLineNumber = "30"
|
||||
offsetFromSymbolStart = "237">
|
||||
startingLineNumber = "55"
|
||||
endingLineNumber = "55"
|
||||
offsetFromSymbolStart = "4712">
|
||||
</Location>
|
||||
<Location
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
symbolName = "AdaptiveControllerTests.TestTabBarItem.(setFontToAdaptiveButton (AdaptiveControllerTests.TestTabBarItem) -> (ObjectiveC.UIFont) -> ()).(implicit closure #2)"
|
||||
symbolName = "AdaptiveControllerTests.AdaptiveButtonAppearanceTest.(testAppearanceSetup (AdaptiveControllerTests.AdaptiveButtonAppearanceTest) -> () -> ()).(implicit closure #2)"
|
||||
moduleName = "AdaptiveControllerTests"
|
||||
urlString = "file:///Users/arcilite/adaptive-tab-bar/adaptive-tab-bar/AdaptiveController/AdaptiveControllerTests/TestTabBarItem.swift"
|
||||
timestampString = "435244047.516049"
|
||||
urlString = "file:///Users/arcilite/adaptive-tab-bar/AdaptiveController/AdaptiveControllerTests/AdaptiveButtonAppearanceTest.swift"
|
||||
timestampString = "438277726.876251"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "30"
|
||||
endingLineNumber = "30"
|
||||
offsetFromSymbolStart = "48">
|
||||
</Location>
|
||||
</Locations>
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "AdaptiveController/AdaptiveControllerTests/TestTabBarItem.swift"
|
||||
timestampString = "435246058.504401"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "35"
|
||||
endingLineNumber = "35"
|
||||
landmarkName = "setTitleToAdaptiveButton(_:)"
|
||||
landmarkType = "5">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "AdaptiveController/AdaptiveControllerTests/TestTabBarItem.swift"
|
||||
timestampString = "435242969.357178"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "29"
|
||||
endingLineNumber = "29"
|
||||
landmarkName = "setFontToAdaptiveButton(_:)"
|
||||
landmarkType = "5">
|
||||
<Locations>
|
||||
<Location
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
symbolName = "AdaptiveControllerTests.TestTabBarItem.setFontToAdaptiveButton (AdaptiveControllerTests.TestTabBarItem)(ObjectiveC.UIFont) -> ()"
|
||||
moduleName = "AdaptiveControllerTests"
|
||||
urlString = "file:///Users/arcilite/adaptive-tab-bar/adaptive-tab-bar/AdaptiveController/AdaptiveControllerTests/TestTabBarItem.swift"
|
||||
timestampString = "435243036.196487"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "29"
|
||||
endingLineNumber = "29"
|
||||
offsetFromSymbolStart = "52">
|
||||
</Location>
|
||||
<Location
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
symbolName = "AdaptiveControllerTests.TestTabBarItem.(setFontToAdaptiveButton (AdaptiveControllerTests.TestTabBarItem) -> (ObjectiveC.UIFont) -> ()).(implicit closure #1)"
|
||||
moduleName = "AdaptiveControllerTests"
|
||||
urlString = "file:///Users/arcilite/adaptive-tab-bar/adaptive-tab-bar/AdaptiveController/AdaptiveControllerTests/TestTabBarItem.swift"
|
||||
timestampString = "435243036.196689"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "29"
|
||||
endingLineNumber = "29"
|
||||
offsetFromSymbolStart = "15">
|
||||
</Location>
|
||||
</Locations>
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "AdaptiveController/AdaptiveController/AdaptiveButtonsStateManager.swift"
|
||||
timestampString = "435309147.908624"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "69"
|
||||
endingLineNumber = "69"
|
||||
landmarkName = "setButtonsState(_:buttonsAray:buttonsAppearance:)"
|
||||
landmarkType = "5">
|
||||
<Locations>
|
||||
<Location
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
symbolName = "AdaptiveController.AdaptiveButtonsStateManager.setButtonsState (AdaptiveController.AdaptiveButtonsStateManager)(AdaptiveController.AdaptiveState, buttonsAray : Swift.Array<AdaptiveController.AdaptiveApperanceProtocol>, buttonsAppearance : Swift.Array<AdaptiveController.AdaptiveButtonAppearance>) -> ()"
|
||||
moduleName = "AdaptiveController"
|
||||
urlString = "file:///Users/arcilite/adaptive-tab-bar/adaptive-tab-bar/AdaptiveController/AdaptiveController/AdaptiveButtonsStateManager.swift"
|
||||
timestampString = "435309261.958128"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "70"
|
||||
endingLineNumber = "70"
|
||||
offsetFromSymbolStart = "4991">
|
||||
</Location>
|
||||
<Location
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
symbolName = "AdaptiveController.AdaptiveButtonsStateManager.setButtonsState (AdaptiveController.AdaptiveButtonsStateManager)(AdaptiveController.AdaptiveState, buttonsAray : Swift.Array<AdaptiveController.AdaptiveApperanceProtocol>, buttonsAppearance : Swift.Array<AdaptiveController.AdaptiveButtonAppearance>) -> ()"
|
||||
moduleName = "AdaptiveController"
|
||||
urlString = "file:///Users/arcilite/adaptive-tab-bar/adaptive-tab-bar/AdaptiveController/AdaptiveController/AdaptiveButtonsStateManager.swift"
|
||||
timestampString = "435309261.958306"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "70"
|
||||
endingLineNumber = "70"
|
||||
offsetFromSymbolStart = "5343">
|
||||
</Location>
|
||||
</Locations>
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "AdaptiveController/AdaptiveController/AdaptiveButtonsStateManager.swift"
|
||||
timestampString = "435309161.63493"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "67"
|
||||
endingLineNumber = "67"
|
||||
landmarkName = "setButtonsState(_:buttonsAray:buttonsAppearance:)"
|
||||
landmarkType = "5">
|
||||
<Locations>
|
||||
<Location
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
symbolName = "AdaptiveController.AdaptiveButtonsStateManager.setButtonsState (AdaptiveController.AdaptiveButtonsStateManager)(AdaptiveController.AdaptiveState, buttonsAray : Swift.Array<AdaptiveController.AdaptiveApperanceProtocol>, buttonsAppearance : Swift.Array<AdaptiveController.AdaptiveButtonAppearance>) -> ()"
|
||||
moduleName = "AdaptiveController"
|
||||
urlString = "file:///Users/arcilite/adaptive-tab-bar/adaptive-tab-bar/AdaptiveController/AdaptiveController/AdaptiveButtonsStateManager.swift"
|
||||
timestampString = "435309261.958489"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "67"
|
||||
endingLineNumber = "67"
|
||||
offsetFromSymbolStart = "3885">
|
||||
</Location>
|
||||
<Location
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
symbolName = "reabstraction thunk helper from @callee_owned (@unowned Swift.Optional<ObjectiveC.UIImage>) -> (@unowned ()) to @callee_owned (@owned Swift.Optional<ObjectiveC.UIImage>) -> (@unowned ())"
|
||||
moduleName = "AdaptiveController"
|
||||
urlString = "file:///Users/arcilite/adaptive-tab-bar/adaptive-tab-bar/AdaptiveController/AdaptiveController/AdaptiveButtonsStateManager.swift"
|
||||
timestampString = "435309261.958655"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "67"
|
||||
endingLineNumber = "67"
|
||||
offsetFromSymbolStart = "15">
|
||||
</Location>
|
||||
<Location
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
symbolName = "reabstraction thunk helper from @callee_owned (@owned Swift.Optional<ObjectiveC.UIImage>) -> (@unowned ()) to @callee_owned (@in Swift.Optional<ObjectiveC.UIImage>) -> (@out ())"
|
||||
moduleName = "AdaptiveController"
|
||||
urlString = "file:///Users/arcilite/adaptive-tab-bar/adaptive-tab-bar/AdaptiveController/AdaptiveController/AdaptiveButtonsStateManager.swift"
|
||||
timestampString = "435309261.958823"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "67"
|
||||
endingLineNumber = "67"
|
||||
offsetFromSymbolStart = "16">
|
||||
</Location>
|
||||
<Location
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
symbolName = "reabstraction thunk helper from @callee_owned (@in Swift.Optional<ObjectiveC.UIImage>) -> (@out ()) to @callee_owned (@owned Swift.Optional<ObjectiveC.UIImage>) -> (@unowned ())"
|
||||
moduleName = "AdaptiveController"
|
||||
urlString = "file:///Users/arcilite/adaptive-tab-bar/adaptive-tab-bar/AdaptiveController/AdaptiveController/AdaptiveButtonsStateManager.swift"
|
||||
timestampString = "435309261.959034"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "67"
|
||||
endingLineNumber = "67"
|
||||
offsetFromSymbolStart = "20">
|
||||
</Location>
|
||||
</Locations>
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "AdaptiveController/AdaptiveController/AdaptiveButtonsStateManager.swift"
|
||||
timestampString = "435309265.926216"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "68"
|
||||
endingLineNumber = "68"
|
||||
landmarkName = "setButtonsState(_:buttonsAray:buttonsAppearance:)"
|
||||
landmarkType = "5">
|
||||
<Locations>
|
||||
<Location
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
symbolName = "AdaptiveController.AdaptiveButtonsStateManager.setButtonsState (AdaptiveController.AdaptiveButtonsStateManager)(AdaptiveController.AdaptiveState, buttonsAray : Swift.Array<AdaptiveController.AdaptiveApperanceProtocol>, buttonsAppearance : Swift.Array<AdaptiveController.AdaptiveButtonAppearance>) -> ()"
|
||||
moduleName = "AdaptiveController"
|
||||
urlString = "file:///Users/arcilite/adaptive-tab-bar/adaptive-tab-bar/AdaptiveController/AdaptiveController/AdaptiveButtonsStateManager.swift"
|
||||
timestampString = "435309265.927959"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "70"
|
||||
endingLineNumber = "70"
|
||||
offsetFromSymbolStart = "4991">
|
||||
</Location>
|
||||
<Location
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
symbolName = "AdaptiveController.AdaptiveButtonsStateManager.setButtonsState (AdaptiveController.AdaptiveButtonsStateManager)(AdaptiveController.AdaptiveState, buttonsAray : Swift.Array<AdaptiveController.AdaptiveApperanceProtocol>, buttonsAppearance : Swift.Array<AdaptiveController.AdaptiveButtonAppearance>) -> ()"
|
||||
moduleName = "AdaptiveController"
|
||||
urlString = "file:///Users/arcilite/adaptive-tab-bar/adaptive-tab-bar/AdaptiveController/AdaptiveController/AdaptiveButtonsStateManager.swift"
|
||||
timestampString = "435309265.928192"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "70"
|
||||
endingLineNumber = "70"
|
||||
offsetFromSymbolStart = "5343">
|
||||
startingLineNumber = "55"
|
||||
endingLineNumber = "55"
|
||||
offsetFromSymbolStart = "24">
|
||||
</Location>
|
||||
</Locations>
|
||||
</BreakpointContent>
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
Pod::Spec.new do |s|
|
||||
s.name = 'AdaptiveController'
|
||||
s.version = '0.0.1'
|
||||
s.license = { :type => 'MIT' }
|
||||
s.homepage = 'https://github.com/Ramotion/adaptive-tab-bar'
|
||||
s.authors = { 'Artem Kislitsyn, Yuri Vasilenko' => 'yuri.v@ramotion.com' }
|
||||
s.summary = 'AdaptiveController is a Progressive Reduction Swift module for adding custom states to Native or Custom UI elements.'
|
||||
s.source = { :git => 'https://github.com/Ramotion/adaptive-tab-bar.git', :tag => "#{s.version}" }
|
||||
s.source_files = 'AdaptiveController/AdaptiveController/*.{h,swift}'
|
||||
s.frameworks = 'Swift'
|
||||
s.requires_arc = true
|
||||
end
|
||||
@@ -1,488 +0,0 @@
|
||||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 46;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
6A3E3A1C19E05E5B00C7504B /* AdaptiveLaunchesState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A3E3A1B19E05E5B00C7504B /* AdaptiveLaunchesState.swift */; };
|
||||
6A3ED0CA19ED02DA006F06DD /* DateExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A3ED0C919ED02DA006F06DD /* DateExtension.swift */; };
|
||||
6A3ED0CC19ED058F006F06DD /* AdaptiveDateStateTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A3ED0CB19ED058F006F06DD /* AdaptiveDateStateTest.swift */; };
|
||||
6A3ED0CE19ED05D8006F06DD /* AdaptiveLaunchesStateTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A3ED0CD19ED05D8006F06DD /* AdaptiveLaunchesStateTest.swift */; };
|
||||
6A6270A619F1653900D02B1A /* watch@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 6A6270A519F1653900D02B1A /* watch@2x.png */; };
|
||||
6AAE857719D329C6005672CA /* AdaptiveButtonAppearance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6AAE857319D329C6005672CA /* AdaptiveButtonAppearance.swift */; };
|
||||
6AAE857819D329C6005672CA /* AdaptiveButtonsStateManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6AAE857419D329C6005672CA /* AdaptiveButtonsStateManager.swift */; };
|
||||
6AAE857919D329C6005672CA /* AdaptiveDateState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6AAE857519D329C6005672CA /* AdaptiveDateState.swift */; };
|
||||
6AAE857A19D329C6005672CA /* AdaptiveState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6AAE857619D329C6005672CA /* AdaptiveState.swift */; };
|
||||
6AD1EC2619EFA9BA003F36A4 /* ControlStateValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6AD1EC2519EFA9BA003F36A4 /* ControlStateValue.swift */; };
|
||||
6AD1EC2919EFB8E2003F36A4 /* ControlStateProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6AD1EC2819EFB8E2003F36A4 /* ControlStateProtocol.swift */; };
|
||||
6AD1EC2B19F1165E003F36A4 /* TestTabBarItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6AD1EC2A19F1165E003F36A4 /* TestTabBarItem.swift */; };
|
||||
6AFBC6D719D313D600D42578 /* AdaptiveController.h in Headers */ = {isa = PBXBuildFile; fileRef = 6AFBC6D619D313D600D42578 /* AdaptiveController.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
6AFBC6E119D313D600D42578 /* AdaptiveControllerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6AFBC6E019D313D600D42578 /* AdaptiveControllerTests.swift */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
6A3E3A1B19E05E5B00C7504B /* AdaptiveLaunchesState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AdaptiveLaunchesState.swift; sourceTree = "<group>"; };
|
||||
6A3ED0C919ED02DA006F06DD /* DateExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = DateExtension.swift; path = "../../Samples/adaptive-dates-tabbar/adaptive-tab-bar/DateExtension.swift"; sourceTree = "<group>"; };
|
||||
6A3ED0CB19ED058F006F06DD /* AdaptiveDateStateTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AdaptiveDateStateTest.swift; sourceTree = "<group>"; };
|
||||
6A3ED0CD19ED05D8006F06DD /* AdaptiveLaunchesStateTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AdaptiveLaunchesStateTest.swift; sourceTree = "<group>"; };
|
||||
6A6270A519F1653900D02B1A /* watch@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "watch@2x.png"; sourceTree = "<group>"; };
|
||||
6AAE857319D329C6005672CA /* AdaptiveButtonAppearance.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AdaptiveButtonAppearance.swift; sourceTree = "<group>"; };
|
||||
6AAE857419D329C6005672CA /* AdaptiveButtonsStateManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AdaptiveButtonsStateManager.swift; sourceTree = "<group>"; };
|
||||
6AAE857519D329C6005672CA /* AdaptiveDateState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AdaptiveDateState.swift; sourceTree = "<group>"; };
|
||||
6AAE857619D329C6005672CA /* AdaptiveState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AdaptiveState.swift; sourceTree = "<group>"; };
|
||||
6AD1EC2519EFA9BA003F36A4 /* ControlStateValue.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ControlStateValue.swift; sourceTree = "<group>"; };
|
||||
6AD1EC2819EFB8E2003F36A4 /* ControlStateProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ControlStateProtocol.swift; sourceTree = "<group>"; };
|
||||
6AD1EC2A19F1165E003F36A4 /* TestTabBarItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestTabBarItem.swift; sourceTree = "<group>"; };
|
||||
6AFBC6D119D313D600D42578 /* AdaptiveController.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = AdaptiveController.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
6AFBC6D519D313D600D42578 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
6AFBC6D619D313D600D42578 /* AdaptiveController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AdaptiveController.h; sourceTree = "<group>"; };
|
||||
6AFBC6DC19D313D600D42578 /* AdaptiveControllerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AdaptiveControllerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
6AFBC6DF19D313D600D42578 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
6AFBC6E019D313D600D42578 /* AdaptiveControllerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdaptiveControllerTests.swift; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
6AFBC6CD19D313D600D42578 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
6AFBC6D919D313D600D42578 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
6AAE857B19D329E0005672CA /* CustomAdaptiveStates */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
6AAE857519D329C6005672CA /* AdaptiveDateState.swift */,
|
||||
6A3E3A1B19E05E5B00C7504B /* AdaptiveLaunchesState.swift */,
|
||||
);
|
||||
name = CustomAdaptiveStates;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
6AAE857C19D32A14005672CA /* AdaptiveStates */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
6AAE857619D329C6005672CA /* AdaptiveState.swift */,
|
||||
);
|
||||
name = AdaptiveStates;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
6AD1EC2319EFA903003F36A4 /* Appearance */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
6AAE857319D329C6005672CA /* AdaptiveButtonAppearance.swift */,
|
||||
6AAE857419D329C6005672CA /* AdaptiveButtonsStateManager.swift */,
|
||||
);
|
||||
name = Appearance;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
6AD1EC2719EFB521003F36A4 /* ControlStates */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
6AD1EC2819EFB8E2003F36A4 /* ControlStateProtocol.swift */,
|
||||
6AD1EC2519EFA9BA003F36A4 /* ControlStateValue.swift */,
|
||||
);
|
||||
name = ControlStates;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
6AFBC6C719D313D600D42578 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
6AFBC6D319D313D600D42578 /* AdaptiveController */,
|
||||
6AFBC6DD19D313D600D42578 /* AdaptiveControllerTests */,
|
||||
6AFBC6D219D313D600D42578 /* Products */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
6AFBC6D219D313D600D42578 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
6AFBC6D119D313D600D42578 /* AdaptiveController.framework */,
|
||||
6AFBC6DC19D313D600D42578 /* AdaptiveControllerTests.xctest */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
6AFBC6D319D313D600D42578 /* AdaptiveController */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
6AD1EC2719EFB521003F36A4 /* ControlStates */,
|
||||
6AD1EC2319EFA903003F36A4 /* Appearance */,
|
||||
6AAE857C19D32A14005672CA /* AdaptiveStates */,
|
||||
6AAE857B19D329E0005672CA /* CustomAdaptiveStates */,
|
||||
6AFBC6D619D313D600D42578 /* AdaptiveController.h */,
|
||||
6AFBC6D419D313D600D42578 /* Supporting Files */,
|
||||
);
|
||||
path = AdaptiveController;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
6AFBC6D419D313D600D42578 /* Supporting Files */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
6AFBC6D519D313D600D42578 /* Info.plist */,
|
||||
);
|
||||
name = "Supporting Files";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
6AFBC6DD19D313D600D42578 /* AdaptiveControllerTests */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
6A6270A519F1653900D02B1A /* watch@2x.png */,
|
||||
6A3ED0C919ED02DA006F06DD /* DateExtension.swift */,
|
||||
6AFBC6E019D313D600D42578 /* AdaptiveControllerTests.swift */,
|
||||
6A3ED0CB19ED058F006F06DD /* AdaptiveDateStateTest.swift */,
|
||||
6A3ED0CD19ED05D8006F06DD /* AdaptiveLaunchesStateTest.swift */,
|
||||
6AD1EC2A19F1165E003F36A4 /* TestTabBarItem.swift */,
|
||||
6AFBC6DE19D313D600D42578 /* Supporting Files */,
|
||||
);
|
||||
path = AdaptiveControllerTests;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
6AFBC6DE19D313D600D42578 /* Supporting Files */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
6AFBC6DF19D313D600D42578 /* Info.plist */,
|
||||
);
|
||||
name = "Supporting Files";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXHeadersBuildPhase section */
|
||||
6AFBC6CE19D313D600D42578 /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
6AFBC6D719D313D600D42578 /* AdaptiveController.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXHeadersBuildPhase section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
6AFBC6D019D313D600D42578 /* AdaptiveController */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 6AFBC6E419D313D600D42578 /* Build configuration list for PBXNativeTarget "AdaptiveController" */;
|
||||
buildPhases = (
|
||||
6AFBC6CC19D313D600D42578 /* Sources */,
|
||||
6AFBC6CD19D313D600D42578 /* Frameworks */,
|
||||
6AFBC6CE19D313D600D42578 /* Headers */,
|
||||
6AFBC6CF19D313D600D42578 /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = AdaptiveController;
|
||||
productName = AdaptiveController;
|
||||
productReference = 6AFBC6D119D313D600D42578 /* AdaptiveController.framework */;
|
||||
productType = "com.apple.product-type.framework";
|
||||
};
|
||||
6AFBC6DB19D313D600D42578 /* AdaptiveControllerTests */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 6AFBC6E719D313D600D42578 /* Build configuration list for PBXNativeTarget "AdaptiveControllerTests" */;
|
||||
buildPhases = (
|
||||
6AFBC6D819D313D600D42578 /* Sources */,
|
||||
6AFBC6D919D313D600D42578 /* Frameworks */,
|
||||
6AFBC6DA19D313D600D42578 /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = AdaptiveControllerTests;
|
||||
productName = AdaptiveControllerTests;
|
||||
productReference = 6AFBC6DC19D313D600D42578 /* AdaptiveControllerTests.xctest */;
|
||||
productType = "com.apple.product-type.bundle.unit-test";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
6AFBC6C819D313D600D42578 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0600;
|
||||
ORGANIZATIONNAME = Ramotion;
|
||||
TargetAttributes = {
|
||||
6AFBC6D019D313D600D42578 = {
|
||||
CreatedOnToolsVersion = 6.0.1;
|
||||
};
|
||||
6AFBC6DB19D313D600D42578 = {
|
||||
CreatedOnToolsVersion = 6.0.1;
|
||||
};
|
||||
};
|
||||
};
|
||||
buildConfigurationList = 6AFBC6CB19D313D600D42578 /* Build configuration list for PBXProject "AdaptiveController" */;
|
||||
compatibilityVersion = "Xcode 3.2";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
);
|
||||
mainGroup = 6AFBC6C719D313D600D42578;
|
||||
productRefGroup = 6AFBC6D219D313D600D42578 /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
6AFBC6D019D313D600D42578 /* AdaptiveController */,
|
||||
6AFBC6DB19D313D600D42578 /* AdaptiveControllerTests */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
6AFBC6CF19D313D600D42578 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
6AFBC6DA19D313D600D42578 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
6A6270A619F1653900D02B1A /* watch@2x.png in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
6AFBC6CC19D313D600D42578 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
6AAE857819D329C6005672CA /* AdaptiveButtonsStateManager.swift in Sources */,
|
||||
6A3E3A1C19E05E5B00C7504B /* AdaptiveLaunchesState.swift in Sources */,
|
||||
6AAE857719D329C6005672CA /* AdaptiveButtonAppearance.swift in Sources */,
|
||||
6AD1EC2619EFA9BA003F36A4 /* ControlStateValue.swift in Sources */,
|
||||
6AAE857919D329C6005672CA /* AdaptiveDateState.swift in Sources */,
|
||||
6AD1EC2919EFB8E2003F36A4 /* ControlStateProtocol.swift in Sources */,
|
||||
6AAE857A19D329C6005672CA /* AdaptiveState.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
6AFBC6D819D313D600D42578 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
6AD1EC2B19F1165E003F36A4 /* TestTabBarItem.swift in Sources */,
|
||||
6A3ED0CE19ED05D8006F06DD /* AdaptiveLaunchesStateTest.swift in Sources */,
|
||||
6A3ED0CA19ED02DA006F06DD /* DateExtension.swift in Sources */,
|
||||
6A3ED0CC19ED058F006F06DD /* AdaptiveDateStateTest.swift in Sources */,
|
||||
6AFBC6E119D313D600D42578 /* AdaptiveControllerTests.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
6AFBC6E219D313D600D42578 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = YES;
|
||||
CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = 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_INT_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
CURRENT_PROJECT_VERSION = 1;
|
||||
DEFINES_MODULE = YES;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"DEBUG=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = iphoneos;
|
||||
SWIFT_INCLUDE_PATHS = "\"$(SRCROOT)/AdaptiveController/\"";
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
USER_HEADER_SEARCH_PATHS = "\"$(SRCROOT)/AdaptiveController/\"/**";
|
||||
VERSIONING_SYSTEM = "apple-generic";
|
||||
VERSION_INFO_PREFIX = "";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
6AFBC6E319D313D600D42578 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = YES;
|
||||
CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = 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_INT_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
COPY_PHASE_STRIP = YES;
|
||||
CURRENT_PROJECT_VERSION = 1;
|
||||
DEFINES_MODULE = YES;
|
||||
ENABLE_NS_ASSERTIONS = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
SDKROOT = iphoneos;
|
||||
SWIFT_INCLUDE_PATHS = "\"$(SRCROOT)/AdaptiveController/\"";
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
USER_HEADER_SEARCH_PATHS = "\"$(SRCROOT)/AdaptiveController/\"/**";
|
||||
VALIDATE_PRODUCT = YES;
|
||||
VERSIONING_SYSTEM = "apple-generic";
|
||||
VERSION_INFO_PREFIX = "";
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
6AFBC6E519D313D600D42578 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
DEFINES_MODULE = YES;
|
||||
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||
DYLIB_CURRENT_VERSION = 1;
|
||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||
INFOPLIST_FILE = AdaptiveController/Info.plist;
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_INCLUDE_PATHS = "";
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
USER_HEADER_SEARCH_PATHS = "";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
6AFBC6E619D313D600D42578 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
DEFINES_MODULE = YES;
|
||||
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||
DYLIB_CURRENT_VERSION = 1;
|
||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||
INFOPLIST_FILE = AdaptiveController/Info.plist;
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_INCLUDE_PATHS = "";
|
||||
USER_HEADER_SEARCH_PATHS = "";
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
6AFBC6E819D313D600D42578 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(SDKROOT)/Developer/Library/Frameworks",
|
||||
"$(inherited)",
|
||||
);
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"DEBUG=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
INFOPLIST_FILE = AdaptiveControllerTests/Info.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
6AFBC6E919D313D600D42578 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(SDKROOT)/Developer/Library/Frameworks",
|
||||
"$(inherited)",
|
||||
);
|
||||
INFOPLIST_FILE = AdaptiveControllerTests/Info.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
6AFBC6CB19D313D600D42578 /* Build configuration list for PBXProject "AdaptiveController" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
6AFBC6E219D313D600D42578 /* Debug */,
|
||||
6AFBC6E319D313D600D42578 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
6AFBC6E419D313D600D42578 /* Build configuration list for PBXNativeTarget "AdaptiveController" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
6AFBC6E519D313D600D42578 /* Debug */,
|
||||
6AFBC6E619D313D600D42578 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
6AFBC6E719D313D600D42578 /* Build configuration list for PBXNativeTarget "AdaptiveControllerTests" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
6AFBC6E819D313D600D42578 /* Debug */,
|
||||
6AFBC6E919D313D600D42578 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 6AFBC6C819D313D600D42578 /* Project object */;
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Workspace
|
||||
version = "1.0">
|
||||
</Workspace>
|
||||
@@ -1,114 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0600"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "6AFBC6D019D313D600D42578"
|
||||
BuildableName = "AdaptiveController.framework"
|
||||
BlueprintName = "AdaptiveController"
|
||||
ReferencedContainer = "container:AdaptiveController.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "6A5558B219E2BAB100ED3B5C"
|
||||
BuildableName = "example-count-launches-adaptive-tabbar.app"
|
||||
BlueprintName = "example-count-launches-adaptive-tabbar"
|
||||
ReferencedContainer = "container:../Samples/adaptive-launches-tabbar/example-count-launches-adaptive-tabbar.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "6AD5A2F219C6C95E00606826"
|
||||
BuildableName = "example-date-adaptive-tab-bar.app"
|
||||
BlueprintName = "example-date-adaptive-tab-bar"
|
||||
ReferencedContainer = "container:../Samples/adaptive-dates-tabbar/example-date-adaptive-tab-bar.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
buildConfiguration = "Debug">
|
||||
<Testables>
|
||||
</Testables>
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "6AFBC6D019D313D600D42578"
|
||||
BuildableName = "AdaptiveController.framework"
|
||||
BlueprintName = "AdaptiveController"
|
||||
ReferencedContainer = "container:AdaptiveController.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Debug"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
allowLocationSimulation = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "6AFBC6D019D313D600D42578"
|
||||
BuildableName = "AdaptiveController.framework"
|
||||
BlueprintName = "AdaptiveController"
|
||||
ReferencedContainer = "container:AdaptiveController.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Release"
|
||||
debugDocumentVersioning = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "6AFBC6D019D313D600D42578"
|
||||
BuildableName = "AdaptiveController.framework"
|
||||
BlueprintName = "AdaptiveController"
|
||||
ReferencedContainer = "container:AdaptiveController.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
@@ -1,96 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0600"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "NO"
|
||||
buildForArchiving = "NO"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "6AFBC6DB19D313D600D42578"
|
||||
BuildableName = "AdaptiveControllerTests.xctest"
|
||||
BlueprintName = "AdaptiveControllerTests"
|
||||
ReferencedContainer = "container:AdaptiveController.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
buildConfiguration = "Debug">
|
||||
<Testables>
|
||||
<TestableReference
|
||||
skipped = "NO">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "6AFBC6DB19D313D600D42578"
|
||||
BuildableName = "AdaptiveControllerTests.xctest"
|
||||
BlueprintName = "AdaptiveControllerTests"
|
||||
ReferencedContainer = "container:AdaptiveController.xcodeproj">
|
||||
</BuildableReference>
|
||||
</TestableReference>
|
||||
</Testables>
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "6AFBC6DB19D313D600D42578"
|
||||
BuildableName = "AdaptiveControllerTests.xctest"
|
||||
BlueprintName = "AdaptiveControllerTests"
|
||||
ReferencedContainer = "container:AdaptiveController.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Debug"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
allowLocationSimulation = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "6AFBC6DB19D313D600D42578"
|
||||
BuildableName = "AdaptiveControllerTests.xctest"
|
||||
BlueprintName = "AdaptiveControllerTests"
|
||||
ReferencedContainer = "container:AdaptiveController.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Release"
|
||||
debugDocumentVersioning = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "6AFBC6DB19D313D600D42578"
|
||||
BuildableName = "AdaptiveControllerTests.xctest"
|
||||
BlueprintName = "AdaptiveControllerTests"
|
||||
ReferencedContainer = "container:AdaptiveController.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
@@ -1,32 +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>SchemeUserState</key>
|
||||
<dict>
|
||||
<key>AdaptiveController.xcscheme</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<key>AdaptiveControllerTests.xcscheme</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>SuppressBuildableAutocreation</key>
|
||||
<dict>
|
||||
<key>6AFBC6D019D313D600D42578</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>6AFBC6DB19D313D600D42578</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -1,178 +0,0 @@
|
||||
//
|
||||
// AdaptiveButtonApperance.swift
|
||||
// AdaptiveTabBarControllerSample
|
||||
//
|
||||
// Created by Arcilite on 18.09.14.
|
||||
// Copyright (c) 2014 Ramotion. All rights reserved.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
public let defaultFont = UIFont(name: "Helvetica", size: 14.0)
|
||||
public let kNotTitle = ""
|
||||
public class AdaptiveButtonAppearance: NSObject {
|
||||
|
||||
|
||||
private var butonsTitleForStateDictionary:Dictionary <String,String> = Dictionary<String,String>()
|
||||
private var butonsTitleFontForStateDictionary:Dictionary <String,UIFont> = Dictionary<String,UIFont>()
|
||||
private var buttonsImageForStateDictionary:Dictionary <String,UIImage> = Dictionary<String,UIImage>()
|
||||
private var buttonsBackgroundImageForStateDictionary:Dictionary <String,UIImage> = Dictionary<String,UIImage>()
|
||||
|
||||
|
||||
private var buttonsImageInsetsForStateDictionary:Dictionary <String,UIEdgeInsets> = Dictionary<String,UIEdgeInsets>()
|
||||
private var buttonsTitleInsetsForStateDictionary:Dictionary <String,UIOffset> = Dictionary<String,UIOffset>()
|
||||
|
||||
private var buttonsTitleColorsForStateDictionary:Dictionary <String,UIColor> = Dictionary<String,UIColor>()
|
||||
|
||||
func setInsetsFromAdaptiveButtonApperance(adaptiveButtonApperance:AdaptiveButtonAppearance){
|
||||
|
||||
self.buttonsImageInsetsForStateDictionary = adaptiveButtonApperance.buttonsImageInsetsForStateDictionary
|
||||
|
||||
self.buttonsTitleInsetsForStateDictionary = adaptiveButtonApperance.buttonsTitleInsetsForStateDictionary
|
||||
|
||||
|
||||
}
|
||||
|
||||
public func setFontsFromAdaptiveButtonApperance(adaptiveButtonApperance:AdaptiveButtonAppearance){
|
||||
|
||||
self.butonsTitleFontForStateDictionary = adaptiveButtonApperance.butonsTitleFontForStateDictionary
|
||||
}
|
||||
|
||||
public func setAllCommonApperanceFrom(adaptiveButtonApperance:AdaptiveButtonAppearance){
|
||||
self.setInsetsFromAdaptiveButtonApperance(adaptiveButtonApperance)
|
||||
self.setFontsFromAdaptiveButtonApperance(adaptiveButtonApperance)
|
||||
self.buttonsTitleColorsForStateDictionary = adaptiveButtonApperance.buttonsTitleColorsForStateDictionary
|
||||
|
||||
}
|
||||
|
||||
|
||||
public func setImageNamesForStatesImageExtesions(imageName :String ,imageExtensionsForState:Dictionary <String,String>){
|
||||
|
||||
self.setButtonImage(UIImage(named: imageName), state: kDefaultAdaptiveState)
|
||||
for (state,imageExtension) in imageExtensionsForState {
|
||||
self.setButtonImage(UIImage(named: imageName+imageExtension), state: state)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
public func setButonTitle(title:NSString, state:String){
|
||||
println(title)
|
||||
println(state)
|
||||
butonsTitleForStateDictionary.updateValue(title, forKey:state)
|
||||
}
|
||||
|
||||
public func getButonTitleForState(state:NSString)->String!{
|
||||
|
||||
if let title = butonsTitleForStateDictionary[state] {
|
||||
return title
|
||||
}else{
|
||||
if let title = butonsTitleForStateDictionary[kDefaultAdaptiveState] {
|
||||
return title
|
||||
}else{
|
||||
return kNotTitle
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public func setButonTitleFontForState(font:UIFont, state:String){
|
||||
butonsTitleFontForStateDictionary.updateValue(font, forKey:state)
|
||||
}
|
||||
|
||||
public func getButonTitleFontForState(state:NSString)->UIFont{
|
||||
var font:UIFont? = butonsTitleFontForStateDictionary[state]
|
||||
|
||||
if let font = butonsTitleFontForStateDictionary[state] {
|
||||
return font
|
||||
}else{
|
||||
|
||||
if let font = butonsTitleFontForStateDictionary[kDefaultAdaptiveState] {
|
||||
return font
|
||||
}else{
|
||||
return defaultFont
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public func setButtonImage(image:UIImage, state:String){
|
||||
buttonsImageForStateDictionary.updateValue(image, forKey:state)
|
||||
print("set State \(state)")
|
||||
}
|
||||
|
||||
public func getButonImageForState(state:NSString)->UIImage!{
|
||||
|
||||
print("get State \(state)")
|
||||
if let image = buttonsImageForStateDictionary[state] {
|
||||
return image
|
||||
}else{
|
||||
return buttonsImageForStateDictionary[kDefaultAdaptiveState]
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public func setBackgroundButonImage(image:UIImage, state:String){
|
||||
buttonsImageForStateDictionary.updateValue(image, forKey:state)
|
||||
}
|
||||
|
||||
public func getBackgroundImageForState(state:NSString)->UIImage?{
|
||||
|
||||
if let image = buttonsBackgroundImageForStateDictionary[state] {
|
||||
return image
|
||||
}else{
|
||||
return buttonsBackgroundImageForStateDictionary[kDefaultAdaptiveState]
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
public func setImageInsets(insets:UIEdgeInsets, state:String){
|
||||
buttonsImageInsetsForStateDictionary.updateValue(insets, forKey:state)
|
||||
}
|
||||
|
||||
public func getImageInsetsForState(state:NSString)->UIEdgeInsets!{
|
||||
|
||||
if let insets = buttonsImageInsetsForStateDictionary[state] {
|
||||
return buttonsImageInsetsForStateDictionary[state]!
|
||||
}else{
|
||||
return buttonsImageInsetsForStateDictionary[kDefaultAdaptiveState]
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public func setTitleOffset(insets:UIOffset, state:String){
|
||||
buttonsTitleInsetsForStateDictionary.updateValue(insets, forKey:state)
|
||||
}
|
||||
|
||||
public func getTitleOffsetForState(state:NSString)->UIOffset!{
|
||||
|
||||
var offset:UIOffset? = buttonsTitleInsetsForStateDictionary[state]
|
||||
if(offset == nil){
|
||||
offset = buttonsTitleInsetsForStateDictionary[kDefaultAdaptiveState]?
|
||||
}
|
||||
|
||||
return offset!
|
||||
}
|
||||
|
||||
|
||||
public func setTitleColor(color:UIColor, state:String){
|
||||
buttonsTitleColorsForStateDictionary.updateValue(color, forKey:state)
|
||||
}
|
||||
|
||||
public func getTitleColorForState(state:NSString)->UIColor!{
|
||||
|
||||
var offset:UIColor? = buttonsTitleColorsForStateDictionary[state]
|
||||
if(offset == nil){
|
||||
offset = buttonsTitleColorsForStateDictionary[kDefaultAdaptiveState]?
|
||||
}
|
||||
|
||||
return offset!
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,102 +0,0 @@
|
||||
//
|
||||
// AdaptiveButtonsStateManager.swift
|
||||
// AdaptiveTabBarControllerSample
|
||||
//
|
||||
// Created by Arcilite on 18.09.14.
|
||||
// Copyright (c) 2014 Ramotion. All rights reserved.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
public let countDaysToSmallTextState = 14
|
||||
public let countDaysToImageState = 30
|
||||
|
||||
public let defaultInsets = UIEdgeInsetsMake(0, 0,0, 0)
|
||||
public let defaultSmallTitleModeFont = UIFont(name: "Helvetica", size: 10.0)
|
||||
public let defaultSmallTitleModeImageInsets = UIEdgeInsetsMake(0, 0, 0, 0)
|
||||
public let defaultImageModeInsets = UIEdgeInsetsMake(6, 0, -6, 0)
|
||||
public let defaultSmallTitleModeOffset = UIOffsetMake(0, 20)
|
||||
public let defaultOffset = UIOffsetMake(0, 00)
|
||||
public let tabColor = UIColor(red: 169/255, green: 79/255, blue: 152/255, alpha: 1.0)
|
||||
|
||||
|
||||
|
||||
@objc public protocol AdaptiveApperanceProtocol {
|
||||
optional func setFontToAdaptiveButton(font: UIFont)
|
||||
optional func setTitleToAdaptiveButton(text: NSString)
|
||||
optional func setImageToAdaptiveButton(image: UIImage?)
|
||||
optional func setHighlightedToAdaptiveButton(image: UIImage?)
|
||||
optional func setBackgroundImageToAdaptiveButton(image: UIImage?)
|
||||
optional func setSelectedImageToAdaptiveButton(image: UIImage?)
|
||||
optional func setImageInsetsToAdaptiveButton(insets: UIEdgeInsets)
|
||||
optional func setTitleOffsetToAdaptiveButton(offset: UIOffset)
|
||||
optional func setTitleColorToAdaptiveButton(titleColor: UIColor)
|
||||
}
|
||||
|
||||
public let selected = "Selected"
|
||||
public let highlighted = "Higlihted"
|
||||
|
||||
public class AdaptiveButtonsStateManager: NSObject {
|
||||
|
||||
public convenience init (state:AdaptiveState,buttonsAray:[AdaptiveApperanceProtocol],buttonsAppearance:[AdaptiveButtonAppearance]){
|
||||
self.init()
|
||||
self.setButtonsState(state, buttonsAray: buttonsAray, buttonsAppearance: buttonsAppearance)
|
||||
}
|
||||
|
||||
public func setButtonsState(state:AdaptiveState,buttonsAray:[AdaptiveApperanceProtocol],buttonsAppearance:[AdaptiveButtonAppearance]){
|
||||
|
||||
var state:String = state.currentItemState!
|
||||
|
||||
var countElements = buttonsAray.count > buttonsAppearance.count ? buttonsAppearance.count : buttonsAray.count
|
||||
for var index = 0; index < countElements; ++index {
|
||||
println("index is \(index)")
|
||||
println("buttons count array is \(buttonsAray.count)")
|
||||
|
||||
var button :AdaptiveApperanceProtocol = buttonsAray[index]
|
||||
var buttonApperance = buttonsAppearance[index]
|
||||
|
||||
let title = buttonApperance.getButonTitleForState(state)
|
||||
println("title: /(title)")
|
||||
println(NSString(format:"title %@",title))
|
||||
button.setTitleToAdaptiveButton!(title)
|
||||
|
||||
|
||||
button.setFontToAdaptiveButton!(buttonApperance.getButonTitleFontForState(state))
|
||||
|
||||
if let image = buttonApperance.getButonImageForState(state) {
|
||||
button.setImageToAdaptiveButton?(image)
|
||||
}else{
|
||||
|
||||
}
|
||||
|
||||
if let selectedImage = buttonApperance.getButonImageForState(state+selected) {
|
||||
button.setSelectedImageToAdaptiveButton?(selectedImage)
|
||||
}
|
||||
|
||||
if let highlightedImage = buttonApperance.getButonImageForState(state+highlighted) {
|
||||
button.setHighlightedToAdaptiveButton?(highlightedImage)
|
||||
}
|
||||
|
||||
if let backgroundImage = buttonApperance.getButonImageForState(state) {
|
||||
button.setBackgroundImageToAdaptiveButton?(backgroundImage)
|
||||
}
|
||||
|
||||
if let imageInset = buttonApperance.getImageInsetsForState(state) {
|
||||
button.setImageInsetsToAdaptiveButton?(imageInset)
|
||||
}
|
||||
|
||||
if let titleOffset = buttonApperance.getTitleOffsetForState(state) {
|
||||
button.setTitleOffsetToAdaptiveButton?(titleOffset)
|
||||
}
|
||||
|
||||
if let titleColor = buttonApperance.getTitleColorForState(state) {
|
||||
button.setTitleColorToAdaptiveButton?(titleColor)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
//
|
||||
// AdaptiveController.h
|
||||
// AdaptiveController
|
||||
//
|
||||
// Created by Arcilite on 24.09.14.
|
||||
// Copyright (c) 2014 Ramotion. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
//! Project version number for AdaptiveController.
|
||||
FOUNDATION_EXPORT double AdaptiveControllerVersionNumber;
|
||||
|
||||
//! Project version string for AdaptiveController.
|
||||
FOUNDATION_EXPORT const unsigned char AdaptiveControllerVersionString[];
|
||||
|
||||
// In this header, you should import all the public headers of your framework using statements like #import <AdaptiveController/PublicHeader.h>
|
||||
|
||||
|
||||
@@ -1,54 +0,0 @@
|
||||
//
|
||||
// AdaptiveDateState.swift
|
||||
// AdaptiveTabBarControllerSample
|
||||
//
|
||||
// Created by Arcilite on 18.09.14.
|
||||
// Copyright (c) 2014 Ramotion. All rights reserved.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
public let kSmallTitleAdaptiveState = "kImageAdaptiveState"
|
||||
public let kImageAdaptiveState = "kNormalImageAdaptiveState"
|
||||
|
||||
public class AdaptiveDateState: AdaptiveState {
|
||||
|
||||
|
||||
public override init(){
|
||||
super.init()
|
||||
super.addNewCustomAdaptiveStates([kSmallTitleAdaptiveState,kImageAdaptiveState])
|
||||
}
|
||||
|
||||
public convenience init(installDate:NSDate, currentDate:NSDate,countDaysToSmallTextState:Int,countDaysToImageState:Int) {
|
||||
self.init()
|
||||
|
||||
var remainsDays = self.daysBetweenDates(installDate,currentDate: currentDate)
|
||||
self.currentItemState = self.stateRemainDays(remainsDays,countDaysToSmallTextState:countDaysToSmallTextState,countDaysToImageState:countDaysToImageState)
|
||||
print(currentItemState)
|
||||
}
|
||||
|
||||
|
||||
func daysBetweenDates(installDate:NSDate, currentDate:NSDate) -> Int{
|
||||
|
||||
let cal = NSCalendar.currentCalendar()
|
||||
|
||||
let unit:NSCalendarUnit = .DayCalendarUnit
|
||||
|
||||
let components = cal.components(unit, fromDate: installDate, toDate: currentDate, options: nil)
|
||||
|
||||
return components.day+1;
|
||||
}
|
||||
|
||||
func stateRemainDays (remainDays:Int,countDaysToSmallTextState:Int,countDaysToImageState:Int)->String{
|
||||
|
||||
var mode:String = kDefaultAdaptiveState
|
||||
print(" DAYS \(remainDays) ")
|
||||
if remainDays > countDaysToSmallTextState && remainDays < countDaysToImageState{
|
||||
mode = kSmallTitleAdaptiveState
|
||||
}else if remainDays > countDaysToImageState {
|
||||
mode = kImageAdaptiveState
|
||||
}
|
||||
print(mode)
|
||||
return mode
|
||||
}
|
||||
}
|
||||
@@ -1,42 +0,0 @@
|
||||
//
|
||||
// AdaaptiveLaunchesState.swift
|
||||
// AdaptiveController
|
||||
//
|
||||
// Created by Arcilite on 04.10.14.
|
||||
// Copyright (c) 2014 Ramotion. All rights reserved.
|
||||
//
|
||||
public let countDaysForSmaltextState = 3
|
||||
public let countDaysForImageModeState = 7
|
||||
|
||||
import UIKit
|
||||
|
||||
public class AdaptiveLaunchesState : AdaptiveState {
|
||||
|
||||
public override init(){
|
||||
super.init()
|
||||
super.addNewCustomAdaptiveStates([kSmallTitleAdaptiveState,kImageAdaptiveState])
|
||||
}
|
||||
|
||||
|
||||
public convenience init(curentCountLaunches:Int,countLaunchesToSmallTextState:Int,countLaunchesToImageState:Int) {
|
||||
self.init()
|
||||
|
||||
|
||||
self.currentItemState = stateRemainDays(curentCountLaunches,countLaunchesToSmallTextState: countLaunchesToSmallTextState,countLaunchesToImageState: countLaunchesToImageState);
|
||||
|
||||
//print(currentItemState)
|
||||
}
|
||||
|
||||
internal func stateRemainDays (curentCountLaunches:Int,countLaunchesToSmallTextState:Int,countLaunchesToImageState:Int)->String{
|
||||
var mode:String = kDefaultAdaptiveState
|
||||
|
||||
if curentCountLaunches > countLaunchesToSmallTextState && curentCountLaunches < countLaunchesToImageState{
|
||||
mode = kSmallTitleAdaptiveState
|
||||
}else if curentCountLaunches > countLaunchesToImageState {
|
||||
mode = kImageAdaptiveState
|
||||
}
|
||||
|
||||
return mode;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
//
|
||||
// AdaptiveController.swift
|
||||
// AdaptiveTabBarControllerSample
|
||||
//
|
||||
// Created by Arcilite on 17.09.14.
|
||||
// Copyright (c) 2014 Ramotion. All rights reserved.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
|
||||
public let kDefaultAdaptiveState:String = "DefaultAdaptiveState"
|
||||
|
||||
|
||||
public class AdaptiveState: NSObject {
|
||||
|
||||
var currentItemState:NSString?
|
||||
|
||||
|
||||
var buttonStates:[String] = [String]()
|
||||
|
||||
|
||||
public override init(){
|
||||
super.init()
|
||||
self.currentItemState = kDefaultAdaptiveState
|
||||
self.addNewCustomAdaptiveStates([kDefaultAdaptiveState])
|
||||
}
|
||||
|
||||
internal func addNewCustomAdaptiveStates(customAdaptiveStates:Array<String>){
|
||||
self.buttonStates+customAdaptiveStates
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
//
|
||||
// ControlStateProtocol.swift
|
||||
// AdaptiveController
|
||||
//
|
||||
// Created by Arcilite on 16.10.14.
|
||||
// Copyright (c) 2014 Ramotion. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
protocol ControlStateProtocol {
|
||||
|
||||
typealias StateEnum
|
||||
|
||||
var normalState: StateEnum?{get set}
|
||||
var selectedState: StateEnum?{get set}
|
||||
var highlightedState: StateEnum?{get set}
|
||||
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
//
|
||||
// ControlState.swift
|
||||
// AdaptiveController
|
||||
//
|
||||
// Created by Arcilite on 16.10.14.
|
||||
// Copyright (c) 2014 Ramotion. All rights reserved.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
public enum ControlStateEnum {
|
||||
case ControlStateFont(UIFont), ControlStateImage(UIImage),ControlStateTitle(String),ControlStateInsets(UIEdgeInsets),ControlStateColor(UIColor),UIControlState(UIOffset)
|
||||
}
|
||||
|
||||
|
||||
|
||||
public class ControlStateValue:ControlStateProtocol{
|
||||
|
||||
public typealias StateEnum = ControlStateEnum
|
||||
|
||||
public var normalState: StateEnum?
|
||||
public var selectedState: StateEnum?
|
||||
public var highlightedState: StateEnum?
|
||||
|
||||
|
||||
public convenience init(valueForNormalState:ControlStateEnum?) {
|
||||
self.init()
|
||||
|
||||
self.normalState = valueForNormalState
|
||||
self.selectedState = valueForNormalState
|
||||
self.highlightedState = valueForNormalState
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,26 +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>ramotion.$(PRODUCT_NAME:rfc1034identifier)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>$(PRODUCT_NAME)</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>FMWK</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>$(CURRENT_PROJECT_VERSION)</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -1,171 +0,0 @@
|
||||
//
|
||||
// AdaptiveControllerTests.swift
|
||||
// AdaptiveControllerTests
|
||||
//
|
||||
// Created by Arcilite on 24.09.14.
|
||||
// Copyright (c) 2014 Ramotion. All rights reserved.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
import XCTest
|
||||
import AdaptiveController
|
||||
|
||||
|
||||
|
||||
class AdaptiveControllerTests: XCTestCase {
|
||||
|
||||
class MockUIImage: UIImage {
|
||||
var checkImageString:String?
|
||||
|
||||
|
||||
}
|
||||
|
||||
override func setUp() {
|
||||
super.setUp()
|
||||
|
||||
|
||||
}
|
||||
|
||||
override func tearDown() {
|
||||
// Put teardown code here. This method is called after the invocation of each test method in the class.
|
||||
super.tearDown()
|
||||
}
|
||||
|
||||
func testDefaultState() {
|
||||
// This is an example of a functional test case.
|
||||
var installDate = NSDate(dateString:"2014-07-7")
|
||||
var currentDate = NSDate(dateString:"2014-07-7")
|
||||
|
||||
var adaptiveDateState = AdaptiveDateState(installDate: installDate,currentDate:currentDate,countDaysToSmallTextState:countDaysToSmallTextState,countDaysToImageState:countDaysToImageState)
|
||||
|
||||
var buttonsAppearances = buttonsAppearancesGenerate()
|
||||
var tabBarItem = TestTabBarItem()
|
||||
|
||||
|
||||
|
||||
|
||||
var arrayButtons = [tabBarItem]
|
||||
|
||||
AdaptiveButtonsStateManager(state: adaptiveDateState,buttonsAray:arrayButtons ,buttonsAppearance: buttonsAppearances)
|
||||
//assert
|
||||
|
||||
|
||||
XCTAssert(tabBarItem.color!.isEqual(UIColor.whiteColor()), "Fail color")
|
||||
XCTAssert(UIOffsetEqualToOffset(tabBarItem.offset!,defaultOffset), "Fail offset")
|
||||
XCTAssert(UIEdgeInsetsEqualToEdgeInsets(defaultInsets, tabBarItem.insets!), "Fail insets")
|
||||
let bundle = NSBundle(forClass: AdaptiveButtonAppearance.self)
|
||||
var image:MockUIImage = tabBarItem.image as MockUIImage
|
||||
XCTAssert(image.checkImageString!.isEqual("default Image"), "Fail image")
|
||||
XCTAssert(tabBarItem.text!.isEqualToString("watch"), "Fail text")
|
||||
XCTAssert(tabBarItem.font!.isEqual(defaultFont), "Fail font")
|
||||
}
|
||||
|
||||
func testSmallTextState() {
|
||||
// This is an example of a functional test case.
|
||||
var installDate = NSDate(dateString:"2014-07-7")
|
||||
var currentDate = NSDate(dateString:"2014-07-21")
|
||||
|
||||
var adaptiveDateState = AdaptiveDateState(installDate: installDate,currentDate:currentDate,countDaysToSmallTextState:countDaysToSmallTextState,countDaysToImageState:countDaysToImageState)
|
||||
|
||||
XCTAssert(!adaptiveDateState.isEqual(kSmallTitleAdaptiveState), "Fail SmallTitleState")
|
||||
|
||||
var buttonsAppearances = buttonsAppearancesGenerate()
|
||||
var tabBarItem = TestTabBarItem()
|
||||
|
||||
|
||||
var arrayButtons = [tabBarItem]
|
||||
|
||||
AdaptiveButtonsStateManager(state: adaptiveDateState,buttonsAray:arrayButtons ,buttonsAppearance: buttonsAppearances)
|
||||
|
||||
XCTAssert(tabBarItem.color!.isEqual(UIColor.whiteColor()), "Fail color")
|
||||
XCTAssert(UIOffsetEqualToOffset(tabBarItem.offset!,defaultOffset), "Fail offset")
|
||||
XCTAssert(UIEdgeInsetsEqualToEdgeInsets(defaultInsets, tabBarItem.insets!), "Fail insets")
|
||||
var image:MockUIImage = tabBarItem.image as MockUIImage
|
||||
XCTAssert(image.checkImageString!.isEqual("smalltitle Image"), "Fail image")
|
||||
|
||||
XCTAssert(tabBarItem.font!.isEqual(defaultSmallTitleModeFont), "Fail font")
|
||||
}
|
||||
|
||||
func testImageState() {
|
||||
// This is an example of a functional test case.
|
||||
var installDate = NSDate(dateString:"2014-07-7")
|
||||
var currentDate = NSDate(dateString:"2014-08-21")
|
||||
|
||||
var adaptiveDateState = AdaptiveDateState(installDate: installDate,currentDate:currentDate,countDaysToSmallTextState:countDaysToSmallTextState,countDaysToImageState:countDaysToImageState)
|
||||
|
||||
XCTAssert(!adaptiveDateState.isEqual(kImageAdaptiveState), "Fail ImageAdaptiveState")
|
||||
|
||||
var buttonsAppearances = buttonsAppearancesGenerate()
|
||||
var tabBarItem = TestTabBarItem()
|
||||
|
||||
|
||||
var arrayButtons = [tabBarItem]
|
||||
|
||||
AdaptiveButtonsStateManager(state: adaptiveDateState,buttonsAray:arrayButtons ,buttonsAppearance: buttonsAppearances)
|
||||
|
||||
|
||||
XCTAssert(tabBarItem.color!.isEqual(UIColor.whiteColor()), "Fail color")
|
||||
XCTAssert(UIOffsetEqualToOffset(tabBarItem.offset!,defaultOffset), "Fail offset")
|
||||
XCTAssert(UIEdgeInsetsEqualToEdgeInsets(defaultImageModeInsets, tabBarItem.insets!), "Fail insets")
|
||||
var image:MockUIImage = tabBarItem.image as MockUIImage
|
||||
XCTAssert(image.checkImageString!.isEqual("big Image"), "Fail image")
|
||||
XCTAssert(tabBarItem.text!.isEqualToString(""), "Fail text")
|
||||
XCTAssert(tabBarItem.font!.isEqual(defaultFont), "Fail font")
|
||||
}
|
||||
|
||||
|
||||
func buttonsAppearancesGenerate() -> [AdaptiveButtonAppearance]{
|
||||
|
||||
|
||||
var imageExtensionsForStates:Dictionary = [ kSmallTitleAdaptiveState:"_smalltitle",
|
||||
kImageAdaptiveState:"_bigimage",
|
||||
kSmallTitleAdaptiveState+selected :"_smalltitle",
|
||||
kImageAdaptiveState+selected:"_bigimage" ]
|
||||
|
||||
|
||||
var watchAppearance = AdaptiveButtonAppearance();
|
||||
|
||||
watchAppearance.setButonTitle("watch", state: kDefaultAdaptiveState)
|
||||
watchAppearance.setButonTitle("watch2", state: kSmallTitleAdaptiveState)
|
||||
watchAppearance.setButonTitle("", state: kImageAdaptiveState)
|
||||
watchAppearance.setTitleColor(UIColor.whiteColor(), state: kDefaultAdaptiveState)
|
||||
|
||||
watchAppearance.setButonTitleFontForState(defaultFont, state: kDefaultAdaptiveState)
|
||||
|
||||
watchAppearance.setButonTitleFontForState(defaultSmallTitleModeFont, state: kSmallTitleAdaptiveState)
|
||||
|
||||
|
||||
//watchAppearance.setImageNamesForStatesImageExtesions("watch", imageExtensionsForState:imageExtensionsForStates)
|
||||
|
||||
let mockImage = MockUIImage()
|
||||
mockImage.checkImageString = "default Image"
|
||||
|
||||
watchAppearance.setButtonImage(mockImage, state: kDefaultAdaptiveState)
|
||||
|
||||
|
||||
let mockSmallTitleImage = MockUIImage()
|
||||
mockSmallTitleImage.checkImageString = "smalltitle Image"
|
||||
|
||||
watchAppearance.setButtonImage(mockSmallTitleImage, state: kSmallTitleAdaptiveState)
|
||||
|
||||
let mockBigImageStateImage = MockUIImage()
|
||||
mockBigImageStateImage.checkImageString = "big Image"
|
||||
|
||||
watchAppearance.setButtonImage(mockBigImageStateImage, state: kImageAdaptiveState)
|
||||
|
||||
|
||||
watchAppearance.setImageInsets(defaultInsets, state: kDefaultAdaptiveState);
|
||||
|
||||
watchAppearance.setImageInsets(defaultSmallTitleModeImageInsets, state: kSmallTitleAdaptiveState)
|
||||
watchAppearance.setTitleOffset(defaultOffset, state: kDefaultAdaptiveState)
|
||||
watchAppearance.setImageInsets(defaultImageModeInsets, state: kImageAdaptiveState);
|
||||
|
||||
|
||||
return [watchAppearance]
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -1,60 +0,0 @@
|
||||
//
|
||||
// AdaptiveDateStateTest.swift
|
||||
// AdaptiveController
|
||||
//
|
||||
// Created by Arcilite on 14.10.14.
|
||||
// Copyright (c) 2014 Ramotion. All rights reserved.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
import XCTest
|
||||
import AdaptiveController
|
||||
|
||||
|
||||
|
||||
class AdaptiveDateStateTest: XCTestCase {
|
||||
|
||||
var adaptiveDateState:AdaptiveDateState?
|
||||
var installDate:NSDate?
|
||||
override func setUp() {
|
||||
super.setUp()
|
||||
|
||||
installDate = NSDate(dateString:"2014-07-7")
|
||||
var currentDate = NSDate(dateString:"2014-07-7")
|
||||
|
||||
adaptiveDateState = AdaptiveDateState(installDate: installDate!,currentDate:NSDate(),countDaysToSmallTextState:countDaysToSmallTextState,countDaysToImageState:countDaysToImageState)
|
||||
|
||||
// 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 testDefaultState() {
|
||||
// This is an example of a functional test case.
|
||||
XCTAssert(!adaptiveDateState!.isEqual(kDefaultAdaptiveState), "Fail DefaultState")
|
||||
}
|
||||
|
||||
func testSmallTextState() {
|
||||
// This is an example of a functional test case.
|
||||
var currentDate = NSDate(dateString:"2014-07-21")
|
||||
|
||||
adaptiveDateState = AdaptiveDateState(installDate: installDate!,currentDate:NSDate(),countDaysToSmallTextState:countDaysToSmallTextState,countDaysToImageState:countDaysToImageState)
|
||||
|
||||
XCTAssert(!adaptiveDateState!.isEqual(kSmallTitleAdaptiveState), "Fail SmallTitleState")
|
||||
}
|
||||
|
||||
func testImageState() {
|
||||
// This is an example of a functional test case.
|
||||
var currentDate = NSDate(dateString:"2014-08-21")
|
||||
|
||||
adaptiveDateState = AdaptiveDateState(installDate: installDate!,currentDate:NSDate(),countDaysToSmallTextState:countDaysToSmallTextState,countDaysToImageState:countDaysToImageState)
|
||||
|
||||
XCTAssert(!adaptiveDateState!.isEqual(kImageAdaptiveState), "Fail ImageAdaptiveState")
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -1,57 +0,0 @@
|
||||
//
|
||||
// AdaptiveLaunchesState.swift
|
||||
// AdaptiveController
|
||||
//
|
||||
// Created by Arcilite on 14.10.14.
|
||||
// Copyright (c) 2014 Ramotion. All rights reserved.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
import XCTest
|
||||
import AdaptiveController
|
||||
class AdaptiveLaunchesStateTest: XCTestCase {
|
||||
|
||||
var adaptiveLaunchState:AdaptiveLaunchesState?
|
||||
|
||||
override func setUp() {
|
||||
super.setUp()
|
||||
|
||||
}
|
||||
|
||||
override func tearDown() {
|
||||
// Put teardown code here. This method is called after the invocation of each test method in the class.
|
||||
super.tearDown()
|
||||
}
|
||||
|
||||
func testDefaultState() {
|
||||
|
||||
var curentCountLaunches = 0
|
||||
|
||||
adaptiveLaunchState = AdaptiveLaunchesState(curentCountLaunches:curentCountLaunches,countLaunchesToSmallTextState:countDaysForSmaltextState,countLaunchesToImageState:countDaysForImageModeState)
|
||||
// This is an example of a functional test case.
|
||||
XCTAssert(!adaptiveLaunchState!.isEqual(kDefaultAdaptiveState), "Fail DefaultState")
|
||||
}
|
||||
|
||||
func testSmallTextState() {
|
||||
// This is an example of a functional test case.
|
||||
var curentCountLaunches = 5
|
||||
|
||||
adaptiveLaunchState = AdaptiveLaunchesState(curentCountLaunches:curentCountLaunches,countLaunchesToSmallTextState:countDaysForSmaltextState,countLaunchesToImageState:countDaysForImageModeState)
|
||||
|
||||
XCTAssert(!adaptiveLaunchState!.isEqual(kSmallTitleAdaptiveState), "Fail SmallTitleState")
|
||||
}
|
||||
|
||||
func testImageState() {
|
||||
// This is an example of a functional test case.
|
||||
var curentCountLaunches = 7
|
||||
|
||||
adaptiveLaunchState = AdaptiveLaunchesState(curentCountLaunches:curentCountLaunches,countLaunchesToSmallTextState:countDaysForSmaltextState,countLaunchesToImageState:countDaysForImageModeState)
|
||||
|
||||
|
||||
XCTAssert(!adaptiveLaunchState!.isEqual(kImageAdaptiveState), "Fail ImageAdaptiveState")
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -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>ramotion.$(PRODUCT_NAME:rfc1034identifier)</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,68 +0,0 @@
|
||||
//
|
||||
// TestTabBarItem.swift
|
||||
// AdaptiveController
|
||||
//
|
||||
// Created by Arcilite on 17.10.14.
|
||||
// Copyright (c) 2014 Ramotion. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import UIKit
|
||||
import AdaptiveController
|
||||
import XCTest
|
||||
|
||||
class TestTabBarItem: AdaptiveApperanceProtocol {
|
||||
|
||||
var font:UIFont?
|
||||
var text:NSString?
|
||||
var image:UIImage?
|
||||
var selectedImage:UIImage?
|
||||
var insets:UIEdgeInsets?
|
||||
var color:UIColor?
|
||||
var offset :UIOffset?
|
||||
|
||||
init(){
|
||||
|
||||
}
|
||||
|
||||
func setFontToAdaptiveButton(font: UIFont){
|
||||
|
||||
self.font = font
|
||||
}
|
||||
|
||||
func setTitleToAdaptiveButton(text: NSString){
|
||||
|
||||
self.text = text;
|
||||
|
||||
}
|
||||
|
||||
func setImageToAdaptiveButton(image: UIImage?){
|
||||
// XCTAssertNotNil(image)
|
||||
self.image = image
|
||||
|
||||
}
|
||||
|
||||
func setSelectedImageToAdaptiveButton(image: UIImage){
|
||||
self.selectedImage = image;
|
||||
|
||||
}
|
||||
|
||||
func setImageInsetsToAdaptiveButton(insets: UIEdgeInsets){
|
||||
self.insets = insets
|
||||
|
||||
}
|
||||
|
||||
func setTitleOffsetToAdaptiveButton(offset: UIOffset){
|
||||
|
||||
self.offset = offset;
|
||||
|
||||
}
|
||||
|
||||
func setTitleColorToAdaptiveButton(color: UIColor){
|
||||
self.color = color;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
Before Width: | Height: | Size: 1.9 KiB |
@@ -1,21 +0,0 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2014 Ramotion Inc.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -1,171 +0,0 @@
|
||||
# Adaptive Tab Bar
|
||||
|
||||
AdaptiveController is a 'Progressive Reduction' Swift module for adding custom states to Native or Custom UI elements.
|
||||
|
||||

|
||||
|
||||
##Tab Bar After Install
|
||||

|
||||
|
||||
##Tab Bar After Two Weeks
|
||||
|
||||

|
||||
|
||||
##Tab Bar After a Month
|
||||
|
||||

|
||||
|
||||
##Overview
|
||||
|
||||
AdaptiveController is module for adding custom states to Native or Custom UI elements. The UI elements evolve over time as the user becomes accustomed to them. An example AdaptiveTabBar is provided.
|
||||
|
||||
##How to import the control to your project
|
||||
|
||||
1. First, drag and drop the AdaptiveController project file into your project or select "add existing file" and choose the AdaptiveController project
|
||||
2. Add AdaptiveController to your Target Dependences in the Build Phase of your project.
|
||||
3. Add the AdaptiveController framework in Link Binary With Libraries in Build Phases
|
||||
4. Import AdaptiveController where needed.
|
||||
|
||||
##Using AdaptiveController
|
||||
|
||||
First, you should set the install date, current date, count of days to transition to small text state, and count of days to transition to big image state. The AdaptiveDateState object automatically determines what UI state to show:
|
||||
|
||||
```swift
|
||||
var installDate = NSDate(dateString:"2014-09-18")
|
||||
var adaptiveState = AdaptiveDateState(installDate: installDate, currentDate:NSDate(), countDaysToSmallTextState:countDaysToSmallTextState, countDaysToImageState:countDaysToImageState)
|
||||
```
|
||||
Or count of launches for different state:
|
||||
|
||||
```swift
|
||||
var curentCountLaunches = 6
|
||||
var adaptiveState = AdaptiveLaunchesState(curentCountLaunches:curentCountLaunches, countLaunchesToSmallTextState:5, countLaunchesToImageState:7)
|
||||
```
|
||||
|
||||
And then you should setup an array of appearances. You should setup button images for each state for each apperance object:
|
||||
|
||||
```swift
|
||||
var buttonsAppearances = buttonsAppearancesGenerate() //func butonsAppearancesGenerate() -> [AdaptiveButtonApperance]
|
||||
```
|
||||
|
||||
And then you should setup an array of items Appearance object. You should set the button's image for each state for each appearance object.
|
||||
|
||||
First, you should setup a dictionary for the extension of the image for each UI state:
|
||||
|
||||
```swift
|
||||
var imageExtensionsForStates:Dictionary = [ kSmallTitleAdaptiveState:"_smalltitle", kImageAdaptiveState:"_bigimage", kSmallTitleAdaptiveState+selected :"_smalltitle", kImageAdaptiveState+selected:"_bigimage" ]
|
||||
```
|
||||
Then you should set the Appearance for each UITabBarItem title for each state, fonts for each state, a default image if you describe an extension for each state, or if you do not describe an extension, you should setup each image for each state.
|
||||
|
||||
First, init the appearance object and setup the text for each state. If the text is the same for each state, you can set text for the default state:
|
||||
|
||||
```swift
|
||||
var watchAppearance = AdaptiveButtonAppearance();
|
||||
watchAppearance.setButonTitle("watch", state: kDefaultAdaptiveState)
|
||||
watchAppearance.setButonTitle("watch", state: kSmallTitleAdaptiveState)
|
||||
watchAppearance.setButonTitle("", state: kImageAdaptiveState)
|
||||
```
|
||||
|
||||
Then you should setup your fonts for each state:
|
||||
|
||||
```swift
|
||||
watchAppearance.setButonTitleFontForState(yourDefaultFont, state: kDefaultAdaptiveState)
|
||||
watchAppearance.setButonTitleFontForState(yourDefaultSmallTitleModeFont, state: kSmallTitleAdaptiveState)
|
||||
```
|
||||
|
||||
Then you should set the default image and extensions for each state a function which automaticaly sets images for each state:
|
||||
|
||||
```swift
|
||||
watchAppearance.setImageNamesForStatesImageExtesions("watch", imageExtensionsForState:imageExtensionsForStates)
|
||||
```
|
||||
|
||||
Then you should setup the appearance insets for each state:
|
||||
|
||||
```swift
|
||||
watchAppearance.setImageInsets(defaultInsets, state: kDefaultAdaptiveState);
|
||||
watchAppearance.setImageInsets(defaultSmallTitleModeImageInsets, state: kSmallTitleAdaptiveState)
|
||||
watchAppearance.setTitleOffset(defaultOffset, state: kDefaultAdaptiveState)
|
||||
watchAppearance.setImageInsets(defaultImageModeInsets, state: kImageAdaptiveState);
|
||||
```
|
||||
|
||||
Then you should setup сustom UITabBarItems which conform to the AdaptiveButtonsProtocol:
|
||||
|
||||
```swift
|
||||
var arrayButtons = tabBar.items as [AdaptiveTabBarItem]
|
||||
```
|
||||
|
||||
In your custom tab item, you should implement these methods from the protocol:
|
||||
|
||||
```swift
|
||||
@objc protocol AdaptiveApperanceProtocol {
|
||||
optional func setFontToAdaptiveButton(font: UIFont)
|
||||
optional func setTitleToAdaptiveButton(text: NSString)
|
||||
optional func setImageToAdaptiveButton(image: UIImage?)
|
||||
optional func setHighlightedToAdaptiveButton(image: UIImage?)
|
||||
optional func setBackgroundImageToAdaptiveButton(image: UIImage?)
|
||||
optional func setSelectedImageToAdaptiveButton(image: UIImage?)
|
||||
optional func setImageInsetsToAdaptiveButton(insets: UIEdgeInsets)
|
||||
optional func setTitleOffsetToAdaptiveButton(offset: UIOffset)
|
||||
optional func setTitleColorToAdaptiveButton(titleColor: UIColor)
|
||||
}
|
||||
```
|
||||
|
||||
An example implemetation of a protocol method from our custom tab bar item:
|
||||
|
||||
```swift
|
||||
func setTitleToAdaptiveButton(text: NSString) {
|
||||
self.title = text
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
Finally, you should init Adaptive State Manager with the objects you've setup:
|
||||
|
||||
```swift
|
||||
AdaptiveButtonsStateManager(state: adaptiveState, buttonsAray:arrayButtons, buttonsAppearance:butonsAppearances)
|
||||
```
|
||||
|
||||
|
||||
##Using Custom States For AdaptiveController
|
||||
|
||||
Like UITabBar for different custom applications states
|
||||
|
||||
We have a default AdaptiveState and with the help of inheritance, we can add
|
||||
new custom states to our state class. The new class in our situation is
|
||||
named AdaptiveDateState
|
||||
|
||||
In AdaptiveDateState, we can add new custom states like this:
|
||||
|
||||
```swift
|
||||
let kSmallTitleAdaptiveState = "kImageAdaptiveState"
|
||||
let kImageAdaptiveState = "kNormalImageAdaptiveState"
|
||||
```
|
||||
|
||||
And add methods which decide how the state relates to input parameters:
|
||||
|
||||
```swift
|
||||
var adaptiveState = AdaptiveDateState(installDate: installDate,currentDate:NSDate(),countDaysToSmallTextState:countDaysToSmallTextState,countDaysToImageState:countDaysToImageState)
|
||||
```
|
||||
|
||||
In AdaptiveDateState, we add custom init methods which decided what states have the Adaptive state object according to the input parameters:
|
||||
|
||||
```swift
|
||||
private func stateRemainDays(remainDays:Int, countDaysToSmallTextState:Int, countDaysToImageState:Int)->String {
|
||||
var mode:String = kDefaultAdaptiveState
|
||||
print(" DAYS \(remainDays) ")
|
||||
if remainDays > countDaysToSmallTextState && remainDays < countDaysToImageState{
|
||||
mode = kSmallTitleAdaptiveState
|
||||
} else if remainDays > countDaysToImageState {
|
||||
mode = kImageAdaptiveState
|
||||
}
|
||||
print(mode)
|
||||
return mode
|
||||
}
|
||||
```
|
||||
|
||||
You can customize different UI components if they adopt to the AdaptiveApperanceProtocol.
|
||||
|
||||
##About us
|
||||
|
||||
[Ramotion](http://Ramotion.com) is an iPhone app design and development company. We are ready for new interesting iOS App Development projects.
|
||||
|
||||
Follow us on [twitter](http://twitter.com/ramotion).
|
||||
@@ -1,4 +0,0 @@
|
||||
//
|
||||
// Use this file to import your target's public headers that you would like to expose to Swift.
|
||||
//
|
||||
|
||||
@@ -1,176 +0,0 @@
|
||||
//
|
||||
// AdaptiveButtonApperance.swift
|
||||
// AdaptiveTabBarControllerSample
|
||||
//
|
||||
// Created by Arcilite on 18.09.14.
|
||||
// Copyright (c) 2014 Ramotion. All rights reserved.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
let kNotTitle = ""
|
||||
let defaultFont = UIFont(name: "Helvetica", size: 14.0)
|
||||
|
||||
class AdaptiveButtonApperance: NSObject {
|
||||
|
||||
|
||||
private var butonsTitleForStateDictionary:Dictionary <String,String> = Dictionary<String,String>()
|
||||
private var butonsTitleFontForStateDictionary:Dictionary <String,UIFont> = Dictionary<String,UIFont>()
|
||||
private var buttonsImageForStateDictionary:Dictionary <String,UIImage> = Dictionary<String,UIImage>()
|
||||
private var buttonsBackgroundImageForStateDictionary:Dictionary <String,UIImage> = Dictionary<String,UIImage>()
|
||||
|
||||
|
||||
private var buttonsImageInsetsForStateDictionary:Dictionary <String,UIEdgeInsets> = Dictionary<String,UIEdgeInsets>()
|
||||
private var buttonsTitleInsetsForStateDictionary:Dictionary <String,UIOffset> = Dictionary<String,UIOffset>()
|
||||
|
||||
private var buttonsTitleColorsForStateDictionary:Dictionary <String,UIColor> = Dictionary<String,UIColor>()
|
||||
|
||||
func setInsetsFromAdaptiveButtonApperance(adaptiveButtonApperance:AdaptiveButtonApperance){
|
||||
|
||||
self.buttonsImageInsetsForStateDictionary = adaptiveButtonApperance.buttonsImageInsetsForStateDictionary
|
||||
|
||||
self.buttonsTitleInsetsForStateDictionary = adaptiveButtonApperance.buttonsTitleInsetsForStateDictionary
|
||||
|
||||
|
||||
}
|
||||
|
||||
func setFontsFromAdaptiveButtonApperance(adaptiveButtonApperance:AdaptiveButtonApperance){
|
||||
|
||||
self.butonsTitleFontForStateDictionary = adaptiveButtonApperance.butonsTitleFontForStateDictionary
|
||||
}
|
||||
|
||||
func setAllCommonApperanceFrom(adaptiveButtonApperance:AdaptiveButtonApperance){
|
||||
self.setInsetsFromAdaptiveButtonApperance(adaptiveButtonApperance)
|
||||
self.setFontsFromAdaptiveButtonApperance(adaptiveButtonApperance)
|
||||
self.buttonsTitleColorsForStateDictionary = adaptiveButtonApperance.buttonsTitleColorsForStateDictionary
|
||||
|
||||
}
|
||||
|
||||
|
||||
func setImageNamesForStatesImageExtesions(imageName :String ,imageExtensionsForState:Dictionary <String,String>){
|
||||
|
||||
self.setButtonImage(UIImage(named: imageName), state: kDefaultAdaptiveState)
|
||||
|
||||
for (state,imageExtension) in imageExtensionsForState {
|
||||
self.setButtonImage(UIImage(named: imageName+imageExtension), state: state)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func setButonTitle(title:NSString, state:String){
|
||||
butonsTitleForStateDictionary.updateValue(title, forKey:state)
|
||||
}
|
||||
|
||||
func getButonTitleForState(state:NSString)->String!{
|
||||
|
||||
if let title = butonsTitleForStateDictionary[state] {
|
||||
return title
|
||||
}else{
|
||||
if let title = butonsTitleForStateDictionary[kDefaultAdaptiveState] {
|
||||
return title
|
||||
}else{
|
||||
return kNotTitle
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func setButonTitleFontForState(font:UIFont, state:String){
|
||||
butonsTitleFontForStateDictionary.updateValue(font, forKey:state)
|
||||
}
|
||||
|
||||
func getButonTitleFontForState(state:NSString)->UIFont{
|
||||
var font:UIFont? = butonsTitleFontForStateDictionary[state]
|
||||
|
||||
if let font = butonsTitleFontForStateDictionary[state] {
|
||||
return font
|
||||
}else{
|
||||
|
||||
if let font = butonsTitleFontForStateDictionary[kDefaultAdaptiveState] {
|
||||
return font
|
||||
}else{
|
||||
return defaultFont
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
func setButtonImage(image:UIImage, state:String){
|
||||
buttonsImageForStateDictionary.updateValue(image, forKey:state)
|
||||
print("set State \(state)")
|
||||
}
|
||||
|
||||
func getButonImageForState(state:NSString)->UIImage!{
|
||||
|
||||
print("get State \(state)")
|
||||
if let image = buttonsImageForStateDictionary[state] {
|
||||
return image
|
||||
}else{
|
||||
return buttonsImageForStateDictionary[kDefaultAdaptiveState]
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
func setBackgroundButonImage(image:UIImage, state:String){
|
||||
buttonsImageForStateDictionary.updateValue(image, forKey:state)
|
||||
}
|
||||
|
||||
func getBackgroundImageForState(state:NSString)->UIImage?{
|
||||
|
||||
if let image = buttonsBackgroundImageForStateDictionary[state] {
|
||||
return image
|
||||
}else{
|
||||
return buttonsBackgroundImageForStateDictionary[kDefaultAdaptiveState]
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
func setImageInsets(insets:UIEdgeInsets, state:String){
|
||||
buttonsImageInsetsForStateDictionary.updateValue(insets, forKey:state)
|
||||
}
|
||||
|
||||
func getImageInsetsForState(state:NSString)->UIEdgeInsets!{
|
||||
|
||||
if let insets = buttonsImageInsetsForStateDictionary[state] {
|
||||
return buttonsImageInsetsForStateDictionary[state]!
|
||||
}else{
|
||||
return buttonsImageInsetsForStateDictionary[kDefaultAdaptiveState]
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func setTitleOffset(insets:UIOffset, state:String){
|
||||
buttonsTitleInsetsForStateDictionary.updateValue(insets, forKey:state)
|
||||
}
|
||||
|
||||
func getTitleOffsetForState(state:NSString)->UIOffset!{
|
||||
|
||||
var offset:UIOffset? = buttonsTitleInsetsForStateDictionary[state]
|
||||
if(offset == nil){
|
||||
offset = buttonsTitleInsetsForStateDictionary[kDefaultAdaptiveState]?
|
||||
}
|
||||
|
||||
return offset!
|
||||
}
|
||||
|
||||
|
||||
func setTitleColor(color:UIColor, state:String){
|
||||
buttonsTitleColorsForStateDictionary.updateValue(color, forKey:state)
|
||||
}
|
||||
|
||||
func getTitleColorForState(state:NSString)->UIColor!{
|
||||
|
||||
var offset:UIColor? = buttonsTitleColorsForStateDictionary[state]
|
||||
if(offset == nil){
|
||||
offset = buttonsTitleColorsForStateDictionary[kDefaultAdaptiveState]?
|
||||
}
|
||||
|
||||
return offset!
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,94 +0,0 @@
|
||||
//
|
||||
// AdaptiveButtonsStateManager.swift
|
||||
// AdaptiveTabBarControllerSample
|
||||
//
|
||||
// Created by Arcilite on 18.09.14.
|
||||
// Copyright (c) 2014 Ramotion. All rights reserved.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
let countDaysToSmallTextState = 14
|
||||
let countDaysToImageState = 30
|
||||
|
||||
let defaultInsets = UIEdgeInsetsMake(0, 0,0, 0)
|
||||
let defaultSmallTitleModeFont = UIFont(name: "Helvetica", size: 10.0)
|
||||
let defaultSmallTitleModeImageInsets = UIEdgeInsetsMake(0, 0, 0, 0)
|
||||
let defaultImageModeInsets = UIEdgeInsetsMake(6, 0, -6, 0)
|
||||
let defaultSmallTitleModeOffset = UIOffsetMake(0, 20)
|
||||
let defaultOffset = UIOffsetMake(0, 00)
|
||||
let tabColor = UIColor(red: 169/255, green: 79/255, blue: 152/255, alpha: 1.0)
|
||||
|
||||
|
||||
|
||||
@objc protocol AdaptiveApperanceProtocol {
|
||||
optional func setFontToAdaptiveButton(font: UIFont)
|
||||
optional func setTitleToAdaptiveButton(text: NSString)
|
||||
optional func setImageToAdaptiveButton(image: UIImage?)
|
||||
optional func setHighlightedToAdaptiveButton(image: UIImage?)
|
||||
optional func setBackgroundImageToAdaptiveButton(image: UIImage?)
|
||||
optional func setSelectedImageToAdaptiveButton(image: UIImage?)
|
||||
optional func setImageInsetsToAdaptiveButton(insets: UIEdgeInsets)
|
||||
optional func setTitleOffsetToAdaptiveButton(offset: UIOffset)
|
||||
optional func setTitleColorToAdaptiveButton(titleColor: UIColor)
|
||||
}
|
||||
|
||||
let selected = "Selected"
|
||||
let highlighted = "Higlihted"
|
||||
|
||||
class AdaptiveButtonsStateManager: NSObject {
|
||||
|
||||
convenience init (state:AdaptiveState,buttonsAray:[AdaptiveApperanceProtocol],buttonsApperance:[AdaptiveButtonApperance]){
|
||||
self.init()
|
||||
self.setButtonsState(state, buttonsAray: buttonsAray, buttonsApperance: buttonsApperance)
|
||||
}
|
||||
|
||||
func setButtonsState(state:AdaptiveState,buttonsAray:[AdaptiveApperanceProtocol],buttonsApperance:[AdaptiveButtonApperance]){
|
||||
|
||||
var state:String = state.currentItemState!
|
||||
|
||||
var countElements = buttonsAray.count > buttonsApperance.count ? buttonsApperance.count : buttonsAray.count
|
||||
for var index = 0; index < countElements; ++index {
|
||||
println("index is \(index)")
|
||||
println("buttons count array is \(buttonsAray.count)")
|
||||
|
||||
var button :AdaptiveApperanceProtocol = buttonsAray[index]
|
||||
var buttonApperance = buttonsApperance[index]
|
||||
button.setTitleToAdaptiveButton!(buttonApperance.getButonTitleForState(state))
|
||||
button.setFontToAdaptiveButton!(buttonApperance.getButonTitleFontForState(state))
|
||||
|
||||
if let image = buttonApperance.getButonImageForState(state) {
|
||||
button.setImageToAdaptiveButton?(image)
|
||||
}
|
||||
|
||||
if let selectedImage = buttonApperance.getButonImageForState(state+selected) {
|
||||
button.setSelectedImageToAdaptiveButton?(selectedImage)
|
||||
}
|
||||
|
||||
if let highlightedImage = buttonApperance.getButonImageForState(state+highlighted) {
|
||||
button.setHighlightedToAdaptiveButton?(highlightedImage)
|
||||
}
|
||||
|
||||
if let backgroundImage = buttonApperance.getButonImageForState(state) {
|
||||
button.setBackgroundImageToAdaptiveButton?(backgroundImage)
|
||||
}
|
||||
|
||||
if let imageInset = buttonApperance.getImageInsetsForState(state) {
|
||||
button.setImageInsetsToAdaptiveButton?(imageInset)
|
||||
}
|
||||
|
||||
if let titleOffset = buttonApperance.getTitleOffsetForState(state) {
|
||||
button.setTitleOffsetToAdaptiveButton?(titleOffset)
|
||||
}
|
||||
|
||||
if let titleColor = buttonApperance.getTitleColorForState(state) {
|
||||
button.setTitleColorToAdaptiveButton?(titleColor)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,53 +0,0 @@
|
||||
//
|
||||
// AdaptiveDateState.swift
|
||||
// AdaptiveTabBarControllerSample
|
||||
//
|
||||
// Created by Arcilite on 18.09.14.
|
||||
// Copyright (c) 2014 Ramotion. All rights reserved.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
let kSmallTitleAdaptiveState = "kImageAdaptiveState"
|
||||
let kImageAdaptiveState = "kNormalImageAdaptiveState"
|
||||
class AdaptiveDateState: AdaptiveState {
|
||||
|
||||
|
||||
override init(){
|
||||
super.init()
|
||||
super.addNewCustomAdaptiveStates([kSmallTitleAdaptiveState,kImageAdaptiveState])
|
||||
}
|
||||
|
||||
convenience init(installDate:NSDate, currentDate:NSDate,countDaysToSmallTextState:Int,countDaysToImageState:Int) {
|
||||
self.init()
|
||||
|
||||
var remainsDays = self.daysBetweenDates(installDate,currentDate: currentDate)
|
||||
self.currentItemState = self.stateRemainDays(remainsDays,countDaysToSmallTextState:countDaysToSmallTextState,countDaysToImageState:countDaysToImageState)
|
||||
print(currentItemState)
|
||||
}
|
||||
|
||||
|
||||
private func daysBetweenDates(installDate:NSDate, currentDate:NSDate) -> Int{
|
||||
|
||||
let cal = NSCalendar.currentCalendar()
|
||||
|
||||
let unit:NSCalendarUnit = .DayCalendarUnit
|
||||
|
||||
let components = cal.components(unit, fromDate: installDate, toDate: currentDate, options: nil)
|
||||
|
||||
return components.day+1;
|
||||
}
|
||||
|
||||
private func stateRemainDays (remainDays:Int,countDaysToSmallTextState:Int,countDaysToImageState:Int)->String{
|
||||
|
||||
var mode:String = kDefaultAdaptiveState
|
||||
print(" DAYS \(remainDays) ")
|
||||
if remainDays > countDaysToSmallTextState && remainDays < countDaysToImageState{
|
||||
mode = kSmallTitleAdaptiveState
|
||||
}else if remainDays > countDaysToImageState {
|
||||
mode = kImageAdaptiveState
|
||||
}
|
||||
print(mode)
|
||||
return mode
|
||||
}
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
//
|
||||
// AdaptiveController.swift
|
||||
// AdaptiveTabBarControllerSample
|
||||
//
|
||||
// Created by Arcilite on 17.09.14.
|
||||
// Copyright (c) 2014 Ramotion. All rights reserved.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
|
||||
let kDefaultAdaptiveState:String = "DefaultAdaptiveState"
|
||||
|
||||
|
||||
class AdaptiveState: NSObject {
|
||||
|
||||
var currentItemState:NSString?
|
||||
|
||||
|
||||
var buttonStates:[String] = [String]()
|
||||
|
||||
|
||||
override init(){
|
||||
super.init()
|
||||
self.currentItemState = kDefaultAdaptiveState
|
||||
self.addNewCustomAdaptiveStates([kDefaultAdaptiveState])
|
||||
}
|
||||
|
||||
internal func addNewCustomAdaptiveStates(customAdaptiveStates:Array<String>){
|
||||
self.buttonStates+customAdaptiveStates
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -1,142 +0,0 @@
|
||||
//
|
||||
// AppDelegate.swift
|
||||
// adaptive-tab-bar
|
||||
//
|
||||
// Created by Arcilite on 15.09.14.
|
||||
// Copyright (c) 2014 Ramotion. All rights reserved.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
import CoreGraphics
|
||||
import QuartzCore
|
||||
import AdaptiveController
|
||||
|
||||
|
||||
|
||||
@UIApplicationMain
|
||||
class AppDelegate: UIResponder, UIApplicationDelegate {
|
||||
|
||||
var window: UIWindow?
|
||||
|
||||
|
||||
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
|
||||
// Override point for customization after application launch.
|
||||
|
||||
UITabBar.appearance().selectedImageTintColor = tabColor
|
||||
UITabBar.appearance().barTintColor = UIColor.clearColor()
|
||||
UITabBar.appearance().shadowImage = UIImage()
|
||||
UITabBar.appearance().selectionIndicatorImage = UIImage(named: "backgroud_tab")
|
||||
UITabBar.appearance().itemPositioning = UITabBarItemPositioning.Fill
|
||||
UITabBarItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.whiteColor()],forState: UIControlState.Normal)
|
||||
UITabBarItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName: tabColor],forState: UIControlState.Selected)
|
||||
|
||||
|
||||
var tabBarController:UITabBarController = self.window?.rootViewController as UITabBarController
|
||||
|
||||
var tabBar:UITabBar = tabBarController.tabBar
|
||||
tabBar.barTintColor = tabColor
|
||||
tabBar.clipsToBounds = true
|
||||
|
||||
var installDate = NSDate(dateString:"2014-07-7")
|
||||
|
||||
|
||||
var adaptiveState = AdaptiveDateState(installDate: installDate,currentDate:NSDate(),countDaysToSmallTextState:countDaysToSmallTextState,countDaysToImageState:countDaysToImageState)
|
||||
|
||||
|
||||
var butonsApperances = buttonsAppearancesGenerate()
|
||||
|
||||
|
||||
var arrayButtons = tabBar.items as [AdaptiveTabBarItem]
|
||||
|
||||
AdaptiveButtonsStateManager(state: adaptiveState,buttonsAray:arrayButtons ,buttonsAppearance: butonsApperances)
|
||||
|
||||
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
|
||||
func buttonsAppearancesGenerate() -> [AdaptiveButtonAppearance]{
|
||||
|
||||
|
||||
var imageExtensionsForStates:Dictionary = [ kDefaultAdaptiveState:"",
|
||||
kSmallTitleAdaptiveState:"_smalltitle",
|
||||
kImageAdaptiveState:"_bigimage",
|
||||
kSmallTitleAdaptiveState+selected :"_smalltitle",
|
||||
kImageAdaptiveState+selected:"_bigimage" ]
|
||||
|
||||
|
||||
var watchAperance = AdaptiveButtonAppearance();
|
||||
|
||||
watchAperance.setButonTitle("watch", state: kDefaultAdaptiveState)
|
||||
watchAperance.setButonTitle("watch", state: kSmallTitleAdaptiveState)
|
||||
watchAperance.setButonTitle("", state: kImageAdaptiveState)
|
||||
watchAperance.setTitleColor(UIColor.whiteColor(), state: kDefaultAdaptiveState)
|
||||
|
||||
watchAperance.setButonTitleFontForState(defaultFont, state: kDefaultAdaptiveState)
|
||||
|
||||
watchAperance.setButonTitleFontForState(defaultSmallTitleModeFont, state: kSmallTitleAdaptiveState)
|
||||
|
||||
|
||||
watchAperance.setImageNamesForStatesImageExtesions("watch", imageExtensionsForState:imageExtensionsForStates)
|
||||
|
||||
|
||||
watchAperance.setImageInsets(defaultInsets, state: kDefaultAdaptiveState);
|
||||
|
||||
watchAperance.setImageInsets(defaultSmallTitleModeImageInsets, state: kSmallTitleAdaptiveState)
|
||||
watchAperance.setTitleOffset(defaultOffset, state: kDefaultAdaptiveState)
|
||||
watchAperance.setImageInsets(defaultImageModeInsets, state: kImageAdaptiveState);
|
||||
|
||||
|
||||
var userAperance = AdaptiveButtonAppearance();
|
||||
|
||||
|
||||
userAperance.setAllCommonApperanceFrom(watchAperance)
|
||||
|
||||
userAperance.setButonTitle("user", state: kDefaultAdaptiveState)
|
||||
userAperance.setButonTitle("", state: kImageAdaptiveState)
|
||||
userAperance.setImageNamesForStatesImageExtesions("man", imageExtensionsForState:imageExtensionsForStates)
|
||||
|
||||
|
||||
|
||||
var messageAperance = AdaptiveButtonAppearance();
|
||||
|
||||
messageAperance.setAllCommonApperanceFrom((watchAperance))
|
||||
|
||||
messageAperance.setButonTitle("message", state: kDefaultAdaptiveState)
|
||||
messageAperance.setButonTitle("", state: kImageAdaptiveState)
|
||||
|
||||
messageAperance.setImageNamesForStatesImageExtesions("messages", imageExtensionsForState:imageExtensionsForStates)
|
||||
|
||||
|
||||
|
||||
|
||||
var menuAperance = AdaptiveButtonAppearance();
|
||||
|
||||
|
||||
menuAperance.setAllCommonApperanceFrom((watchAperance))
|
||||
|
||||
menuAperance.setButonTitle("dial", state: kDefaultAdaptiveState)
|
||||
menuAperance.setButonTitle("", state: kImageAdaptiveState)
|
||||
menuAperance.setImageNamesForStatesImageExtesions("menu", imageExtensionsForState:imageExtensionsForStates)
|
||||
|
||||
|
||||
|
||||
var moreAperance = AdaptiveButtonAppearance();
|
||||
|
||||
moreAperance.setAllCommonApperanceFrom((watchAperance))
|
||||
|
||||
moreAperance.setButonTitle("more", state: kDefaultAdaptiveState)
|
||||
moreAperance.setButonTitle("", state: kImageAdaptiveState)
|
||||
|
||||
moreAperance.setImageNamesForStatesImageExtesions("more", imageExtensionsForState:imageExtensionsForStates)
|
||||
|
||||
|
||||
|
||||
return [watchAperance ,messageAperance,userAperance,menuAperance,moreAperance]
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="6245" systemVersion="13F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES">
|
||||
<dependencies>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6238"/>
|
||||
<capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<view contentMode="scaleToFill" id="iN0-l3-epB">
|
||||
<rect key="frame" x="0.0" y="0.0" width="480" height="480"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text=" Copyright (c) 2014 Ramotion. All rights reserved." textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="9" translatesAutoresizingMaskIntoConstraints="NO" id="8ie-xW-0ye">
|
||||
<rect key="frame" x="20" y="439" width="441" height="21"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="example-date-adaptive-tab-bar" textAlignment="center" lineBreakMode="middleTruncation" baselineAdjustment="alignBaselines" minimumFontSize="18" translatesAutoresizingMaskIntoConstraints="NO" id="kId-c2-rCX">
|
||||
<rect key="frame" x="20" y="140" width="441" height="43"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="36"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstItem="kId-c2-rCX" firstAttribute="centerY" secondItem="iN0-l3-epB" secondAttribute="bottom" multiplier="1/3" constant="1" id="5cJ-9S-tgC"/>
|
||||
<constraint firstAttribute="centerX" secondItem="kId-c2-rCX" secondAttribute="centerX" id="Koa-jz-hwk"/>
|
||||
<constraint firstAttribute="bottom" secondItem="8ie-xW-0ye" secondAttribute="bottom" constant="20" id="Kzo-t9-V3l"/>
|
||||
<constraint firstItem="8ie-xW-0ye" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="20" symbolic="YES" id="MfP-vx-nX0"/>
|
||||
<constraint firstAttribute="centerX" secondItem="8ie-xW-0ye" secondAttribute="centerX" id="ZEH-qu-HZ9"/>
|
||||
<constraint firstItem="kId-c2-rCX" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="20" symbolic="YES" id="fvb-Df-36g"/>
|
||||
</constraints>
|
||||
<nil key="simulatedStatusBarMetrics"/>
|
||||
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
|
||||
<point key="canvasLocation" x="548" y="455"/>
|
||||
</view>
|
||||
</objects>
|
||||
</document>
|
||||
@@ -1,192 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="6245" systemVersion="13F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="49e-Tb-3d3">
|
||||
<dependencies>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6238"/>
|
||||
</dependencies>
|
||||
<scenes>
|
||||
<!--First-->
|
||||
<scene sceneID="hNz-n2-bh7">
|
||||
<objects>
|
||||
<viewController id="9pv-A4-QxB" customClass="WatchViewController" customModule="adaptive_tab_bar" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<layoutGuides>
|
||||
<viewControllerLayoutGuide type="top" id="Ia1-K6-d13"/>
|
||||
<viewControllerLayoutGuide type="bottom" id="4ug-Mw-9AY"/>
|
||||
</layoutGuides>
|
||||
<view key="view" contentMode="scaleToFill" id="tsR-hK-woN">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" text="First View" textAlignment="center" lineBreakMode="tailTruncation" minimumFontSize="10" translatesAutoresizingMaskIntoConstraints="NO" id="KQZ-1w-vlD">
|
||||
<rect key="frame" x="221" y="279" width="157.5" height="41.5"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica" family="Helvetica" pointSize="36"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Loaded by FirstViewController" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="A5M-7J-77L">
|
||||
<rect key="frame" x="203" y="329" width="194.5" height="17"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="background" translatesAutoresizingMaskIntoConstraints="NO" id="bTY-b5-lYl">
|
||||
<rect key="frame" x="0.0" y="0.0" width="640" height="550"/>
|
||||
</imageView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="centerX" secondItem="KQZ-1w-vlD" secondAttribute="centerX" id="6BV-lF-sBN"/>
|
||||
<constraint firstItem="A5M-7J-77L" firstAttribute="top" secondItem="KQZ-1w-vlD" secondAttribute="bottom" constant="8" symbolic="YES" id="cfb-er-3JN"/>
|
||||
<constraint firstItem="A5M-7J-77L" firstAttribute="centerX" secondItem="KQZ-1w-vlD" secondAttribute="centerX" id="e1l-AV-tCB"/>
|
||||
<constraint firstAttribute="centerY" secondItem="KQZ-1w-vlD" secondAttribute="centerY" id="exm-UA-ej4"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<tabBarItem key="tabBarItem" title="First" id="acW-dT-cKf" customClass="AdaptiveTabBarItem" customModule="adaptive_tab_bar" customModuleProvider="target"/>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="W5J-7L-Pyd" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="750" y="-612.5"/>
|
||||
</scene>
|
||||
<!--Second-->
|
||||
<scene sceneID="wg7-f3-ORb">
|
||||
<objects>
|
||||
<viewController id="8rJ-Kc-sve" customClass="MessageViewController" customModule="adaptive_tab_bar" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<layoutGuides>
|
||||
<viewControllerLayoutGuide type="top" id="L7p-HK-0SC"/>
|
||||
<viewControllerLayoutGuide type="bottom" id="Djb-ko-YwX"/>
|
||||
</layoutGuides>
|
||||
<view key="view" contentMode="scaleToFill" id="QS5-Rx-YEW">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" text="Second View" textAlignment="center" lineBreakMode="tailTruncation" minimumFontSize="10" translatesAutoresizingMaskIntoConstraints="NO" id="zEq-FU-wV5">
|
||||
<rect key="frame" x="195" y="279" width="209.5" height="41.5"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica" family="Helvetica" pointSize="36"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Loaded by SecondViewController" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="NDk-cv-Gan">
|
||||
<rect key="frame" x="192" y="329" width="215.5" height="17"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="background" translatesAutoresizingMaskIntoConstraints="NO" id="d3m-k5-qah">
|
||||
<rect key="frame" x="0.0" y="0.0" width="640" height="550"/>
|
||||
</imageView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstItem="NDk-cv-Gan" firstAttribute="top" secondItem="zEq-FU-wV5" secondAttribute="bottom" constant="8" symbolic="YES" id="Day-4N-Vmt"/>
|
||||
<constraint firstItem="NDk-cv-Gan" firstAttribute="centerX" secondItem="zEq-FU-wV5" secondAttribute="centerX" id="JgO-Fn-dHn"/>
|
||||
<constraint firstAttribute="centerX" secondItem="zEq-FU-wV5" secondAttribute="centerX" id="qqM-NS-xev"/>
|
||||
<constraint firstAttribute="centerY" secondItem="zEq-FU-wV5" secondAttribute="centerY" id="qzY-Ky-pLD"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<tabBarItem key="tabBarItem" title="Second" image="second" id="cPa-gy-q4n" customClass="AdaptiveTabBarItem" customModule="adaptive_tab_bar" customModuleProvider="target"/>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="4Nw-L8-lE0" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="910" y="87"/>
|
||||
</scene>
|
||||
<!--Tab Bar View Controller-->
|
||||
<scene sceneID="yl2-sM-qoP">
|
||||
<objects>
|
||||
<tabBarController id="49e-Tb-3d3" customClass="TabBarViewController" customModule="adaptive_tab_bar" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<nil key="simulatedBottomBarMetrics"/>
|
||||
<tabBar key="tabBar" contentMode="scaleToFill" id="W28-zg-YXA">
|
||||
<rect key="frame" x="0.0" y="975" width="768" height="49"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</tabBar>
|
||||
<connections>
|
||||
<segue destination="9pv-A4-QxB" kind="relationship" relationship="viewControllers" id="u7Y-xg-7CH"/>
|
||||
<segue destination="8rJ-Kc-sve" kind="relationship" relationship="viewControllers" id="lzU-1b-eKA"/>
|
||||
<segue destination="BiK-DX-JK5" kind="relationship" relationship="viewControllers" id="8uc-KI-0GB"/>
|
||||
<segue destination="aXk-96-nwf" kind="relationship" relationship="viewControllers" id="XuY-Eq-eiX"/>
|
||||
<segue destination="BgE-dr-gW8" kind="relationship" relationship="viewControllers" id="j4H-uh-BdI"/>
|
||||
</connections>
|
||||
</tabBarController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="HuB-VB-40B" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="0.0" y="0.0"/>
|
||||
</scene>
|
||||
<!--Item-->
|
||||
<scene sceneID="60i-zg-cAx">
|
||||
<objects>
|
||||
<viewController id="BiK-DX-JK5" customClass="UserViewController" customModule="adaptive_tab_bar" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<layoutGuides>
|
||||
<viewControllerLayoutGuide type="top" id="oSS-7K-rER"/>
|
||||
<viewControllerLayoutGuide type="bottom" id="Ba7-rp-yUE"/>
|
||||
</layoutGuides>
|
||||
<view key="view" contentMode="scaleToFill" id="Z9a-At-6Ll">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="background" translatesAutoresizingMaskIntoConstraints="NO" id="jtr-dW-8XE">
|
||||
<rect key="frame" x="0.0" y="0.0" width="640" height="555"/>
|
||||
</imageView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<tabBarItem key="tabBarItem" title="Item" id="g86-Lf-lWF" customClass="AdaptiveTabBarItem" customModule="adaptive_tab_bar" customModuleProvider="target"/>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="Ds1-lP-WuT" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="60" y="838"/>
|
||||
</scene>
|
||||
<!--Item-->
|
||||
<scene sceneID="RUI-wr-KlE">
|
||||
<objects>
|
||||
<viewController id="aXk-96-nwf" customClass="MenuViewController" customModule="adaptive_tab_bar" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<layoutGuides>
|
||||
<viewControllerLayoutGuide type="top" id="Aha-rh-ib6"/>
|
||||
<viewControllerLayoutGuide type="bottom" id="aNR-L8-QaD"/>
|
||||
</layoutGuides>
|
||||
<view key="view" contentMode="scaleToFill" id="UyR-nf-sp6">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="background" translatesAutoresizingMaskIntoConstraints="NO" id="GGw-pn-6CX">
|
||||
<rect key="frame" x="0.0" y="0.0" width="640" height="550"/>
|
||||
</imageView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<tabBarItem key="tabBarItem" title="Item" id="RnB-fU-3RS" customClass="AdaptiveTabBarItem" customModule="adaptive_tab_bar" customModuleProvider="target"/>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="Hsc-p3-elF" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="689" y="838"/>
|
||||
</scene>
|
||||
<!--Item-->
|
||||
<scene sceneID="B98-FR-Rjt">
|
||||
<objects>
|
||||
<viewController id="BgE-dr-gW8" customClass="MoreViewController" customModule="adaptive_tab_bar" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<layoutGuides>
|
||||
<viewControllerLayoutGuide type="top" id="r9s-DG-v8Y"/>
|
||||
<viewControllerLayoutGuide type="bottom" id="mju-qR-F4m"/>
|
||||
</layoutGuides>
|
||||
<view key="view" contentMode="scaleToFill" id="dgq-yB-Neb">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="background" translatesAutoresizingMaskIntoConstraints="NO" id="fel-JW-y8K">
|
||||
<rect key="frame" x="0.0" y="0.0" width="640" height="550"/>
|
||||
</imageView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<tabBarItem key="tabBarItem" title="Item" id="uWZ-JL-cND" customClass="AdaptiveTabBarItem" customModule="adaptive_tab_bar" customModuleProvider="target"/>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="xAq-zT-Wnn" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="1344" y="838"/>
|
||||
</scene>
|
||||
</scenes>
|
||||
<resources>
|
||||
<image name="background" width="640" height="1136"/>
|
||||
<image name="second" width="30" height="30"/>
|
||||
</resources>
|
||||
</document>
|
||||
@@ -1,54 +0,0 @@
|
||||
//
|
||||
// AdaptiveTabBarItem.swift
|
||||
// adaptive-tab-bar
|
||||
//
|
||||
// Created by Arcilite on 19.09.14.
|
||||
// Copyright (c) 2014 Ramotion. All rights reserved.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
import AdaptiveController
|
||||
|
||||
class AdaptiveTabBarItem: UITabBarItem , AdaptiveApperanceProtocol {
|
||||
|
||||
|
||||
override init(){
|
||||
super.init()
|
||||
|
||||
}
|
||||
|
||||
func setFontToAdaptiveButton(font: UIFont){
|
||||
|
||||
self.setTitleTextAttributes(NSDictionary(objects: [font], forKeys: [NSFontAttributeName]), forState: UIControlState.Normal)
|
||||
|
||||
}
|
||||
|
||||
func setTitleToAdaptiveButton(text: NSString){
|
||||
self.title = text
|
||||
}
|
||||
|
||||
func setImageToAdaptiveButton(image: UIImage){
|
||||
self.image = image
|
||||
}
|
||||
|
||||
func setSelectedImageToAdaptiveButton(image: UIImage?){
|
||||
self.selectedImage = image
|
||||
}
|
||||
|
||||
func setImageInsetsToAdaptiveButton(insets: UIEdgeInsets){
|
||||
self.imageInsets = insets
|
||||
}
|
||||
|
||||
func setTitleOffsetToAdaptiveButton(offset: UIOffset){
|
||||
self.setTitlePositionAdjustment(offset)
|
||||
}
|
||||
|
||||
func setTitleColorToAdaptiveButton(color: UIColor){
|
||||
var dictionary = self.titleTextAttributesForState(UIControlState.Normal)
|
||||
dictionary.updateValue(color, forKey: NSForegroundColorAttributeName)
|
||||
self.setTitleTextAttributes(dictionary, forState: UIControlState.Normal)
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -1,29 +0,0 @@
|
||||
//
|
||||
// TabBarViewController.swift
|
||||
// adaptive-tab-bar
|
||||
//
|
||||
// Created by Arcilite on 22.09.14.
|
||||
// Copyright (c) 2014 Ramotion. All rights reserved.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
import QuartzCore
|
||||
class TabBarViewController: UITabBarController {
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
|
||||
if (UIDevice().systemVersion as NSString).floatValue >= 7.0{
|
||||
for tbi in self.tabBar.items as [UITabBarItem] {
|
||||
tbi.image = tbi.image?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override func didReceiveMemoryWarning() {
|
||||
super.didReceiveMemoryWarning()
|
||||
// Dispose of any resources that can be recreated.
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
//
|
||||
// DateExtension.swift
|
||||
// adaptive-tab-bar
|
||||
//
|
||||
// Created by Arcilite on 16.09.14.
|
||||
// Copyright (c) 2014 Ramotion. All rights reserved.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
extension NSDate{
|
||||
convenience
|
||||
|
||||
init(dateString:String) {
|
||||
let dateStringFormatter = NSDateFormatter()
|
||||
dateStringFormatter.dateFormat = "yyyy-MM-dd"
|
||||
dateStringFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
|
||||
let d = dateStringFormatter.dateFromString(dateString)
|
||||
self.init(timeInterval:0, sinceDate:d!)
|
||||
}
|
||||
|
||||
func daysBetween(dayFrom:NSDate,dayTo:NSDate) -> Int{
|
||||
|
||||
let cal = NSCalendar.currentCalendar()
|
||||
|
||||
let unit:NSCalendarUnit = .DayCalendarUnit
|
||||
|
||||
let components = cal.components(unit, fromDate: dayFrom, toDate: dayTo, options: nil)
|
||||
|
||||
return components.day+1;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "29x29",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "29x29",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "40x40",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "40x40",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "60x60",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "60x60",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x",
|
||||
"filename" : "man_bigimage@2x.png"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 2.6 KiB |
@@ -1,21 +0,0 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x",
|
||||
"filename" : "menu_bigimage@2x.png"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 2.3 KiB |
@@ -1,21 +0,0 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x",
|
||||
"filename" : "message_bigimage@2x.png"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 2.3 KiB |
@@ -1,21 +0,0 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x",
|
||||
"filename" : "more_bigimage@2x.png"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 2.0 KiB |
@@ -1,21 +0,0 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x",
|
||||
"filename" : "watch_bigimage@2x.png"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 1.9 KiB |
@@ -1,21 +0,0 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x",
|
||||
"filename" : "man@2x.png"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 2.3 KiB |
@@ -1,21 +0,0 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x",
|
||||
"filename" : "menu@2x.png"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 2.1 KiB |
@@ -1,21 +0,0 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x",
|
||||
"filename" : "messages@2x.png"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 2.1 KiB |
@@ -1,21 +0,0 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x",
|
||||
"filename" : "more@2x.png"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 1.9 KiB |
@@ -1,21 +0,0 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x",
|
||||
"filename" : "watch@2x.png"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
||||