Compare commits

..

114 Commits

Author SHA1 Message Date
igork-ramotion 4534c0dcd4 Merge pull request #64 from nzufelt/patch-1
Fix typo!
2020-04-09 13:59:56 +03:00
Nicholas Zufelt b24752e27a Fix typo! 2020-04-08 16:30:13 -04:00
Ramotion 22ef289da4 Update README.md 2020-04-06 09:54:27 +03:00
igor.k 1428534fcc fix problems with running on simulator (issue #61) 2019-11-13 00:45:34 +03:00
igor.k 3ee0a8a606 add SPM config and Ramotion application icon set 2019-11-13 00:34:54 +03:00
Ramotion 0f35c65a48 Update README.md 2019-10-12 21:11:13 +03:00
Alex K c578516270 bump version 2019-04-03 15:41:12 +03:00
Alex K 1d00b258e9 converted to swift 5 2019-04-03 15:38:21 +03:00
Ramotion 37940a69eb Update README.md 2018-12-28 12:52:30 +03:00
Ramotion 739c698c02 Add files via upload 2018-12-28 01:44:28 -08:00
Ramotion 3289f9c315 Update README.md 2018-12-10 11:31:41 +03:00
Ramotion 82f01134d2 Update README.md 2018-12-10 10:21:29 +03:00
Alex K f6d7e82c98 update podspec 2018-10-13 11:24:54 +03:00
Alex 5c8a416f5b Merge pull request #57 from tache/master
added circle open delegate
2018-10-13 11:20:36 +03:00
tache 0122f09e6b Merged with upstream 2018-10-13 00:34:14 -04:00
Alex K 98a4fa1db9 swift 4.2 2018-09-27 09:09:58 +03:00
tache a766ceddbd Updated to Swift 4.2 2018-09-24 14:15:00 -04:00
Alex K 6d961f5923 update podspec 2018-07-02 10:04:48 +03:00
Alex cf2619bbd8 Merge pull request #55 from theyongdai/master
`customNormalIconView` and `customSelectedIconView` can't be nil. I'm…
2018-07-02 09:19:54 +03:00
Michael Tai d378620f8b customNormalIconView and customSelectedIconView can't be nil. I'm using ionicons-fonts not images. I can't see the reason why I need to set any images. (7f2a3f8) It might be legacy code form wayback when the delegate methods were introduced or software engineering bureaucracy. Either way, good job Alex.k for making this project possible. Only he could just push a tiny bit further :p
See issue50 https://github.com/Ramotion/circle-menu/issues/50
2018-06-29 12:54:31 -04:00
Ramotion e02c17db4f Update README.md 2018-06-29 14:26:58 +03:00
Ramotion cb88f53fc6 Update README.md 2018-06-26 11:12:29 +03:00
Ramotion 5826edf31f Update README.md 2018-05-29 12:06:08 +03:00
Ramotion ec9a6fc6a0 Update README.md 2018-04-28 12:32:46 +03:00
Ramotion 6d45896997 Add files via upload 2018-04-28 02:31:44 -07:00
Ramotion 0c2b2c49ee Delete preview.gif 2018-04-28 12:30:52 +03:00
Ramotion bdb3ccb994 Update README.md 2018-04-20 11:10:35 +03:00
Alex K 51627a3f3d update podspec 2018-04-18 15:04:01 +03:00
Alex K 68881fb3cc remove warnings and make customImages public 2018-04-18 11:36:38 +03:00
Ramotion 83d32f754b Update README.md 2018-03-06 12:28:21 +03:00
Alex Mikhnev 628a4bab8a Update README.md 2018-02-21 14:47:43 +03:00
Alex K 2c9a57acdc update podspec 2018-01-23 11:22:47 +03:00
Alex db7ca734e9 Merge pull request #48 from derekvallar/master
StartAngle/EndAngle feature added.
2018-01-23 11:15:00 +03:00
derekvallar f4f645548d StartAngle/EndAngle feature added. 2018-01-22 22:50:49 -08:00
Alex K c520680100 Fixes #20 2018-01-22 16:34:47 +03:00
Alex K 04e27502df update podspec 2018-01-22 12:59:35 +03:00
Alex K 9f211f33af Fixes #43 2018-01-22 12:57:32 +03:00
Alex K 083d952ad7 increase pod version 2018-01-18 15:03:49 +03:00
Alex K 7254460f60 Merge branch 'Fixes-41'
# Conflicts:
#	CircleMenuLib/CircleMenu.swift
2018-01-18 14:50:55 +03:00
Alex K 9dd5b4c82d AppIcon 2018-01-18 14:44:40 +03:00
Alex K 81c4a16180 Fixes #41 2018-01-18 14:43:52 +03:00
i.kolpachkov 4e55227fee add swift version file 2018-01-18 14:39:06 +03:00
i.kolpachkov 3aec47f892 bump pod version 2018-01-18 14:30:17 +03:00
i.kolpachkov b9769e418b code cleanup, update swift format, launch screen UI 2018-01-18 14:28:50 +03:00
i.kolpachkov b29b6ed033 fixed #17 2018-01-18 14:14:58 +03:00
i.kolpachkov 69e60152c8 fix warnings, update travis build config 2018-01-18 13:59:40 +03:00
Juri Vasylenko 2d2097033d Update README.md 2017-11-11 19:01:38 +03:00
Juri Vasylenko 2e7943b049 Update README.md 2017-11-11 18:35:42 +03:00
tache 3968b56d02 Update to Swift 4 2017-11-03 20:34:04 -04:00
tache fc589564b4 no message 2017-11-03 20:19:42 -04:00
Alex K ef8abb6499 update podspec and readme 2017-10-23 18:07:33 +03:00
Alex K d9e9afcc8b Fixes #40 2017-10-23 17:56:58 +03:00
tache 41df3a1714 Merge remote-tracking branch 'upstream/master' 2017-09-28 10:22:59 -04:00
Travis CI 9b0d1eded6 reorganize readme 2017-07-28 12:25:28 +03:00
Alex ec8c1424b3 Update README.md 2017-06-27 11:49:38 +03:00
Alex dd75a83797 Merge pull request #38 from younatics/master
Moving fast, it happend
2017-05-22 09:44:29 +03:00
Seungyoun Yi 774cb1cf64 Moving fast, it happend 2017-05-21 12:27:16 +09:00
Alex K c4cf9482bf update podspec 2017-05-05 11:23:16 +03:00
Alex K b64cda5541 Fix warnings 2017-05-05 11:22:32 +03:00
Alex K 06df7ff2b1 Update pod spec 2017-05-05 11:15:24 +03:00
RamotionRussell ea82aeff84 Update README.md 2017-05-05 10:05:14 +03:00
RamotionRussell 69b65edc06 Remove false statement of support for iOS8 2017-05-02 12:46:38 +03:00
tache 5782a0fafa Merge branch 'master' of github.com:tache/circle-menu
* 'master' of github.com:tache/circle-menu:
  Updated to Swift 3.2
  Updated for 8.3 and optional callbacks
  updating readme document
  Added in an open menu and made open/close delegates fire asynchronously
  Moved the collapse to the proper location - should only fire once
2017-04-03 19:19:11 -04:00
tache 0652edf64d Updated to Swift 3.2 2017-04-03 19:18:48 -04:00
tache 1fffcfb25e Updated for 8.3 and optional callbacks 2017-04-03 19:18:48 -04:00
tache 3f3a676a6d updating readme document 2017-04-03 19:18:48 -04:00
tache 7a6175e8fb Added in an open menu and made open/close delegates fire asynchronously 2017-04-03 19:18:48 -04:00
tache 6cf24b1ee1 Moved the collapse to the proper location - should only fire once 2017-04-03 19:18:48 -04:00
tache c37e32ce3f Updated to Swift 3.2 2017-04-03 19:13:50 -04:00
tache 38926b111a Updated for 8.3 and optional callbacks 2017-04-03 19:09:48 -04:00
Alex Mikhnev 1604f89c72 Update README.md 2017-03-10 19:49:17 +03:00
Juri Vasylenko d8d7eaf528 Update README.md 2017-02-17 18:02:34 +03:00
Juri Vasylenko 62ad8b528f Update README.md 2017-01-20 16:07:18 +03:00
tache dce71006c9 updating readme document 2017-01-15 10:53:52 -05:00
tache 77ae3b58c9 Added in an open menu and made open/close delegates fire asynchronously 2017-01-15 10:30:19 -05:00
Chris Graham 2d23e4f7f3 Merge pull request #1 from tache/fix-collapse-delegate
Moved the collapse to the proper location - should only fire once
2017-01-15 08:46:16 -05:00
tache 7e95b925a5 Moved the collapse to the proper location - should only fire once 2017-01-15 08:39:22 -05:00
Alex K 9a21e80ae8 no message 2017-01-12 10:58:42 +03:00
Alex K 3f202ec9cf no message 2017-01-11 18:34:20 +03:00
aleksei1000000 a4504a1502 Update README.md 2017-01-10 17:17:26 +03:00
Alex 76ad9f1828 Merge pull request #29 from pdenya/master
remove platform when button is tapped again to close menu
2016-11-21 08:31:58 +02:00
Paul Denya e042cb52c6 remove platform when button is tapped again to close menu 2016-11-19 16:05:58 -05:00
aleksei1000000 d239f5d3c8 Update README.md 2016-10-17 10:02:59 +03:00
Juri Vasylenko 57d64c3f48 Update .travis.yml 2016-10-14 18:14:23 +04:00
aleksei1000000 d88128933a Update README.md 2016-10-14 14:15:15 +03:00
aleksei1000000 2423fa9bbf Update README.md 2016-10-14 14:14:05 +03:00
aleksei1000000 1b029ff382 Update README.md 2016-10-14 14:10:39 +03:00
Alex.k 83e1a11bef updated podspec 2016-10-12 16:45:55 +03:00
Alex.k 8a62e44836 fixed crash when button icon is empty 2016-10-12 15:26:49 +03:00
Alex.k c6445f9735 updated podspect and readme 2016-10-12 14:53:15 +03:00
Alex.k ccb4aabee9 fixed animations 2016-10-12 14:45:39 +03:00
Alex.k ed6da6d0d8 fixed bug with rotation animation 2016-10-12 12:59:10 +03:00
Alex.k 127390ec3a small fixing 2016-10-12 11:45:46 +03:00
Alex.k be772db3a8 fixed show and hide button animations 2016-10-12 11:03:20 +03:00
Alex.k 4223096348 swift lint rules fixed 2016-10-12 10:46:51 +03:00
Alex.k d4672bd1cf converted to swift 3 2016-10-12 10:20:35 +03:00
Juri Vasylenko e5f7ef6de4 Update README.md 2016-08-05 12:07:55 +04:00
Juri Vasylenko 2541588494 Update README.md 2016-07-29 16:16:57 +04:00
Juri Vasylenko 2193224759 Merge pull request #18 from aleksei1000000/master
Update README.md
2016-07-21 15:38:02 +04:00
aleksei1000000 13b7392cd8 Update README.md 2016-07-21 14:36:30 +03:00
aleksei1000000 41d7adbe1d Update README.md 2016-07-21 12:02:02 +03:00
Alex.k c88d455a59 update docs 2016-06-27 16:12:19 +03:00
Alex.k 84e443b6e0 update podspec 2016-06-27 16:05:46 +03:00
Alex c8cd829d53 Merge pull request #13 from tache/additional-delegate
Added delegate for menu cancel.
2016-06-27 13:02:32 +00:00
tache e9a254191c Added delegate for menu cancel. 2016-06-27 01:43:13 -04:00
Alex.k 01266bd064 update docs 2016-06-03 15:11:32 +03:00
Alex.k 1fa7b3782b update podspec 2016-06-03 15:09:16 +03:00
Alex.k 6dcb0a3cae move method 2016-06-03 15:08:18 +03:00
Alex.k b53395a360 update readme 2016-06-03 15:05:14 +03:00
Alex.k 44dd189359 update readme 2016-06-03 14:59:30 +03:00
Alex.k a96d89c493 update podspec 2016-06-03 14:58:12 +03:00
Alex.k a033fb435c update podspec 2016-06-03 14:31:32 +03:00
Alex.k d6d0241a22 added docs 2016-06-03 14:27:57 +03:00
Alex.k 50953a681d improves 2016-06-03 12:53:20 +03:00
71 changed files with 2404 additions and 3270 deletions
+1
View File
@@ -0,0 +1 @@
4.2
+10 -3
View File
@@ -1,6 +1,13 @@
osx_image: xcode7.3
osx_image: xcode9.2
language: objective-c
xcode_project: CircleMenu.xcodeproj
xcode_scheme: CircleMenu
xcode_sdk: iphonesimulator
scheme: CircleMenu
xcode_sdk: iphonesimulator11.2
# SWIFT_VERSION: 4.0
# whitelist
branches:
only:
- master
+2 -3
View File
@@ -1,12 +1,11 @@
Pod::Spec.new do |s|
s.name = 'CircleMenu'
s.version = '1.0.0'
s.version = '4.1.0'
s.summary = 'Amazing animation with buttons'
s.homepage = 'https://github.com/Ramotion/circle-menu'
s.license = 'MIT'
s.authors = { 'Juri Vasylenko' => 'juri.v@ramotion.com' }
s.ios.deployment_target = '8.0'
s.ios.deployment_target = '9.0'
s.source = { :git => 'https://github.com/Ramotion/circle-menu.git', :tag => s.version.to_s }
s.source_files = 'CircleMenuLib/**/*.swift'
s.requires_arc = true
end
+81 -42
View File
@@ -3,7 +3,7 @@
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objectVersion = 51;
objects = {
/* Begin PBXBuildFile section */
@@ -17,7 +17,6 @@
841EC5911C58E898008872D5 /* CircleMenuButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 841EC58F1C58E898008872D5 /* CircleMenuButton.swift */; };
841EC5941C58F3E2008872D5 /* CircleMenuLoader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 841EC5931C58F3E2008872D5 /* CircleMenuLoader.swift */; };
8497460C1C6A1C5D001E7184 /* CircleMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 841EC58D1C58E898008872D5 /* CircleMenu.swift */; };
8497460D1C6A1C6D001E7184 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 84F248BD1C58E65F008F12C1 /* Assets.xcassets */; };
8497460E1C6A1C9D001E7184 /* CircleMenuLoader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 841EC5931C58F3E2008872D5 /* CircleMenuLoader.swift */; };
8497460F1C6A1CA0001E7184 /* CircleMenuButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 841EC58F1C58E898008872D5 /* CircleMenuButton.swift */; };
84F248B71C58E65F008F12C1 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84F248B61C58E65F008F12C1 /* AppDelegate.swift */; };
@@ -72,7 +71,6 @@
84F248BB1C58E65F008F12C1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
84F248BD1C58E65F008F12C1 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
84F248C01C58E65F008F12C1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
84F248C21C58E65F008F12C1 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
84F248C71C58E65F008F12C1 /* CircleMenuTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = CircleMenuTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
84F248CB1C58E65F008F12C1 /* CircleMenuTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CircleMenuTests.swift; sourceTree = "<group>"; };
84F248CD1C58E65F008F12C1 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
@@ -168,7 +166,6 @@
84F248BA1C58E65F008F12C1 /* Main.storyboard */,
84F248BD1C58E65F008F12C1 /* Assets.xcassets */,
84F248BF1C58E65F008F12C1 /* LaunchScreen.storyboard */,
84F248C21C58E65F008F12C1 /* Info.plist */,
);
path = CircleMenu;
sourceTree = "<group>";
@@ -221,7 +218,6 @@
84F248AF1C58E65F008F12C1 /* Sources */,
84F248B01C58E65F008F12C1 /* Frameworks */,
84F248B11C58E65F008F12C1 /* Resources */,
846980FB1C59F398002D77BE /* swift lint */,
8403F5851CFF2C2E007D0BD1 /* Embed Frameworks */,
);
buildRules = (
@@ -259,25 +255,28 @@
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 0720;
LastUpgradeCheck = 0720;
LastUpgradeCheck = 1020;
ORGANIZATIONNAME = "Alex K.";
TargetAttributes = {
8403F5781CFF2C2E007D0BD1 = {
CreatedOnToolsVersion = 7.3.1;
LastSwiftMigration = 1020;
};
84F248B21C58E65F008F12C1 = {
CreatedOnToolsVersion = 7.2;
DevelopmentTeam = 34MUF9YXTA;
LastSwiftMigration = 1020;
};
84F248C61C58E65F008F12C1 = {
CreatedOnToolsVersion = 7.2;
LastSwiftMigration = 1020;
TestTargetID = 84F248B21C58E65F008F12C1;
};
};
};
buildConfigurationList = 84F248AE1C58E65F008F12C1 /* Build configuration list for PBXProject "CircleMenu" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
compatibilityVersion = "Xcode 10.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
en,
@@ -317,29 +316,11 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8497460D1C6A1C6D001E7184 /* Assets.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
846980FB1C59F398002D77BE /* swift lint */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "swift lint";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "if which swiftlint >/dev/null; then\nswiftlint\nelse\necho \"SwiftLint does not exist, download from https://github.com/realm/SwiftLint\"\nfi";
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
8403F5741CFF2C2E007D0BD1 /* Sources */ = {
isa = PBXSourcesBuildPhase;
@@ -413,6 +394,7 @@
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ANALYZER_NONNULL = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
@@ -420,11 +402,16 @@
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = CircleMenu/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = com.ramotion.CircleMenu;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
@@ -435,6 +422,7 @@
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ANALYZER_NONNULL = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
@@ -442,11 +430,16 @@
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = CircleMenu/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = com.ramotion.CircleMenu;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
@@ -457,17 +450,28 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
@@ -489,11 +493,12 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 9.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 4.2;
};
name = Debug;
};
@@ -501,17 +506,28 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
@@ -527,9 +543,12 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 9.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_OPTIMIZATION_LEVEL = "-O";
SWIFT_VERSION = 4.2;
VALIDATE_PRODUCT = YES;
};
name = Release;
@@ -537,30 +556,40 @@
84F248D11C58E65F008F12C1 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_IDENTITY = "iPhone Developer";
EMBEDDED_CONTENT_CONTAINS_SWIFT = YES;
CURRENT_PROJECT_VERSION = 1;
INFOPLIST_FILE = CircleMenu/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
OTHER_SWIFT_FLAGS = "";
PRODUCT_BUNDLE_IDENTIFIER = com.ramotion.dev;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
};
name = Debug;
};
84F248D21C58E65F008F12C1 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_IDENTITY = "iPhone Developer";
EMBEDDED_CONTENT_CONTAINS_SWIFT = YES;
CURRENT_PROJECT_VERSION = 1;
INFOPLIST_FILE = CircleMenu/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
OTHER_SWIFT_FLAGS = "";
PRODUCT_BUNDLE_IDENTIFIER = com.ramotion.dev;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
};
name = Release;
};
@@ -569,10 +598,15 @@
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
INFOPLIST_FILE = CircleMenuTests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = com.ramotion.CircleMenuTests;
PRODUCT_NAME = "$(TARGET_NAME)";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/CircleMenu.app/CircleMenu";
SWIFT_VERSION = 5.0;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/CircleMenuDemo.app/CircleMenuDemo";
};
name = Debug;
};
@@ -581,10 +615,15 @@
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
INFOPLIST_FILE = CircleMenuTests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = com.ramotion.CircleMenuTests;
PRODUCT_NAME = "$(TARGET_NAME)";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/CircleMenu.app/CircleMenu";
SWIFT_VERSION = 5.0;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/CircleMenuDemo.app/CircleMenuDemo";
};
name = Release;
};
@@ -0,0 +1,8 @@
<?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>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0730"
LastUpgradeVersion = "1020"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
+2 -25
View File
@@ -13,32 +13,9 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(
application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
_: UIApplication,
didFinishLaunchingWithOptions _: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
return true
}
func applicationWillResignActive(application: UIApplication) {
}
func applicationDidEnterBackground(application: UIApplication) {
}
func applicationWillEnterForeground(application: UIApplication) {
}
func applicationDidBecomeActive(application: UIApplication) {
}
func applicationWillTerminate(application: UIApplication) {
}
}
+86 -5
View File
@@ -1,38 +1,119 @@
{
"images" : [
{
"size" : "20x20",
"idiom" : "iphone",
"filename" : "icon-40.png",
"scale" : "2x"
},
{
"size" : "20x20",
"idiom" : "iphone",
"filename" : "icon-60.png",
"scale" : "3x"
},
{
"size" : "29x29",
"idiom" : "iphone",
"filename" : "icon-58.png",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "29x29",
"idiom" : "iphone",
"filename" : "icon-87.png",
"scale" : "3x"
},
{
"idiom" : "iphone",
"size" : "40x40",
"idiom" : "iphone",
"filename" : "icon-80.png",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "40x40",
"idiom" : "iphone",
"filename" : "icon-120.png",
"scale" : "3x"
},
{
"idiom" : "iphone",
"size" : "60x60",
"idiom" : "iphone",
"filename" : "icon-120.png",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "60x60",
"idiom" : "iphone",
"filename" : "icon-180.png",
"scale" : "3x"
},
{
"size" : "20x20",
"idiom" : "ipad",
"filename" : "icon-20.png",
"scale" : "1x"
},
{
"size" : "20x20",
"idiom" : "ipad",
"filename" : "icon-40.png",
"scale" : "2x"
},
{
"size" : "29x29",
"idiom" : "ipad",
"filename" : "icon-29.png",
"scale" : "1x"
},
{
"size" : "29x29",
"idiom" : "ipad",
"filename" : "icon-58.png",
"scale" : "2x"
},
{
"size" : "40x40",
"idiom" : "ipad",
"filename" : "icon-40.png",
"scale" : "1x"
},
{
"size" : "40x40",
"idiom" : "ipad",
"filename" : "icon-80.png",
"scale" : "2x"
},
{
"size" : "76x76",
"idiom" : "ipad",
"filename" : "icon-76.png",
"scale" : "1x"
},
{
"size" : "76x76",
"idiom" : "ipad",
"filename" : "icon-152.png",
"scale" : "2x"
},
{
"size" : "83.5x83.5",
"idiom" : "ipad",
"filename" : "icon-167.png",
"scale" : "2x"
},
{
"size" : "1024x1024",
"idiom" : "ios-marketing",
"filename" : "Ramotion1024.png",
"scale" : "1x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
},
"properties" : {
"pre-rendered" : true
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 464 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 618 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 834 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

+32 -7
View File
@@ -1,7 +1,12 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="8150" systemVersion="15A204g" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" initialViewController="01J-lp-oVM">
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13771" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
<device id="retina4_7" orientation="portrait">
<adaptation id="fullscreen"/>
</device>
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="8122"/>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13772"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
<!--View Controller-->
@@ -13,15 +18,35 @@
<viewControllerLayoutGuide type="bottom" id="xb3-aO-Qok"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<animations/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text=" Copyright (c) 2018 Ramotion. All rights reserved." textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="9MI-zG-4vW">
<rect key="frame" x="16" y="630" width="343" height="17"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<color key="textColor" red="0.96862745100000003" green="0.96862745100000003" blue="0.96862745100000003" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Circle Menu" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="VWz-1T-4Oe">
<rect key="frame" x="123" y="319" width="129" height="30"/>
<fontDescription key="fontDescription" type="system" pointSize="25"/>
<color key="textColor" red="0.96862745100000003" green="0.96862745100000003" blue="0.96862745100000003" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" red="0.058823529409999999" green="0.078431372550000003" blue="0.1529411765" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="trailing" secondItem="9MI-zG-4vW" secondAttribute="trailing" constant="16" id="0Nd-zV-ifm"/>
<constraint firstItem="VWz-1T-4Oe" firstAttribute="centerY" secondItem="Ze5-6b-2t3" secondAttribute="centerY" id="AUS-9v-IDH"/>
<constraint firstItem="xb3-aO-Qok" firstAttribute="top" secondItem="9MI-zG-4vW" secondAttribute="bottom" constant="20" id="FNC-OT-bh6"/>
<constraint firstItem="9MI-zG-4vW" firstAttribute="leading" secondItem="Ze5-6b-2t3" secondAttribute="leading" constant="16" id="GKi-1N-UzF"/>
<constraint firstItem="VWz-1T-4Oe" firstAttribute="centerX" secondItem="Ze5-6b-2t3" secondAttribute="centerX" id="j7f-9j-flx"/>
</constraints>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="53" y="375"/>
<point key="canvasLocation" x="52" y="374.66266866566718"/>
</scene>
</scenes>
</document>
+8 -9
View File
@@ -1,25 +1,24 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="9532" systemVersion="15D21" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="BYZ-38-t0r">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="11201" systemVersion="15G1004" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="BYZ-38-t0r">
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9530"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11161"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
<!--Delegate-->
<scene sceneID="tne-QT-ifu">
<objects>
<viewController id="BYZ-38-t0r" customClass="ViewController" customModule="CircleMenu" customModuleProvider="target" sceneMemberID="viewController">
<viewController id="BYZ-38-t0r" customClass="ViewController" customModule="CircleMenuDemo" customModuleProvider="target" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="y3c-jy-aDJ"/>
<viewControllerLayoutGuide type="bottom" id="wfy-db-euE"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="eLo-Wn-oPF" customClass="CircleMenu" customModule="CircleMenu" customModuleProvider="target">
<rect key="frame" x="270" y="270" width="60" height="60"/>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="eLo-Wn-oPF" customClass="CircleMenu" customModule="CircleMenuDemo" customModuleProvider="target">
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="width" constant="60" id="HWk-Xa-dX7"/>
<constraint firstAttribute="height" constant="60" id="Xnk-f6-9Ej"/>
@@ -48,7 +47,7 @@
</connections>
</button>
</subviews>
<color key="backgroundColor" red="0.058823529411764705" green="0.078431372549019607" blue="0.15294117647058825" alpha="1" colorSpace="calibratedRGB"/>
<color key="backgroundColor" red="0.058823529411764705" green="0.078431372549019607" blue="0.15294117647058825" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstItem="eLo-Wn-oPF" firstAttribute="centerY" secondItem="8bC-Xf-vdC" secondAttribute="centerY" id="hwK-4W-0MQ"/>
<constraint firstItem="eLo-Wn-oPF" firstAttribute="centerX" secondItem="8bC-Xf-vdC" secondAttribute="centerX" id="tQC-3B-L2F"/>
+4
View File
@@ -26,5 +26,9 @@
<string>LaunchScreen</string>
<key>UIMainStoryboardFile</key>
<string>Main</string>
<key>UIStatusBarStyle</key>
<string>UIStatusBarStyleLightContent</string>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
</dict>
</plist>
+31 -38
View File
@@ -9,67 +9,60 @@
import UIKit
extension UIColor {
static func color(red: Int, green: Int, blue: Int, alpha: Float) -> UIColor {
static func color(_ red: Int, green: Int, blue: Int, alpha: Float) -> UIColor {
return UIColor(
colorLiteralRed: Float(1.0) / Float(255.0) * Float(red),
green: Float(1.0) / Float(255.0) * Float(green),
blue: Float(1.0) / Float(255.0) * Float(blue),
alpha: alpha)
red: 1.0 / 255.0 * CGFloat(red),
green: 1.0 / 255.0 * CGFloat(green),
blue: 1.0 / 255.0 * CGFloat(blue),
alpha: CGFloat(alpha))
}
}
class ViewController: UIViewController, CircleMenuDelegate {
// let colors = [UIColor.redColor(), UIColor.grayColor(), UIColor.greenColor(), UIColor.purpleColor()]
// let colors = [UIColor.redColor(), UIColor.grayColor(), UIColor.greenColor(), UIColor.purpleColor()]
let items: [(icon: String, color: UIColor)] = [
("icon_home", UIColor(red:0.19, green:0.57, blue:1, alpha:1)),
("icon_search", UIColor(red:0.22, green:0.74, blue:0, alpha:1)),
("notifications-btn", UIColor(red:0.96, green:0.23, blue:0.21, alpha:1)),
("settings-btn", UIColor(red:0.51, green:0.15, blue:1, alpha:1)),
("nearby-btn", UIColor(red:1, green:0.39, blue:0, alpha:1)),
]
("icon_home", UIColor(red: 0.19, green: 0.57, blue: 1, alpha: 1)),
("icon_search", UIColor(red: 0.22, green: 0.74, blue: 0, alpha: 1)),
("notifications-btn", UIColor(red: 0.96, green: 0.23, blue: 0.21, alpha: 1)),
("settings-btn", UIColor(red: 0.51, green: 0.15, blue: 1, alpha: 1)),
("nearby-btn", UIColor(red: 1, green: 0.39, blue: 0, alpha: 1))
]
override func viewDidLoad() {
super.viewDidLoad()
// add button
// let button = CircleMenu(
// frame: CGRect(x: 200, y: 200, width: 50, height: 50),
// normalIcon:"icon_menu",
// selectedIcon:"icon_close",
// buttonsCount: 4,
// duration: 4,
// distance: 120)
// button.backgroundColor = UIColor.lightGrayColor()
// button.delegate = self
// button.layer.cornerRadius = button.frame.size.width / 2.0
// view.addSubview(button)
// let button = CircleMenu(
// frame: CGRect(x: 200, y: 200, width: 50, height: 50),
// normalIcon:"icon_menu",
// selectedIcon:"icon_close",
// buttonsCount: 4,
// duration: 4,
// distance: 120)
// button.backgroundColor = UIColor.lightGrayColor()
// button.delegate = self
// button.layer.cornerRadius = button.frame.size.width / 2.0
// view.addSubview(button)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// MARK: <CircleMenuDelegate>
func circleMenu(circleMenu: CircleMenu, willDisplay button: UIButton, atIndex: Int) {
func circleMenu(_: CircleMenu, willDisplay button: UIButton, atIndex: Int) {
button.backgroundColor = items[atIndex].color
button.setImage(UIImage(imageLiteral: items[atIndex].icon), forState: .Normal)
button.setImage(UIImage(named: items[atIndex].icon), for: .normal)
// set highlited image
let highlightedImage = UIImage(imageLiteral: items[atIndex].icon).imageWithRenderingMode(.AlwaysTemplate)
button.setImage(highlightedImage, forState: .Highlighted)
button.tintColor = UIColor.init(colorLiteralRed: 0, green: 0, blue: 0, alpha: 0.3)
let highlightedImage = UIImage(named: items[atIndex].icon)?.withRenderingMode(.alwaysTemplate)
button.setImage(highlightedImage, for: .highlighted)
button.tintColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.3)
}
func circleMenu(circleMenu: CircleMenu, buttonWillSelected button: UIButton, atIndex: Int) {
func circleMenu(_: CircleMenu, buttonWillSelected _: UIButton, atIndex: Int) {
print("button will selected: \(atIndex)")
}
func circleMenu(circleMenu: CircleMenu, buttonDidSelected button: UIButton, atIndex: Int) {
func circleMenu(_: CircleMenu, buttonDidSelected _: UIButton, atIndex: Int) {
print("button did selected: \(atIndex)")
}
}
+484 -379
View File
@@ -26,10 +26,9 @@ import UIKit
// MARK: helpers
@warn_unused_result
func Init<Type>(value: Type, @noescape block: (object: Type) -> Void) -> Type {
block(object: value)
return value
func customize<Type>(_ value: Type, block: (_ object: Type) -> Void) -> Type {
block(value)
return value
}
// MARK: Protocol
@@ -38,408 +37,514 @@ func Init<Type>(value: Type, @noescape block: (object: Type) -> Void) -> Type {
* CircleMenuDelegate
*/
@objc public protocol CircleMenuDelegate {
/**
Tells the delegate the circle menu is about to draw a button for a particular index.
- parameter circleMenu: The circle menu object informing the delegate of this impending event.
- parameter button: A circle menu button object that circle menu is going to use when drawing the row. Don't change button.tag
- parameter atIndex: An button index.
*/
optional func circleMenu(circleMenu: CircleMenu, willDisplay button: UIButton, atIndex: Int)
/**
Tells the delegate that a specified index is about to be selected.
- parameter circleMenu: A circle menu object informing the delegate about the impending selection.
- parameter button: A selected circle menu button. Don't change button.tag
- parameter atIndex: Selected button index
*/
optional func circleMenu(circleMenu: CircleMenu, buttonWillSelected button: UIButton, atIndex: Int)
/**
Tells the delegate that the specified index is now selected.
- parameter circleMenu: A circle menu object informing the delegate about the new index selection.
- parameter button: A selected circle menu button. Don't change button.tag
- parameter atIndex: Selected button index
*/
optional func circleMenu(circleMenu: CircleMenu, buttonDidSelected button: UIButton, atIndex: Int)
/**
Tells the delegate the circle menu is about to draw a button for a particular index.
- parameter circleMenu: The circle menu object informing the delegate of this impending event.
- parameter button: A circle menu button object that circle menu is going to use when drawing the row. Don't change button.tag
- parameter atIndex: An button index.
*/
@objc optional func circleMenu(_ circleMenu: CircleMenu, willDisplay button: UIButton, atIndex: Int)
/**
Tells the delegate that a specified index is about to be selected.
- parameter circleMenu: A circle menu object informing the delegate about the impending selection.
- parameter button: A selected circle menu button. Don't change button.tag
- parameter atIndex: Selected button index
*/
@objc optional func circleMenu(_ circleMenu: CircleMenu, buttonWillSelected button: UIButton, atIndex: Int)
/**
Tells the delegate that the specified index is now selected.
- parameter circleMenu: A circle menu object informing the delegate about the new index selection.
- parameter button: A selected circle menu button. Don't change button.tag
- parameter atIndex: Selected button index
*/
@objc optional func circleMenu(_ circleMenu: CircleMenu, buttonDidSelected button: UIButton, atIndex: Int)
/**
Tells the delegate that the menu was collapsed - the cancel action. Fires immediately on button press
- parameter circleMenu: A circle menu object informing the delegate about the new index selection.
*/
@objc optional func menuCollapsed(_ circleMenu: CircleMenu)
/**
Tells the delegate that the menu was opened. Fires immediately on button press
- parameter circleMenu: A circle menu object informing the delegate about the new index selection.
*/
@objc optional func menuOpened(_ circleMenu: CircleMenu)
}
// MARK: CircleMenu
/// A Button object with pop ups buttons
public class CircleMenu: UIButton {
// MARK: properties
/// Buttons count
@IBInspectable public var buttonsCount: Int = 3
/// Circle animation duration
@IBInspectable public var duration: Double = 2
/// Distance between center button and buttons
@IBInspectable public var distance: Float = 100
/// Delay between show buttons
@IBInspectable public var showDelay: Double = 0
/// The object that acts as the delegate of the circle menu.
@IBOutlet weak public var delegate: AnyObject? //CircleMenuDelegate?
var buttons: [UIButton]?
private var customNormalIconView: UIImageView!
private var customSelectedIconView: UIImageView!
// MARK: life cycle
/**
Initializes and returns a circle menu object.
- parameter frame: A rectangle specifying the initial location and size of the circle menu in its superview€™s coordinates.
- parameter normalIcon: The image to use for the specified normal state.
- parameter selectedIcon: The image to use for the specified selected state.
- parameter buttonsCount: The number of buttons.
- parameter duration: The duration, in seconds, of the animation.
- parameter distance: Distance between center button and sub buttons.
- returns: A newly created circle menu.
*/
public init(frame: CGRect, normalIcon: String?, selectedIcon: String?, buttonsCount: Int = 3, duration: Double = 2,
distance: Float = 100) {
super.init(frame: frame)
if let icon = normalIcon {
setImage(UIImage(named: icon), forState: .Normal)
}
if let icon = selectedIcon {
setImage(UIImage(named: icon), forState: .Selected)
}
self.buttonsCount = buttonsCount
self.duration = duration
self.distance = distance
commonInit()
}
required public init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
commonInit()
}
private func commonInit() {
addActions()
customNormalIconView = addCustomImageView(state: .Normal)
customSelectedIconView = addCustomImageView(state: .Selected)
if customSelectedIconView != nil {
customSelectedIconView.alpha = 0
}
setImage(UIImage(), forState: .Normal)
setImage(UIImage(), forState: .Selected)
}
// MARK: public
/**
Hide button
- parameter duration: The duration, in seconds, of the animation.
- parameter hideDelay: The time to delay, in seconds.
*/
public func hideButtons(duration: Double, hideDelay: Double = 0) {
if buttons == nil {
return
}
buttonsAnimationIsShow(isShow: false, duration: duration, hideDelay: hideDelay)
open class CircleMenu: UIButton {
tapBounceAnimation()
tapRotatedAnimation(0.3, isSelected: false)
}
// MARK: properties
// MARK: create
private func createButtons() -> [UIButton] {
var buttons = [UIButton]()
let step: Float = 360.0 / Float(self.buttonsCount)
for index in 0..<self.buttonsCount {
let angle: Float = Float(index) * step
let distance = Float(self.bounds.size.height/2.0)
let button = Init(CircleMenuButton(size: self.bounds.size, circleMenu: self, distance:distance, angle: angle)) {
$0.tag = index
$0.addTarget(self, action: #selector(CircleMenu.buttonHandler(_:)), forControlEvents: UIControlEvents.TouchUpInside)
$0.alpha = 0
}
buttons.append(button)
/// Buttons count
@IBInspectable open var buttonsCount: Int = 3
/// Circle animation duration
@IBInspectable open var duration: Double = 2
/// Distance between center button and buttons
@IBInspectable open var distance: Float = 100
/// Delay between show buttons
@IBInspectable open var showDelay: Double = 0
/// Start angle of the circle
@IBInspectable open var startAngle: Float = 0
/// End angle of the circle
@IBInspectable open var endAngle: Float = 360
// Pop buttons radius, if nil use center button size
open var subButtonsRadius: CGFloat?
// Show buttons event
open var showButtonsEvent: UIControl.Event = UIControl.Event.touchUpInside {
didSet {
addActions(newEvent: showButtonsEvent, oldEvent: oldValue)
}
}
return buttons
}
private func addCustomImageView(state state: UIControlState) -> UIImageView? {
guard let image = imageForState(state) else {
return nil
/// The object that acts as the delegate of the circle menu.
@IBOutlet open weak var delegate: AnyObject? // CircleMenuDelegate?
var buttons: [UIButton]?
weak var platform: UIView?
public var customNormalIconView: UIImageView?
public var customSelectedIconView: UIImageView?
/**
Initializes and returns a circle menu object.
- parameter frame: A rectangle specifying the initial location and size of the circle menu in its superview€™s coordinates.
- parameter normalIcon: The image to use for the specified normal state.
- parameter selectedIcon: The image to use for the specified selected state.
- parameter buttonsCount: The number of buttons.
- parameter duration: The duration, in seconds, of the animation.
- parameter distance: Distance between center button and sub buttons.
- returns: A newly created circle menu.
*/
public init(frame: CGRect,
normalIcon: String?,
selectedIcon: String?,
buttonsCount: Int = 3,
duration: Double = 2,
distance: Float = 100) {
super.init(frame: frame)
if let icon = normalIcon {
setImage(UIImage(named: icon), for: .normal)
}
if let icon = selectedIcon {
setImage(UIImage(named: icon), for: .selected)
}
self.buttonsCount = buttonsCount
self.duration = duration
self.distance = distance
commonInit()
}
let iconView = Init(UIImageView(image: image)) {
$0.translatesAutoresizingMaskIntoConstraints = false
$0.contentMode = .Center
$0.userInteractionEnabled = false
public required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
commonInit()
}
addSubview(iconView)
// added constraints
iconView.addConstraint(NSLayoutConstraint(item: iconView, attribute: .Height, relatedBy: .Equal, toItem: nil,
attribute: .Height, multiplier: 1, constant: bounds.size.height))
iconView.addConstraint(NSLayoutConstraint(item: iconView, attribute: .Width, relatedBy: .Equal, toItem: nil,
attribute: .Width, multiplier: 1, constant: bounds.size.width))
addConstraint(NSLayoutConstraint(item: self, attribute: .CenterX, relatedBy: .Equal, toItem: iconView,
attribute: .CenterX, multiplier: 1, constant:0))
addConstraint(NSLayoutConstraint(item: self, attribute: .CenterY, relatedBy: .Equal, toItem: iconView,
attribute: .CenterY, multiplier: 1, constant:0))
return iconView
}
// MARK: configure
private func addActions() {
self.addTarget(self, action: #selector(CircleMenu.onTap), forControlEvents: UIControlEvents.TouchUpInside)
}
// MARK: helpers
/**
Check is sub buttons showed
*/
public func buttonsIsShown() -> Bool {
guard let buttons = self.buttons else {
return false
fileprivate func commonInit() {
addActions(newEvent: showButtonsEvent)
customNormalIconView = addCustomImageView(state: .normal)
customSelectedIconView = addCustomImageView(state: .selected)
customSelectedIconView?.alpha = 0
setImage(UIImage(), for: .normal)
setImage(UIImage(), for: .selected)
}
for button in buttons {
if button.alpha == 0 {
return false
}
// MARK: methods
/**
Hide button
- parameter duration: The duration, in seconds, of the animation.
- parameter hideDelay: The time to delay, in seconds.
*/
open func hideButtons(_ duration: Double, hideDelay: Double = 0) {
if buttons == nil {
return
}
buttonsAnimationIsShow(isShow: false, duration: duration, hideDelay: hideDelay)
tapBounceAnimation(duration: 0.5)
tapRotatedAnimation(0.3, isSelected: false)
}
return true
}
// MARK: actions
func onTap() {
if buttonsIsShown() == false {
buttons = createButtons()
/**
Check is sub buttons showed
*/
open func buttonsIsShown() -> Bool {
guard let buttons = self.buttons else {
return false
}
for button in buttons {
if button.alpha == 0 {
return false
}
}
return true
}
let isShow = !buttonsIsShown()
let duration = isShow ? 0.5 : 0.2
buttonsAnimationIsShow(isShow: isShow, duration: duration)
tapBounceAnimation()
tapRotatedAnimation(0.3, isSelected: isShow)
}
func buttonHandler(sender: CircleMenuButton) {
delegate?.circleMenu?(self, buttonWillSelected: sender, atIndex: sender.tag)
let circle = CircleMenuLoader(radius: CGFloat(distance), strokeWidth: bounds.size.height, circleMenu: self,
color: sender.backgroundColor)
if let container = sender.container { // rotation animation
sender.rotationLayerAnimation(container.angleZ + 360, duration: duration)
container.superview?.bringSubviewToFront(container)
open override func removeFromSuperview() {
if self.platform?.superview != nil { self.platform?.removeFromSuperview() }
super.removeFromSuperview()
}
if let aButtons = buttons {
circle.fillAnimation(duration, startAngle: -90 + Float(360 / aButtons.count) * Float(sender.tag))
circle.hideAnimation(0.5, delay: duration)
hideCenterButton(duration: 0.3)
buttonsAnimationIsShow(isShow: false, duration: 0, hideDelay: duration)
showCenterButton(duration: 0.525, delay: duration)
if customNormalIconView != nil && customSelectedIconView != nil {
let dispatchTime: dispatch_time_t = dispatch_time(
DISPATCH_TIME_NOW,
Int64(duration * Double(NSEC_PER_SEC)))
// MARK: create
fileprivate func createButtons(platform: UIView) -> [UIButton] {
var buttons = [UIButton]()
let step = getArcStep()
for index in 0 ..< buttonsCount {
let angle: Float = startAngle + Float(index) * step
let distance = Float(bounds.size.height / 2.0)
let buttonSize: CGSize
if let subButtonsRadius = self.subButtonsRadius {
buttonSize = CGSize(width: subButtonsRadius * 2, height: subButtonsRadius * 2)
} else {
buttonSize = bounds.size
}
let button = customize(CircleMenuButton(size: buttonSize, platform: platform, distance: distance, angle: angle)) {
$0.tag = index
$0.addTarget(self, action: #selector(CircleMenu.buttonHandler(_:)), for: UIControl.Event.touchUpInside)
$0.alpha = 0
}
buttons.append(button)
}
return buttons
}
fileprivate func addCustomImageView(state: UIControl.State) -> UIImageView? {
guard let image = image(for: state) else {
return nil
}
let iconView = customize(UIImageView(image: image)) {
$0.translatesAutoresizingMaskIntoConstraints = false
$0.contentMode = .center
$0.isUserInteractionEnabled = false
}
addSubview(iconView)
// added constraints
iconView.addConstraint(NSLayoutConstraint(item: iconView, attribute: .height, relatedBy: .equal, toItem: nil,
attribute: .height, multiplier: 1, constant: bounds.size.height))
iconView.addConstraint(NSLayoutConstraint(item: iconView, attribute: .width, relatedBy: .equal, toItem: nil,
attribute: .width, multiplier: 1, constant: bounds.size.width))
addConstraint(NSLayoutConstraint(item: self, attribute: .centerX, relatedBy: .equal, toItem: iconView,
attribute: .centerX, multiplier: 1, constant: 0))
addConstraint(NSLayoutConstraint(item: self, attribute: .centerY, relatedBy: .equal, toItem: iconView,
attribute: .centerY, multiplier: 1, constant: 0))
return iconView
}
fileprivate func createPlatform() -> UIView {
let platform = customize(UIView(frame: .zero)) {
$0.backgroundColor = .clear
$0.translatesAutoresizingMaskIntoConstraints = false
}
superview?.insertSubview(platform, belowSubview: self)
// constraints
let sizeConstraints = [NSLayoutConstraint.Attribute.width, .height].map {
NSLayoutConstraint(item: platform,
attribute: $0,
relatedBy: .equal,
toItem: nil,
attribute: $0,
multiplier: 1,
constant: CGFloat(distance * Float(2.0)))
}
platform.addConstraints(sizeConstraints)
let centerConstraints = [NSLayoutConstraint.Attribute.centerX, .centerY].map {
NSLayoutConstraint(item: self,
attribute: $0,
relatedBy: .equal,
toItem: platform,
attribute: $0,
multiplier: 1,
constant: 0)
}
superview?.addConstraints(centerConstraints)
return platform
}
// MARK: configure
fileprivate func addActions(newEvent: UIControl.Event, oldEvent: UIControl.Event? = nil) {
if let oldEvent = oldEvent { removeTarget(self, action: #selector(CircleMenu.onTap), for: oldEvent) }
addTarget(self, action: #selector(CircleMenu.onTap), for: newEvent)
}
/**
Retrieves the incremental lengths between buttons. If the arc length is 360 degrees or more, the increments
will evenly space out in a full circle. If the arc length is less than 360 degrees, the last button will be
placed on the endAngle.
*/
fileprivate func getArcStep() -> Float {
var arcLength = endAngle - startAngle
var stepCount = buttonsCount
if arcLength < 360 {
stepCount -= 1
} else if arcLength > 360 {
arcLength = 360
}
return arcLength / Float(stepCount)
}
// MARK: actions
private var isBounceAnimating: Bool = false
@objc func onTap() {
guard isBounceAnimating == false else { return }
isBounceAnimating = true
if buttonsIsShown() == false {
let platform = createPlatform()
buttons = createButtons(platform: platform)
self.platform = platform
DispatchQueue.main.asyncAfter(deadline: .now()) {
self.delegate?.menuOpened?(self)
}
}
let isShow = !buttonsIsShown()
let duration = isShow ? 0.5 : 0.2
buttonsAnimationIsShow(isShow: isShow, duration: duration)
tapBounceAnimation(duration: 0.5) { [weak self] _ in self?.isBounceAnimating = false }
tapRotatedAnimation(0.3, isSelected: isShow)
}
@objc func buttonHandler(_ sender: CircleMenuButton) {
guard let platform = self.platform else { return }
delegate?.circleMenu?(self, buttonWillSelected: sender, atIndex: sender.tag)
dispatch_after(dispatchTime, dispatch_get_main_queue(), {
self.delegate?.circleMenu?(self, buttonDidSelected: sender, atIndex: sender.tag)
let strokeWidth: CGFloat
if let radius = self.subButtonsRadius {
strokeWidth = radius * 2
} else {
strokeWidth = bounds.size.height
}
let circle = CircleMenuLoader(radius: CGFloat(distance),
strokeWidth: strokeWidth,
platform: platform,
color: sender.backgroundColor)
if let container = sender.container { // rotation animation
sender.rotationAnimation(container.angleZ + 360, duration: duration)
container.superview?.bringSubviewToFront(container)
}
let step = getArcStep()
circle.fillAnimation(duration, startAngle: -90 + startAngle + step * Float(sender.tag)) { [weak self] in
self?.buttons?.forEach { $0.alpha = 0 }
}
circle.hideAnimation(0.5, delay: duration) { [weak self] in
if self?.platform?.superview != nil { self?.platform?.removeFromSuperview() }
}
hideCenterButton(duration: 0.3)
showCenterButton(duration: 0.525, delay: duration)
DispatchQueue.main.asyncAfter(deadline: .now() + duration, execute: {
self.delegate?.circleMenu?(self, buttonDidSelected: sender, atIndex: sender.tag)
})
}
}
// MARK: animations
fileprivate func buttonsAnimationIsShow(isShow: Bool, duration: Double, hideDelay: Double = 0) {
guard let buttons = self.buttons else {
return
}
let step = getArcStep()
for index in 0 ..< buttonsCount {
guard case let button as CircleMenuButton = buttons[index] else { continue }
if isShow == true {
delegate?.circleMenu?(self, willDisplay: button, atIndex: index)
let angle: Float = startAngle + Float(index) * step
button.rotatedZ(angle: angle, animated: false, delay: Double(index) * showDelay)
button.showAnimation(distance: distance, duration: duration, delay: Double(index) * showDelay)
} else {
button.hideAnimation(distance: Float(bounds.size.height / 2.0), duration: duration, delay: hideDelay)
}
}
if isShow == false { // hide buttons and remove
self.buttons = nil
delegate?.menuCollapsed?(self)
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + duration) {
if self.platform?.superview != nil { self.platform?.removeFromSuperview() }
}
}
}
}
// MARK: animations
private func buttonsAnimationIsShow(isShow isShow: Bool, duration: Double, hideDelay: Double = 0) {
guard let buttons = self.buttons else {
return
fileprivate func tapBounceAnimation(duration: TimeInterval, completion: ((Bool)->())? = nil) {
transform = CGAffineTransform(scaleX: 0.9, y: 0.9)
UIView.animate(withDuration: duration, delay: 0, usingSpringWithDamping: 0.3, initialSpringVelocity: 5,
options: UIView.AnimationOptions.curveLinear,
animations: { () -> Void in
self.transform = CGAffineTransform(scaleX: 1, y: 1)
},
completion: completion)
}
let step: Float = 360.0 / Float(self.buttonsCount)
for index in 0..<self.buttonsCount {
guard case let button as CircleMenuButton = buttons[index] else { continue }
let angle: Float = Float(index) * step
if isShow == true {
delegate?.circleMenu?(self, willDisplay: button, atIndex: index)
button.rotatedZ(angle: angle, animated: false, delay: Double(index) * showDelay)
button.showAnimation(distance: distance, duration: duration, delay: Double(index) * showDelay)
} else {
button.hideAnimation(
distance: Float(self.bounds.size.height / 2.0),
duration: duration, delay: hideDelay)
}
fileprivate func tapRotatedAnimation(_ duration: Float, isSelected: Bool) {
let addAnimations: (_ view: UIImageView, _ isShow: Bool) -> Void = { view, isShow in
var toAngle: Float = 180.0
var fromAngle: Float = 0
var fromScale = 1.0
var toScale = 0.2
var fromOpacity = 1
var toOpacity = 0
if isShow == true {
toAngle = 0
fromAngle = -180
fromScale = 0.2
toScale = 1.0
fromOpacity = 0
toOpacity = 1
}
let rotation = customize(CABasicAnimation(keyPath: "transform.rotation")) {
$0.duration = TimeInterval(duration)
$0.toValue = (toAngle.degrees)
$0.fromValue = (fromAngle.degrees)
$0.timingFunction = CAMediaTimingFunction(name: CAMediaTimingFunctionName.easeInEaseOut)
}
let fade = customize(CABasicAnimation(keyPath: "opacity")) {
$0.duration = TimeInterval(duration)
$0.fromValue = fromOpacity
$0.toValue = toOpacity
$0.timingFunction = CAMediaTimingFunction(name: CAMediaTimingFunctionName.easeInEaseOut)
$0.fillMode = CAMediaTimingFillMode.forwards
$0.isRemovedOnCompletion = false
}
let scale = customize(CABasicAnimation(keyPath: "transform.scale")) {
$0.duration = TimeInterval(duration)
$0.toValue = toScale
$0.fromValue = fromScale
$0.timingFunction = CAMediaTimingFunction(name: CAMediaTimingFunctionName.easeInEaseOut)
}
view.layer.add(rotation, forKey: nil)
view.layer.add(fade, forKey: nil)
view.layer.add(scale, forKey: nil)
}
if let customNormalIconView = self.customNormalIconView {
addAnimations(customNormalIconView, !isSelected)
}
if let customSelectedIconView = self.customSelectedIconView {
addAnimations(customSelectedIconView, isSelected)
}
self.isSelected = isSelected
alpha = isSelected ? 0.3 : 1
}
if isShow == false { // hide buttons and remove
self.buttons = nil
fileprivate func hideCenterButton(duration: Double, delay: Double = 0) {
UIView.animate(withDuration: TimeInterval(duration), delay: TimeInterval(delay),
options: UIView.AnimationOptions.curveEaseOut,
animations: { () -> Void in
self.transform = CGAffineTransform(scaleX: 0.001, y: 0.001)
}, completion: nil)
}
}
private func tapBounceAnimation() {
self.transform = CGAffineTransformMakeScale(0.9, 0.9)
UIView.animateWithDuration(0.5, delay: 0, usingSpringWithDamping: 0.3, initialSpringVelocity: 5,
options: UIViewAnimationOptions.CurveLinear,
animations: { () -> Void in
self.transform = CGAffineTransformMakeScale(1, 1)
},
completion: nil)
}
private func tapRotatedAnimation(duration: Float, isSelected: Bool) {
let addAnimations: (view: UIImageView, isShow: Bool) -> () = { (view, isShow) in
var toAngle: Float = 180.0
var fromAngle: Float = 0
var fromScale = 1.0
var toScale = 0.2
var fromOpacity = 1
var toOpacity = 0
if isShow == true {
toAngle = 0
fromAngle = -180
fromScale = 0.2
toScale = 1.0
fromOpacity = 0
toOpacity = 1
}
let rotation = Init(CABasicAnimation(keyPath: "transform.rotation")) {
$0.duration = NSTimeInterval(duration)
$0.toValue = (toAngle.degrees)
$0.fromValue = (fromAngle.degrees)
$0.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
}
let fade = Init(CABasicAnimation(keyPath: "opacity")) {
$0.duration = NSTimeInterval(duration)
$0.fromValue = fromOpacity
$0.toValue = toOpacity
$0.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
$0.fillMode = kCAFillModeForwards
$0.removedOnCompletion = false
}
let scale = Init(CABasicAnimation(keyPath: "transform.scale")) {
$0.duration = NSTimeInterval(duration)
$0.toValue = toScale
$0.fromValue = fromScale
$0.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
}
view.layer.addAnimation(rotation, forKey: nil)
view.layer.addAnimation(fade, forKey: nil)
view.layer.addAnimation(scale, forKey: nil)
}
if customNormalIconView != nil && customSelectedIconView != nil {
addAnimations(view: customNormalIconView, isShow: !isSelected)
addAnimations(view: customSelectedIconView, isShow: isSelected)
}
selected = isSelected
self.alpha = isSelected ? 0.3 : 1
}
private func hideCenterButton(duration duration: Double, delay: Double = 0) {
UIView.animateWithDuration( NSTimeInterval(duration), delay: NSTimeInterval(delay),
options: UIViewAnimationOptions.CurveEaseOut,
animations: { () -> Void in
self.transform = CGAffineTransformMakeScale(0.001, 0.001)
}, completion: nil)
}
private func showCenterButton(duration duration: Float, delay: Double) {
UIView.animateWithDuration( NSTimeInterval(duration), delay: NSTimeInterval(delay), usingSpringWithDamping: 0.78,
initialSpringVelocity: 0, options: UIViewAnimationOptions.CurveLinear,
animations: { () -> Void in
self.transform = CGAffineTransformMakeScale(1, 1)
self.alpha = 1
},
completion: nil)
let rotation = Init(CASpringAnimation(keyPath: "transform.rotation")) {
$0.duration = NSTimeInterval(1.5)
$0.toValue = (0)
$0.fromValue = (Float(-180).degrees)
$0.damping = 10
fileprivate func showCenterButton(duration: Float, delay: Double) {
UIView.animate(withDuration: TimeInterval(duration), delay: TimeInterval(delay), usingSpringWithDamping: 0.78,
initialSpringVelocity: 0, options: UIView.AnimationOptions.curveLinear,
animations: { () -> Void in
self.transform = CGAffineTransform(scaleX: 1, y: 1)
self.alpha = 1
},
completion: nil)
let rotation = customize(CASpringAnimation(keyPath: "transform.rotation")) {
$0.duration = TimeInterval(1.5)
$0.toValue = 0
$0.fromValue = (Float(-180).degrees)
$0.damping = 10
$0.initialVelocity = 0
$0.beginTime = CACurrentMediaTime() + delay
$0.beginTime = CACurrentMediaTime() + delay
}
let fade = customize(CABasicAnimation(keyPath: "opacity")) {
$0.duration = TimeInterval(0.01)
$0.toValue = 0
$0.timingFunction = CAMediaTimingFunction(name: CAMediaTimingFunctionName.easeInEaseOut)
$0.fillMode = CAMediaTimingFillMode.forwards
$0.isRemovedOnCompletion = false
$0.beginTime = CACurrentMediaTime() + delay
}
let show = customize(CABasicAnimation(keyPath: "opacity")) {
$0.duration = TimeInterval(duration)
$0.toValue = 1
$0.timingFunction = CAMediaTimingFunction(name: CAMediaTimingFunctionName.easeInEaseOut)
$0.fillMode = CAMediaTimingFillMode.forwards
$0.isRemovedOnCompletion = false
$0.beginTime = CACurrentMediaTime() + delay
}
customNormalIconView?.layer.add(rotation, forKey: nil)
customNormalIconView?.layer.add(show, forKey: nil)
customSelectedIconView?.layer.add(fade, forKey: nil)
}
let fade = Init(CABasicAnimation(keyPath: "opacity")) {
$0.duration = NSTimeInterval(0.01)
$0.toValue = 0
$0.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
$0.fillMode = kCAFillModeForwards
$0.removedOnCompletion = false
$0.beginTime = CACurrentMediaTime() + delay
}
let show = Init(CABasicAnimation(keyPath: "opacity")) {
$0.duration = NSTimeInterval(duration)
$0.toValue = 1
$0.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
$0.fillMode = kCAFillModeForwards
$0.removedOnCompletion = false
$0.beginTime = CACurrentMediaTime() + delay
}
if customNormalIconView != nil {
customNormalIconView.layer.addAnimation(rotation, forKey: nil)
customNormalIconView.layer.addAnimation(show, forKey: nil)
}
if customSelectedIconView != nil {
customSelectedIconView.layer.addAnimation(fade, forKey: nil)
}
}
}
// MARK: extension
internal extension Float {
var radians: Float {
return self * (Float(180) / Float(M_PI))
}
var degrees: Float {
return self * Float(M_PI) / 180.0
}
var radians: Float {
return self * (Float(180) / Float.pi)
}
var degrees: Float {
return self * Float.pi / 180.0
}
}
internal extension UIView {
var angleZ: Float {
let radians: Float = atan2(Float(self.transform.b), Float(self.transform.a))
return radians.radians
}
}
var angleZ: Float {
return atan2(Float(transform.b), Float(transform.a)).radians
}
}
@@ -27,102 +27,97 @@ internal class CircleMenuButton: UIButton {
// MARK: properties
internal weak var container: UIView?
weak var container: UIView?
// MARK: life cycle
init(size: CGSize, circleMenu: CircleMenu, distance: Float, angle: Float = 0) {
init(size: CGSize, platform: UIView, distance: Float, angle: Float = 0) {
super.init(frame: CGRect(origin: CGPoint(x: 0, y: 0), size: size))
self.backgroundColor = UIColor(colorLiteralRed: 0.79, green: 0.24, blue: 0.27, alpha: 1)
self.layer.cornerRadius = size.height / 2.0
backgroundColor = UIColor(red: 0.79, green: 0.24, blue: 0.27, alpha: 1)
layer.cornerRadius = size.height / 2.0
let aContainer = createContainer(CGSize(width: size.width, height:CGFloat(distance)), circleMenu: circleMenu)
let aContainer = createContainer(CGSize(width: size.width, height: CGFloat(distance)), platform: platform)
// hack view for rotate
let view = UIView(frame: CGRect(x: 0, y: 0, width: self.bounds.width, height: self.bounds.height))
view.backgroundColor = UIColor.clearColor()
let view = UIView(frame: CGRect(x: 0, y: 0, width: bounds.width, height: bounds.height))
view.backgroundColor = UIColor.clear
view.addSubview(self)
//...
// ...
aContainer.addSubview(view)
container = aContainer
view.layer.transform = CATransform3DMakeRotation(-CGFloat(angle.degrees), 0, 0, 1)
self.rotatedZ(angle: angle, animated: false)
rotatedZ(angle: angle, animated: false)
}
required internal init?(coder aDecoder: NSCoder) {
internal required init?(coder _: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
// MARK: configure
private func createContainer(size: CGSize, circleMenu: CircleMenu) -> UIView {
guard let circleMenuSuperView = circleMenu.superview else {
fatalError("wront circle menu")
}
let container = Init(UIView(frame: CGRect(origin: CGPoint(x: 0, y: 0), size: size))) {
$0.backgroundColor = UIColor.clearColor()
fileprivate func createContainer(_ size: CGSize, platform: UIView) -> UIView {
let container = customize(UIView(frame: CGRect(origin: CGPoint(x: 0, y: 0), size: size))) {
$0.backgroundColor = UIColor.clear
$0.translatesAutoresizingMaskIntoConstraints = false
$0.layer.anchorPoint = CGPoint(x: 0.5, y: 1)
$0.layer.anchorPoint = CGPoint(x: 0.5, y: 1)
}
circleMenuSuperView.insertSubview(container, belowSubview: circleMenu)
platform.addSubview(container)
// added constraints
let height = NSLayoutConstraint(item: container,
attribute: .Height,
relatedBy: .Equal,
toItem: nil,
attribute: .Height,
multiplier: 1,
constant: size.height)
attribute: .height,
relatedBy: .equal,
toItem: nil,
attribute: .height,
multiplier: 1,
constant: size.height)
height.identifier = "height"
container.addConstraint(height)
container.addConstraint(NSLayoutConstraint(item: container,
attribute: .Width,
relatedBy: .Equal,
toItem: nil,
attribute: .Width,
multiplier: 1,
constant: size.width))
attribute: .width,
relatedBy: .equal,
toItem: nil,
attribute: .width,
multiplier: 1,
constant: size.width))
circleMenuSuperView.addConstraint(NSLayoutConstraint(item: circleMenu,
attribute: .CenterX,
relatedBy: .Equal,
toItem: container,
attribute: .CenterX,
multiplier: 1,
constant:0))
platform.addConstraint(NSLayoutConstraint(item: platform,
attribute: .centerX,
relatedBy: .equal,
toItem: container,
attribute: .centerX,
multiplier: 1,
constant: 0))
circleMenuSuperView.addConstraint(NSLayoutConstraint(item: circleMenu,
attribute: .CenterY,
relatedBy: .Equal,
toItem: container,
attribute: .CenterY,
multiplier: 1,
constant:0))
platform.addConstraint(NSLayoutConstraint(item: platform,
attribute: .centerY,
relatedBy: .equal,
toItem: container,
attribute: .centerY,
multiplier: 1,
constant: 0))
return container
}
// MARK: methods
internal func rotatedZ(angle angle: Float, animated: Bool, duration: Double = 0, delay: Double = 0) {
internal func rotatedZ(angle: Float, animated: Bool, duration: Double = 0, delay: Double = 0) {
guard let container = self.container else {
fatalError("contaner don't create")
}
let rotateTransform = CATransform3DMakeRotation(CGFloat(angle.degrees), 0, 0, 1)
if animated {
UIView.animateWithDuration(
duration,
UIView.animate(
withDuration: duration,
delay: delay,
options: UIViewAnimationOptions.CurveEaseInOut,
options: UIView.AnimationOptions(),
animations: { () -> Void in
container.layer.transform = rotateTransform
},
@@ -137,107 +132,79 @@ internal class CircleMenuButton: UIButton {
internal extension CircleMenuButton {
internal func showAnimation(distance distance: Float, duration: Double, delay: Double = 0) {
guard let container = self.container else {
func showAnimation(distance: Float, duration: Double, delay: Double = 0) {
guard let heightConstraint = (self.container?.constraints.filter { $0.identifier == "height" })?.first else {
fatalError()
}
let heightConstraint = self.container?.constraints.filter {$0.identifier == "height"}.first
transform = CGAffineTransform(scaleX: 0, y: 0)
container?.superview?.layoutIfNeeded()
guard heightConstraint != nil else {
return
}
self.transform = CGAffineTransformMakeScale(0, 0)
self.container?.layoutIfNeeded()
alpha = 0
self.alpha = 0
heightConstraint?.constant = CGFloat(distance)
UIView.animateWithDuration(
duration,
heightConstraint.constant = CGFloat(distance)
UIView.animate(
withDuration: duration,
delay: delay,
usingSpringWithDamping: 0.7,
initialSpringVelocity: 0,
options: UIViewAnimationOptions.CurveLinear,
options: UIView.AnimationOptions.curveLinear,
animations: { () -> Void in
container.layoutIfNeeded()
self.transform = CGAffineTransformMakeScale(1.0, 1.0)
self.container?.superview?.layoutIfNeeded()
self.transform = CGAffineTransform(scaleX: 1.0, y: 1.0)
self.alpha = 1
}, completion: { (success) -> Void in
}, completion: { (_) -> Void in
})
}
internal func hideAnimation(distance distance: Float, duration: Double, delay: Double = 0) {
guard let container = self.container else {
fatalError()
}
let heightConstraint = self.container?.constraints.filter {$0.identifier == "height"}.first
guard heightConstraint != nil else {
func hideAnimation(distance: Float, duration: Double, delay: Double = 0) {
guard let heightConstraint = (self.container?.constraints.filter { $0.identifier == "height" })?.first else {
return
}
heightConstraint?.constant = CGFloat(distance)
UIView.animateWithDuration(
duration,
heightConstraint.constant = CGFloat(distance)
UIView.animate(
withDuration: duration,
delay: delay,
options: UIViewAnimationOptions.CurveEaseIn,
options: UIView.AnimationOptions.curveEaseIn,
animations: { () -> Void in
container.layoutIfNeeded()
self.transform = CGAffineTransformMakeScale(0.01, 0.01)
}, completion: { (success) -> Void in
self.container?.superview?.layoutIfNeeded()
self.transform = CGAffineTransform(scaleX: 0.01, y: 0.01)
}, completion: { (_) -> Void in
self.alpha = 0
if let _ = self.container {
container.removeFromSuperview() // remove container
self.container?.removeFromSuperview() // remove container
}
})
}
internal func changeDistance(distance: CGFloat, animated: Bool, duration: Double = 0, delay: Double = 0) {
func changeDistance(_ distance: CGFloat, animated _: Bool, duration: Double = 0, delay: Double = 0) {
guard let container = self.container else {
guard let heightConstraint = (self.container?.constraints.filter { $0.identifier == "height" })?.first else {
fatalError()
}
let heightConstraint = self.container?.constraints.filter {$0.identifier == "height"}.first
heightConstraint.constant = distance
guard heightConstraint != nil else {
return
}
heightConstraint?.constant = distance
UIView.animateWithDuration(
duration,
UIView.animate(
withDuration: duration,
delay: delay,
options: UIViewAnimationOptions.CurveEaseIn,
options: UIView.AnimationOptions.curveEaseIn,
animations: { () -> Void in
container.layoutIfNeeded()
self.container?.superview?.layoutIfNeeded()
},
completion: nil)
}
// MARK: layer animation
internal func rotationLayerAnimation(angle: Float, duration: Double) {
if let aContainer = container {
rotationLayerAnimation(aContainer, angle: angle, duration: duration)
func rotationAnimation(_ angle: Float, duration: Double) {
let rotation = customize(CABasicAnimation(keyPath: "transform.rotation")) {
$0.duration = TimeInterval(duration)
$0.toValue = (angle.degrees)
$0.timingFunction = CAMediaTimingFunction(name: CAMediaTimingFunctionName.easeInEaseOut)
}
}
}
internal extension UIView {
internal func rotationLayerAnimation(view: UIView, angle: Float, duration: Double) {
let rotation = Init(CABasicAnimation(keyPath: "transform.rotation")) {
$0.duration = NSTimeInterval(duration)
$0.toValue = (angle.degrees)
$0.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
}
view.layer.addAnimation(rotation, forKey: "rotation")
container?.layer.add(rotation, forKey: "rotation")
}
}
@@ -33,15 +33,13 @@ internal class CircleMenuLoader: UIView {
// MARK: life cycle
internal init(radius: CGFloat, strokeWidth: CGFloat, circleMenu: CircleMenu, color: UIColor?) {
internal init(radius: CGFloat, strokeWidth: CGFloat, platform: UIView, color: UIColor?) {
super.init(frame: CGRect(x: 0, y: 0, width: radius, height: radius))
if let aSuperView = circleMenu.superview {
aSuperView.insertSubview(self, belowSubview: circleMenu)
}
platform.addSubview(self)
circle = createCircle(radius, strokeWidth: strokeWidth, color: color)
createConstraints(circleMenu, radius: radius)
createConstraints(platform: platform, radius: radius)
let circleFrame = CGRect(
x: radius * 2 - strokeWidth,
@@ -50,79 +48,65 @@ internal class CircleMenuLoader: UIView {
height: strokeWidth)
createRoundView(circleFrame, color: color)
backgroundColor = UIColor.clearColor()
backgroundColor = UIColor.clear
}
required internal init?(coder aDecoder: NSCoder) {
internal required init?(coder _: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
// MARK: create
private func createCircle(radius: CGFloat, strokeWidth: CGFloat, color: UIColor?) -> CAShapeLayer {
fileprivate func createCircle(_ radius: CGFloat, strokeWidth: CGFloat, color: UIColor?) -> CAShapeLayer {
let circlePath = UIBezierPath(
arcCenter: CGPoint(x: radius, y: radius),
radius: CGFloat(radius) - strokeWidth / 2.0,
startAngle: CGFloat(0),
endAngle:CGFloat(M_PI * 2),
endAngle: CGFloat.pi * 2,
clockwise: true)
let circle = Init(CAShapeLayer()) {
$0.path = circlePath.CGPath
$0.fillColor = UIColor.clearColor().CGColor
$0.strokeColor = color?.CGColor
$0.lineWidth = strokeWidth
let circle = customize(CAShapeLayer()) {
$0.path = circlePath.cgPath
$0.fillColor = UIColor.clear.cgColor
$0.strokeColor = color?.cgColor
$0.lineWidth = strokeWidth
}
self.layer.addSublayer(circle)
layer.addSublayer(circle)
return circle
}
private func createConstraints(circleMenu: CircleMenu, radius: CGFloat) {
guard let circleMenuSuperView = circleMenu.superview else {
fatalError()
}
fileprivate func createConstraints(platform: UIView, radius: CGFloat) {
translatesAutoresizingMaskIntoConstraints = false
// added constraints
addConstraint(NSLayoutConstraint(item: self,
attribute: .Height,
relatedBy: .Equal,
toItem: nil,
attribute: .Height,
multiplier: 1,
constant: radius * 2.0))
let sizeConstraints = [NSLayoutConstraint.Attribute.width, .height].map {
NSLayoutConstraint(item: self,
attribute: $0,
relatedBy: .equal,
toItem: nil,
attribute: $0,
multiplier: 1,
constant: radius * 2.0)
}
addConstraints(sizeConstraints)
addConstraint(NSLayoutConstraint(item: self,
attribute: .Width,
relatedBy: .Equal,
toItem: nil,
attribute: .Width,
multiplier: 1,
constant: radius * 2.0))
circleMenuSuperView.addConstraint(NSLayoutConstraint(item: circleMenu,
attribute: .CenterX,
relatedBy: .Equal,
toItem: self,
attribute: .CenterX,
multiplier: 1,
constant:0))
circleMenuSuperView.addConstraint(NSLayoutConstraint(item: circleMenu,
attribute: .CenterY,
relatedBy: .Equal,
toItem: self,
attribute: .CenterY,
multiplier: 1,
constant:0))
let centerConstaraints = [NSLayoutConstraint.Attribute.centerY, .centerX].map {
NSLayoutConstraint(item: platform,
attribute: $0,
relatedBy: .equal,
toItem: self,
attribute: $0,
multiplier: 1,
constant: 0)
}
platform.addConstraints(centerConstaraints)
}
internal func createRoundView(rect: CGRect, color: UIColor?) {
let roundView = Init(UIView(frame: rect)) {
$0.backgroundColor = UIColor.blackColor()
internal func createRoundView(_ rect: CGRect, color: UIColor?) {
let roundView = customize(UIView(frame: rect)) {
$0.backgroundColor = UIColor.black
$0.layer.cornerRadius = rect.size.width / 2.0
$0.backgroundColor = color
}
@@ -131,7 +115,7 @@ internal class CircleMenuLoader: UIView {
// MARK: animations
internal func fillAnimation(duration: Double, startAngle: Float) {
internal func fillAnimation(_ duration: Double, startAngle: Float, completion: @escaping () -> Void) {
guard circle != nil else {
return
}
@@ -139,36 +123,40 @@ internal class CircleMenuLoader: UIView {
let rotateTransform = CATransform3DMakeRotation(CGFloat(startAngle.degrees), 0, 0, 1)
layer.transform = rotateTransform
let animation = Init(CABasicAnimation(keyPath: "strokeEnd")) {
$0.duration = CFTimeInterval(duration)
$0.fromValue = (0)
$0.toValue = (1)
$0.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
CATransaction.begin()
CATransaction.setCompletionBlock(completion)
let animation = customize(CABasicAnimation(keyPath: "strokeEnd")) {
$0.duration = CFTimeInterval(duration)
$0.fromValue = 0
$0.toValue = 1
$0.timingFunction = CAMediaTimingFunction(name: CAMediaTimingFunctionName.easeInEaseOut)
}
circle?.addAnimation(animation, forKey: nil)
circle?.add(animation, forKey: nil)
CATransaction.commit()
}
internal func hideAnimation(duration: CGFloat, delay: Double) {
internal func hideAnimation(_ duration: CGFloat, delay: Double, completion: @escaping () -> Void) {
let scale = Init(CABasicAnimation(keyPath: "transform.scale")) {
$0.toValue = 1.2
$0.duration = CFTimeInterval(duration)
$0.fillMode = kCAFillModeForwards
$0.removedOnCompletion = false
$0.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseOut)
$0.beginTime = CACurrentMediaTime() + delay
let scale = customize(CABasicAnimation(keyPath: "transform.scale")) {
$0.toValue = 1.2
$0.duration = CFTimeInterval(duration)
$0.fillMode = CAMediaTimingFillMode.forwards
$0.isRemovedOnCompletion = false
$0.timingFunction = CAMediaTimingFunction(name: CAMediaTimingFunctionName.easeOut)
$0.beginTime = CACurrentMediaTime() + delay
}
layer.addAnimation(scale, forKey: nil)
layer.add(scale, forKey: nil)
UIView.animateWithDuration(
CFTimeInterval(duration),
UIView.animate(
withDuration: CFTimeInterval(duration),
delay: delay,
options: UIViewAnimationOptions.CurveEaseIn,
options: UIView.AnimationOptions.curveEaseIn,
animations: { () -> Void in
self.alpha = 0
},
completion: { (success) -> Void in
completion: { (_) -> Void in
self.removeFromSuperview()
completion()
})
}
}
+8 -13
View File
@@ -6,25 +6,23 @@
// Copyright © 2016 Alex K. All rights reserved.
//
import XCTest
@testable import CircleMenu
import XCTest
class CircleMenuTests: XCTestCase {
let buttonsCount = 4
let circleMenu = CircleMenu(
frame: CGRect(x: 200, y: 200, width: 50, height: 50),
normalIcon:"icon_menu",
selectedIcon:"icon_close",
buttonsCount: 4,
duration: 4,
distance: 120)
frame: CGRect(x: 200, y: 200, width: 50, height: 50),
normalIcon: "icon_menu",
selectedIcon: "icon_close",
buttonsCount: 4,
duration: 4,
distance: 120)
let view = UIView()
override func setUp() {
super.setUp()
circleMenu.buttonsCount = buttonsCount
@@ -33,7 +31,6 @@ class CircleMenuTests: XCTestCase {
override func tearDown() {
super.tearDown()
}
func testCircleMenuShowButtons() {
@@ -47,7 +44,6 @@ class CircleMenuTests: XCTestCase {
XCTAssertEqual(circleMenu.buttons?.count, buttonsCount, "button is created")
}
func testCircleMenuHideButtons() {
// given
circleMenu.onTap()
@@ -59,13 +55,12 @@ class CircleMenuTests: XCTestCase {
XCTAssertNil(circleMenu.buttons, "button is removed")
}
func testCircleMenuHideButtonsAfterAnimation() {
// given
circleMenu.onTap()
// when
circleMenu.buttonHandler((circleMenu.buttons?.first)!)
circleMenu.buttonHandler((circleMenu.buttons?.first)! as! CircleMenuButton)
// then
XCTAssertNil(circleMenu.buttons, "button is removed")
+42
View File
@@ -0,0 +1,42 @@
// swift-tools-version:5.1
//
// Package.swift
//
// Copyright (c) Ramotion (https://www.ramotion.com/)
//
// 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.
//
import PackageDescription
let package = Package(
name: "CircleMenu",
platforms: [
.iOS(.v9)
],
products: [
.library(name: "CircleMenu",
targets: ["CircleMenu"])
],
targets: [
.target(name: "CircleMenu",
path: "CircleMenuLib")
],
swiftLanguageVersions: [.v5]
)
+62 -22
View File
@@ -1,22 +1,41 @@
![header](./header.png)
# CircleMenu
<a href="https://www.ramotion.com/agency/app-development/?utm_source=gthb&utm_medium=repo&utm_campaign=circle-menu"><img src="https://github.com/Ramotion/circle-menu/blob/master/header.png"></a>
<a href="https://github.com/Ramotion/circle-menu">
<img align="left" src="https://github.com/Ramotion/circle-menu/blob/master/circle-menu.gif" width="480" height="360" /></a>
<p><h1 align="left">CIRCLE MENU</h1></p>
<h4>Simple, elegant UI menu with a circular layout and material design animations</h4>
___
<p><h6>We specialize in the designing and coding of custom UI for Mobile Apps and Websites.</h6>
<a href="https://www.ramotion.com/agency/app-development/?utm_source=gthb&utm_medium=repo&utm_campaign=circle-menu">
<img src="https://github.com/ramotion/gliding-collection/raw/master/contact_our_team@2x.png" width="187" height="34"></a>
</p>
<p><h6>Stay tuned for the latest updates:</h6>
<a href="https://goo.gl/rPFpid" >
<img src="https://i.imgur.com/ziSqeSo.png/" width="156" height="28"></a></p>
</br>
[![Twitter](https://img.shields.io/badge/Twitter-@Ramotion-blue.svg?style=flat)](http://twitter.com/Ramotion)
[![CocoaPods](https://img.shields.io/cocoapods/p/CircleMenu.svg)](https://cocoapods.org/pods/CircleMenu)
[![CocoaPods](https://img.shields.io/cocoapods/v/CircleMenu.svg)](http://cocoapods.org/pods/CircleMenu)
[![CocoaPods](https://img.shields.io/cocoapods/metrics/doc-percent/CircleMenu.svg)](https://cdn.rawgit.com/Ramotion/circle-menu/master/docs/index.html)
[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Ramotion/circle-menu)
[![codebeat badge](https://codebeat.co/badges/6f67da5d-c416-4bac-9fb7-c2dc938feedc)](https://codebeat.co/projects/github-com-ramotion-circle-menu)
[![Travis](https://img.shields.io/travis/Ramotion/circle-menu.svg)](https://travis-ci.org/Ramotion/circle-menu)
[![Donate](https://img.shields.io/badge/Donate-PayPal-blue.svg)](https://paypal.me/Ramotion)
[shot on dribbble:](https://dribbble.com/shots/2534780-Circle-Menu-Swift-Open-Source)
![preview](./preview.gif)
The [iPhone mockup](https://store.ramotion.com/product/iphone-6-mockups?utm_source=gthb&utm_medium=special&utm_campaign=circle-menu) available [here](https://store.ramotion.com/product/iphone-6-mockups?utm_source=gthb&utm_medium=special&utm_campaign=circle-menu).
## Requirements
- iOS 8.0+
- Xcode 7.3
- iOS 9.0+
- Xcode 9.0.1
## Installation
@@ -25,7 +44,7 @@ Just add CircleMenuLib folder to your project.
or use [CocoaPods](https://cocoapods.org) with Podfile:
```ruby
pod 'CircleMenu', '~> 1.0.0'
pod 'CircleMenu'
```
or [Carthage](https://github.com/Carthage/Carthage) users can simply add to their `Cartfile`:
```
@@ -43,10 +62,10 @@ github "Ramotion/circle-menu"
3) Use delegate method to configure buttons
```swift
func circleMenu(circleMenu: CircleMenu, willDisplay button: CircleMenuButton, atIndex: Int)
func circleMenu(circleMenu: CircleMenu, willDisplay button: UIButton, atIndex: Int)
```
4) Use properties to confiure CircleMenu
4) Use properties to configure CircleMenu
```swift
@IBInspectable var buttonsCount: Int = 3
@@ -73,23 +92,44 @@ view.addSubview(button)
```swift
// configure buttons
optional func circleMenu(circleMenu: CircleMenu, willDisplay button: CircleMenuButton, atIndex: Int)
optional func circleMenu(circleMenu: CircleMenu, willDisplay button: UIButton, atIndex: Int)
// call before animation
optional func circleMenu(circleMenu: CircleMenu, buttonWillSelected button: CircleMenuButton, atIndex: Int)
optional func circleMenu(circleMenu: CircleMenu, buttonWillSelected button: UIButton, atIndex: Int)
// call after animation
optional func circleMenu(circleMenu: CircleMenu, buttonDidSelected button: CircleMenuButton, atIndex: Int)
optional func circleMenu(circleMenu: CircleMenu, buttonDidSelected button: UIButton, atIndex: Int)
// call upon cancel of the menu - fires immediately on button press
optional func menuCollapsed(circleMenu: CircleMenu)
// call upon opening of the menu - fires immediately on button press
optional func menuOpened(circleMenu: CircleMenu)
```
## Licence
## 🗂 Check this library on other language:
<a href="https://github.com/Ramotion/circle-menu-android">
<img src="https://github.com/ramotion/navigation-stack/raw/master/Android_Java@2x.png" width="178" height="81"></a>
<a href="https://github.com/Ramotion/react-native-circle-menu">
<img src="https://github.com/ramotion/navigation-stack/raw/master/React Native@2x.png" width="178" height="81"></a>
Circle menu is released under the MIT license.
## 📄 License
Circle Menu is released under the MIT license.
See [LICENSE](./LICENSE) for details.
## About
The project maintained by [app development agency](https://ramotion.com?utm_source=gthb&utm_medium=special&utm_campaign=circle-menu) [Ramotion Inc.](https://ramotion.com?utm_source=gthb&utm_medium=special&utm_campaign=circle-menu)
See our other [open-source projects](https://github.com/ramotion) or [hire](https://ramotion.com?utm_source=gthb&utm_medium=special&utm_campaign=circle-menu) us to design, develop, and grow your product.
This library is a part of a <a href="https://github.com/Ramotion/swift-ui-animation-components-and-libraries"><b>selection of our best UI open-source projects.</b></a>
[![Twitter URL](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=https://github.com/ramotion/circle-menu)
[![Twitter Follow](https://img.shields.io/twitter/follow/ramotion.svg?style=social)](https://twitter.com/ramotion)
If you use the open-source library in your project, please make sure to credit and backlink to www.ramotion.com
## 📱 Get the Showroom App for iOS to give it a try
Try this UI component and more like this in our iOS app. Contact us if interested.
<a href="https://itunes.apple.com/app/apple-store/id1182360240?pt=550053&ct=folding-cell&mt=8" >
<img src="https://github.com/ramotion/gliding-collection/raw/master/app_store@2x.png" width="117" height="34"></a>
<a href="https://www.ramotion.com/agency/app-development/?utm_source=gthb&utm_medium=repo&utm_campaign=circle-menu">
<img src="https://github.com/ramotion/gliding-collection/raw/master/contact_our_team@2x.png" width="187" height="34"></a>
<br>
<br>
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 MiB

+14 -76
View File
@@ -13,12 +13,12 @@
<a title="Classes Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="index.html">CircleMenu Docs</a> (3% documented)</p>
<p><a href="index.html">CircleMenuDemo Docs</a> (87% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="index.html">CircleMenu Reference</a>
<a href="index.html">CircleMenuDemo Reference</a>
<img id="carat" src="img/carat.png" />
Classes Reference
</p>
@@ -32,28 +32,6 @@
<li class="nav-group-task">
<a href="Classes/CircleMenu.html">CircleMenu</a>
</li>
<li class="nav-group-task">
<a href="Classes/CircleMenuButton.html">CircleMenuButton</a>
</li>
<li class="nav-group-task">
<a href="Classes/CircleMenuLoader.html">CircleMenuLoader</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Extensions.html">Extensions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Extensions/UIView.html">UIView</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Functions.html">Functions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Functions.html#/s:F10CircleMenu4IniturFTq_5blockFT6objectq__T__q_">Init(_:block:)</a>
</li>
</ul>
</li>
<li class="nav-group-name">
@@ -74,54 +52,6 @@
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:C10CircleMenu16CircleMenuButton"></a>
<a name="//apple_ref/swift/Class/CircleMenuButton" class="dashAnchor"></a>
<a class="token" href="#/s:C10CircleMenu16CircleMenuButton">CircleMenuButton</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
<a href="Classes/CircleMenuButton.html" class="slightly-smaller">See more</a>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:C10CircleMenu16CircleMenuLoader"></a>
<a name="//apple_ref/swift/Class/CircleMenuLoader" class="dashAnchor"></a>
<a class="token" href="#/s:C10CircleMenu16CircleMenuLoader">CircleMenuLoader</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
<a href="Classes/CircleMenuLoader.html" class="slightly-smaller">See more</a>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<div class="task-name-container">
<a name="/CircleMenu"></a>
@@ -134,9 +64,9 @@
<li class="item">
<div>
<code>
<a name="/s:C10CircleMenu10CircleMenu"></a>
<a name="/s:C14CircleMenuDemo10CircleMenu"></a>
<a name="//apple_ref/swift/Class/CircleMenu" class="dashAnchor"></a>
<a class="token" href="#/s:C10CircleMenu10CircleMenu">CircleMenu</a>
<a class="token" href="#/s:C14CircleMenuDemo10CircleMenu">CircleMenu</a>
</code>
</div>
<div class="height-container">
@@ -144,10 +74,18 @@
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
<p>A Button object with pop ups buttons</p>
<a href="Classes/CircleMenu.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">CircleMenu</span><span class="p">:</span> <span class="kt">UIButton</span></code></pre>
</div>
</div>
</section>
</div>
</li>
@@ -156,7 +94,7 @@
</section>
</section>
<section id="footer">
<p>&copy; 2016 <a class="link" href="https://github.com/Ramotion/circle-menu" target="_blank" rel="external">Juri Vasylenko</a>. All rights reserved. (Last updated: 2016-02-11)</p>
<p>&copy; 2016 <a class="link" href="https://github.com/Ramotion/circle-menu" target="_blank" rel="external">AlexKalinkin</a>. All rights reserved. (Last updated: 2016-06-27)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
+241 -69
View File
@@ -14,12 +14,12 @@
<a title="CircleMenu Class Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../index.html">CircleMenu Docs</a> (3% documented)</p>
<p><a href="../index.html">CircleMenuDemo Docs</a> (87% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../index.html">CircleMenu Reference</a>
<a href="../index.html">CircleMenuDemo Reference</a>
<img id="carat" src="../img/carat.png" />
CircleMenu Class Reference
</p>
@@ -33,28 +33,6 @@
<li class="nav-group-task">
<a href="../Classes/CircleMenu.html">CircleMenu</a>
</li>
<li class="nav-group-task">
<a href="../Classes/CircleMenuButton.html">CircleMenuButton</a>
</li>
<li class="nav-group-task">
<a href="../Classes/CircleMenuLoader.html">CircleMenuLoader</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Extensions.html">Extensions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Extensions/UIView.html">UIView</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Functions.html">Functions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Functions.html#/s:F10CircleMenu4IniturFTq_5blockFT6objectq__T__q_">Init(_:block:)</a>
</li>
</ul>
</li>
<li class="nav-group-name">
@@ -71,7 +49,13 @@
<section>
<section class="section">
<h1>CircleMenu</h1>
<p>Undocumented</p>
<div class="declaration">
<div class="language">
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">CircleMenu</span><span class="p">:</span> <span class="kt">UIButton</span></code></pre>
</div>
</div>
<p>A Button object with pop ups buttons</p>
</section>
<section class="section task-group-section">
@@ -87,9 +71,9 @@
<li class="item">
<div>
<code>
<a name="/s:vC10CircleMenu10CircleMenu12buttonsCountSi"></a>
<a name="/s:vC14CircleMenuDemo10CircleMenu12buttonsCountSi"></a>
<a name="//apple_ref/swift/Property/buttonsCount" class="dashAnchor"></a>
<a class="token" href="#/s:vC10CircleMenu10CircleMenu12buttonsCountSi">buttonsCount</a>
<a class="token" href="#/s:vC14CircleMenuDemo10CircleMenu12buttonsCountSi">buttonsCount</a>
</code>
</div>
<div class="height-container">
@@ -97,18 +81,26 @@
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
<p>Buttons count</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight"><code><span class="kd">@IBInspectable</span> <span class="kd">public</span> <span class="k">var</span> <span class="nv">buttonsCount</span><span class="p">:</span> <span class="kt">Int</span> <span class="o">=</span> <span class="mi">3</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:vC10CircleMenu10CircleMenu8durationSd"></a>
<a name="/s:vC14CircleMenuDemo10CircleMenu8durationSd"></a>
<a name="//apple_ref/swift/Property/duration" class="dashAnchor"></a>
<a class="token" href="#/s:vC10CircleMenu10CircleMenu8durationSd">duration</a>
<a class="token" href="#/s:vC14CircleMenuDemo10CircleMenu8durationSd">duration</a>
</code>
</div>
<div class="height-container">
@@ -116,18 +108,26 @@
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
<p>Circle animation duration</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight"><code><span class="kd">@IBInspectable</span> <span class="kd">public</span> <span class="k">var</span> <span class="nv">duration</span><span class="p">:</span> <span class="kt">Double</span> <span class="o">=</span> <span class="mi">2</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:vC10CircleMenu10CircleMenu8distanceSf"></a>
<a name="/s:vC14CircleMenuDemo10CircleMenu8distanceSf"></a>
<a name="//apple_ref/swift/Property/distance" class="dashAnchor"></a>
<a class="token" href="#/s:vC10CircleMenu10CircleMenu8distanceSf">distance</a>
<a class="token" href="#/s:vC14CircleMenuDemo10CircleMenu8distanceSf">distance</a>
</code>
</div>
<div class="height-container">
@@ -135,18 +135,26 @@
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
<p>Distance between center button and buttons</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight"><code><span class="kd">@IBInspectable</span> <span class="kd">public</span> <span class="k">var</span> <span class="nv">distance</span><span class="p">:</span> <span class="kt">Float</span> <span class="o">=</span> <span class="mi">100</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:vC10CircleMenu10CircleMenu9showDelaySd"></a>
<a name="/s:vC14CircleMenuDemo10CircleMenu9showDelaySd"></a>
<a name="//apple_ref/swift/Property/showDelay" class="dashAnchor"></a>
<a class="token" href="#/s:vC10CircleMenu10CircleMenu9showDelaySd">showDelay</a>
<a class="token" href="#/s:vC14CircleMenuDemo10CircleMenu9showDelaySd">showDelay</a>
</code>
</div>
<div class="height-container">
@@ -154,18 +162,26 @@
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
<p>Delay between show buttons</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight"><code><span class="kd">@IBInspectable</span> <span class="kd">public</span> <span class="k">var</span> <span class="nv">showDelay</span><span class="p">:</span> <span class="kt">Double</span> <span class="o">=</span> <span class="mi">0</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:vC10CircleMenu10CircleMenu8delegateXwGSqPSs9AnyObject__"></a>
<a name="/s:vC14CircleMenuDemo10CircleMenu8delegateXwGSqPs9AnyObject__"></a>
<a name="//apple_ref/swift/Property/delegate" class="dashAnchor"></a>
<a class="token" href="#/s:vC10CircleMenu10CircleMenu8delegateXwGSqPSs9AnyObject__">delegate</a>
<a class="token" href="#/s:vC14CircleMenuDemo10CircleMenu8delegateXwGSqPs9AnyObject__">delegate</a>
</code>
</div>
<div class="height-container">
@@ -173,9 +189,17 @@
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
<p>The object that acts as the delegate of the circle menu.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight"><code><span class="kd">@IBOutlet</span> <span class="k">weak</span> <span class="kd">public</span> <span class="k">var</span> <span class="nv">delegate</span><span class="p">:</span> <span class="kt">AnyObject</span><span class="p">?</span> <span class="c1">//CircleMenuDelegate?</span></code></pre>
</div>
</div>
</section>
</div>
</li>
@@ -193,9 +217,9 @@
<li class="item">
<div>
<code>
<a name="/s:FC10CircleMenu10CircleMenucFMS0_FT5frameVSC6CGRect10normalIconGSqSS_12selectedIconGSqSS_12buttonsCountSi8durationSd8distanceSf_S0_"></a>
<a name="/s:FC14CircleMenuDemo10CircleMenucFT5frameVSC6CGRect10normalIconGSqSS_12selectedIconGSqSS_12buttonsCountSi8durationSd8distanceSf_S0_"></a>
<a name="//apple_ref/swift/Method/init(frame:normalIcon:selectedIcon:buttonsCount:duration:distance:)" class="dashAnchor"></a>
<a class="token" href="#/s:FC10CircleMenu10CircleMenucFMS0_FT5frameVSC6CGRect10normalIconGSqSS_12selectedIconGSqSS_12buttonsCountSi8durationSd8distanceSf_S0_">init(frame:normalIcon:selectedIcon:buttonsCount:duration:distance:)</a>
<a class="token" href="#/s:FC14CircleMenuDemo10CircleMenucFT5frameVSC6CGRect10normalIconGSqSS_12selectedIconGSqSS_12buttonsCountSi8durationSd8distanceSf_S0_">init(frame:normalIcon:selectedIcon:buttonsCount:duration:distance:)</a>
</code>
</div>
<div class="height-container">
@@ -203,26 +227,106 @@
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
<p>Initializes and returns a circle menu object.</p>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:FC10CircleMenu10CircleMenucFMS0_FT5coderCSo7NSCoder_GSqS0__"></a>
<a name="//apple_ref/swift/Method/init(coder:)" class="dashAnchor"></a>
<a class="token" href="#/s:FC10CircleMenu10CircleMenucFMS0_FT5coderCSo7NSCoder_GSqS0__">init(coder:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight"><code><span class="kd">public</span> <span class="nf">init</span><span class="p">(</span><span class="nv">frame</span><span class="p">:</span> <span class="kt">CGRect</span><span class="p">,</span> <span class="nv">normalIcon</span><span class="p">:</span> <span class="kt">String</span><span class="p">?,</span> <span class="nv">selectedIcon</span><span class="p">:</span> <span class="kt">String</span><span class="p">?,</span> <span class="nv">buttonsCount</span><span class="p">:</span> <span class="kt">Int</span> <span class="o">=</span> <span class="mi">3</span><span class="p">,</span> <span class="nv">duration</span><span class="p">:</span> <span class="kt">Double</span> <span class="o">=</span> <span class="mi">2</span><span class="p">,</span>
<span class="nv">distance</span><span class="p">:</span> <span class="kt">Float</span> <span class="o">=</span> <span class="mi">100</span><span class="p">)</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>frame</em>
</code>
</td>
<td>
<div>
<p>A rectangle specifying the initial location and size of the circle menu in its superview’€™s coordinates.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>normalIcon</em>
</code>
</td>
<td>
<div>
<p>The image to use for the specified normal state.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>selectedIcon</em>
</code>
</td>
<td>
<div>
<p>The image to use for the specified selected state.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>buttonsCount</em>
</code>
</td>
<td>
<div>
<p>The number of buttons.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>duration</em>
</code>
</td>
<td>
<div>
<p>The duration, in seconds, of the animation.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>distance</em>
</code>
</td>
<td>
<div>
<p>Distance between center button and sub buttons.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div>
<h4>Return Value</h4>
<p>A newly created circle menu.</p>
</div>
</section>
@@ -232,19 +336,19 @@
</div>
<div class="task-group">
<div class="task-name-container">
<a name="/helpers"></a>
<a name="//apple_ref/swift/Section/helpers" class="dashAnchor"></a>
<a href="#/helpers">
<h3 class="section-name">helpers</h3>
<a name="/methods"></a>
<a name="//apple_ref/swift/Section/methods" class="dashAnchor"></a>
<a href="#/methods">
<h3 class="section-name">methods</h3>
</a>
</div>
<ul>
<li class="item">
<div>
<code>
<a name="/s:FC10CircleMenu10CircleMenu14buttonsIsShownFS0_FT_Sb"></a>
<a name="//apple_ref/swift/Method/buttonsIsShown()" class="dashAnchor"></a>
<a class="token" href="#/s:FC10CircleMenu10CircleMenu14buttonsIsShownFS0_FT_Sb">buttonsIsShown()</a>
<a name="/s:FC14CircleMenuDemo10CircleMenu11hideButtonsFTSd9hideDelaySd_T_"></a>
<a name="//apple_ref/swift/Method/hideButtons(_:hideDelay:)" class="dashAnchor"></a>
<a class="token" href="#/s:FC14CircleMenuDemo10CircleMenu11hideButtonsFTSd9hideDelaySd_T_">hideButtons(_:hideDelay:)</a>
</code>
</div>
<div class="height-container">
@@ -252,9 +356,77 @@
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
<p>Hide button</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">hideButtons</span><span class="p">(</span><span class="nv">duration</span><span class="p">:</span> <span class="kt">Double</span><span class="p">,</span> <span class="nv">hideDelay</span><span class="p">:</span> <span class="kt">Double</span> <span class="o">=</span> <span class="mi">0</span><span class="p">)</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>duration</em>
</code>
</td>
<td>
<div>
<p>The duration, in seconds, of the animation.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>hideDelay</em>
</code>
</td>
<td>
<div>
<p>The time to delay, in seconds.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:FC14CircleMenuDemo10CircleMenu14buttonsIsShownFT_Sb"></a>
<a name="//apple_ref/swift/Method/buttonsIsShown()" class="dashAnchor"></a>
<a class="token" href="#/s:FC14CircleMenuDemo10CircleMenu14buttonsIsShownFT_Sb">buttonsIsShown()</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Check is sub buttons showed</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">buttonsIsShown</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="kt">Bool</span></code></pre>
</div>
</div>
</section>
</div>
</li>
@@ -263,7 +435,7 @@
</section>
</section>
<section id="footer">
<p>&copy; 2016 <a class="link" href="https://github.com/Ramotion/circle-menu" target="_blank" rel="external">Juri Vasylenko</a>. All rights reserved. (Last updated: 2016-02-11)</p>
<p>&copy; 2016 <a class="link" href="https://github.com/Ramotion/circle-menu" target="_blank" rel="external">AlexKalinkin</a>. All rights reserved. (Last updated: 2016-06-27)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
-269
View File
@@ -1,269 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>CircleMenuButton Class Reference</title>
<link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../css/highlight.css" />
<meta charset='utf-8'>
<script src="../js/jquery.min.js" defer></script>
<script src="../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Class/CircleMenuButton" class="dashAnchor"></a>
<a title="CircleMenuButton Class Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../index.html">CircleMenu Docs</a> (3% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../index.html">CircleMenu Reference</a>
<img id="carat" src="../img/carat.png" />
CircleMenuButton Class Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Classes/CircleMenu.html">CircleMenu</a>
</li>
<li class="nav-group-task">
<a href="../Classes/CircleMenuButton.html">CircleMenuButton</a>
</li>
<li class="nav-group-task">
<a href="../Classes/CircleMenuLoader.html">CircleMenuLoader</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Extensions.html">Extensions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Extensions/UIView.html">UIView</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Functions.html">Functions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Functions.html#/s:F10CircleMenu4IniturFTq_5blockFT6objectq__T__q_">Init(_:block:)</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Protocols/CircleMenuDelegate.html">CircleMenuDelegate</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>CircleMenuButton</h1>
<p>Undocumented</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<div class="task-name-container">
<a name="/properties"></a>
<a name="//apple_ref/swift/Section/properties" class="dashAnchor"></a>
<a href="#/properties">
<h3 class="section-name">properties</h3>
</a>
</div>
<ul>
<li class="item">
<div>
<code>
<a name="/s:vC10CircleMenu16CircleMenuButton9containerXwGSqCSo6UIView_"></a>
<a name="//apple_ref/swift/Property/container" class="dashAnchor"></a>
<a class="token" href="#/s:vC10CircleMenu16CircleMenuButton9containerXwGSqCSo6UIView_">container</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<div class="task-name-container">
<a name="/life%20cycle"></a>
<a name="//apple_ref/swift/Section/life cycle" class="dashAnchor"></a>
<a href="#/life%20cycle">
<h3 class="section-name">life cycle</h3>
</a>
</div>
<ul>
<li class="item">
<div>
<code>
<a name="/s:FC10CircleMenu16CircleMenuButtoncFMS0_FT5coderCSo7NSCoder_GSqS0__"></a>
<a name="//apple_ref/swift/Method/init(coder:)" class="dashAnchor"></a>
<a class="token" href="#/s:FC10CircleMenu16CircleMenuButtoncFMS0_FT5coderCSo7NSCoder_GSqS0__">init(coder:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<div class="task-name-container">
<a name="/public%20"></a>
<a name="//apple_ref/swift/Section/public " class="dashAnchor"></a>
<a href="#/public%20">
<h3 class="section-name">public </h3>
</a>
</div>
<ul>
<li class="item">
<div>
<code>
<a name="/s:FC10CircleMenu16CircleMenuButton8rotatedZFS0_FT5angleSf8animatedSb8durationSd5delaySd_T_"></a>
<a name="//apple_ref/swift/Method/rotatedZ(angle:animated:duration:delay:)" class="dashAnchor"></a>
<a class="token" href="#/s:FC10CircleMenu16CircleMenuButton8rotatedZFS0_FT5angleSf8animatedSb8durationSd5delaySd_T_">rotatedZ(angle:animated:duration:delay:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:FC10CircleMenu16CircleMenuButton13showAnimationFS0_FT8distanceSf8durationSd5delaySd_T_"></a>
<a name="//apple_ref/swift/Method/showAnimation(distance:duration:delay:)" class="dashAnchor"></a>
<a class="token" href="#/s:FC10CircleMenu16CircleMenuButton13showAnimationFS0_FT8distanceSf8durationSd5delaySd_T_">showAnimation(distance:duration:delay:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:FC10CircleMenu16CircleMenuButton13hideAnimationFS0_FT8distanceSf8durationSd5delaySd_T_"></a>
<a name="//apple_ref/swift/Method/hideAnimation(distance:duration:delay:)" class="dashAnchor"></a>
<a class="token" href="#/s:FC10CircleMenu16CircleMenuButton13hideAnimationFS0_FT8distanceSf8durationSd5delaySd_T_">hideAnimation(distance:duration:delay:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:FC10CircleMenu16CircleMenuButton14changeDistanceFS0_FTV12CoreGraphics7CGFloat8animatedSb8durationSd5delaySd_T_"></a>
<a name="//apple_ref/swift/Method/changeDistance(_:animated:duration:delay:)" class="dashAnchor"></a>
<a class="token" href="#/s:FC10CircleMenu16CircleMenuButton14changeDistanceFS0_FTV12CoreGraphics7CGFloat8animatedSb8durationSd5delaySd_T_">changeDistance(_:animated:duration:delay:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<div class="task-name-container">
<a name="/layer%20animation"></a>
<a name="//apple_ref/swift/Section/layer animation" class="dashAnchor"></a>
<a href="#/layer%20animation">
<h3 class="section-name">layer animation</h3>
</a>
</div>
<ul>
<li class="item">
<div>
<code>
<a name="/s:FC10CircleMenu16CircleMenuButton22rotationLayerAnimationFS0_FTSf8durationSd_T_"></a>
<a name="//apple_ref/swift/Method/rotationLayerAnimation(_:duration:)" class="dashAnchor"></a>
<a class="token" href="#/s:FC10CircleMenu16CircleMenuButton22rotationLayerAnimationFS0_FTSf8durationSd_T_">rotationLayerAnimation(_:duration:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2016 <a class="link" href="https://github.com/Ramotion/circle-menu" target="_blank" rel="external">Juri Vasylenko</a>. All rights reserved. (Last updated: 2016-02-11)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
-186
View File
@@ -1,186 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>CircleMenuLoader Class Reference</title>
<link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../css/highlight.css" />
<meta charset='utf-8'>
<script src="../js/jquery.min.js" defer></script>
<script src="../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Class/CircleMenuLoader" class="dashAnchor"></a>
<a title="CircleMenuLoader Class Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../index.html">CircleMenu Docs</a> (3% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../index.html">CircleMenu Reference</a>
<img id="carat" src="../img/carat.png" />
CircleMenuLoader Class Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Classes/CircleMenu.html">CircleMenu</a>
</li>
<li class="nav-group-task">
<a href="../Classes/CircleMenuButton.html">CircleMenuButton</a>
</li>
<li class="nav-group-task">
<a href="../Classes/CircleMenuLoader.html">CircleMenuLoader</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Extensions.html">Extensions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Extensions/UIView.html">UIView</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Functions.html">Functions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Functions.html#/s:F10CircleMenu4IniturFTq_5blockFT6objectq__T__q_">Init(_:block:)</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Protocols/CircleMenuDelegate.html">CircleMenuDelegate</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>CircleMenuLoader</h1>
<p>Undocumented</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<div class="task-name-container">
<a name="/life%20cycle"></a>
<a name="//apple_ref/swift/Section/life cycle" class="dashAnchor"></a>
<a href="#/life%20cycle">
<h3 class="section-name">life cycle</h3>
</a>
</div>
<ul>
<li class="item">
<div>
<code>
<a name="/s:FC10CircleMenu16CircleMenuLoadercFMS0_FT6radiusV12CoreGraphics7CGFloat11strokeWidthS2_10circleMenuCS_10CircleMenu5colorGSqCSo7UIColor__S0_"></a>
<a name="//apple_ref/swift/Method/init(radius:strokeWidth:circleMenu:color:)" class="dashAnchor"></a>
<a class="token" href="#/s:FC10CircleMenu16CircleMenuLoadercFMS0_FT6radiusV12CoreGraphics7CGFloat11strokeWidthS2_10circleMenuCS_10CircleMenu5colorGSqCSo7UIColor__S0_">init(radius:strokeWidth:circleMenu:color:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:FC10CircleMenu16CircleMenuLoadercFMS0_FT5coderCSo7NSCoder_GSqS0__"></a>
<a name="//apple_ref/swift/Method/init(coder:)" class="dashAnchor"></a>
<a class="token" href="#/s:FC10CircleMenu16CircleMenuLoadercFMS0_FT5coderCSo7NSCoder_GSqS0__">init(coder:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<div class="task-name-container">
<a name="/animations"></a>
<a name="//apple_ref/swift/Section/animations" class="dashAnchor"></a>
<a href="#/animations">
<h3 class="section-name">animations</h3>
</a>
</div>
<ul>
<li class="item">
<div>
<code>
<a name="/s:FC10CircleMenu16CircleMenuLoader13fillAnimationFS0_FTSd10startAngleSf_T_"></a>
<a name="//apple_ref/swift/Method/fillAnimation(_:startAngle:)" class="dashAnchor"></a>
<a class="token" href="#/s:FC10CircleMenu16CircleMenuLoader13fillAnimationFS0_FTSd10startAngleSf_T_">fillAnimation(_:startAngle:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:FC10CircleMenu16CircleMenuLoader13hideAnimationFS0_FTV12CoreGraphics7CGFloat5delaySd_T_"></a>
<a name="//apple_ref/swift/Method/hideAnimation(_:delay:)" class="dashAnchor"></a>
<a class="token" href="#/s:FC10CircleMenu16CircleMenuLoader13hideAnimationFS0_FTV12CoreGraphics7CGFloat5delaySd_T_">hideAnimation(_:delay:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2016 <a class="link" href="https://github.com/Ramotion/circle-menu" target="_blank" rel="external">Juri Vasylenko</a>. All rights reserved. (Last updated: 2016-02-11)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
-125
View File
@@ -1,125 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Extensions Reference</title>
<link rel="stylesheet" type="text/css" href="css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="css/highlight.css" />
<meta charset='utf-8'>
<script src="js/jquery.min.js" defer></script>
<script src="js/jazzy.js" defer></script>
</head>
<body>
<a title="Extensions Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="index.html">CircleMenu Docs</a> (3% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="index.html">CircleMenu Reference</a>
<img id="carat" src="img/carat.png" />
Extensions Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Classes/CircleMenu.html">CircleMenu</a>
</li>
<li class="nav-group-task">
<a href="Classes/CircleMenuButton.html">CircleMenuButton</a>
</li>
<li class="nav-group-task">
<a href="Classes/CircleMenuLoader.html">CircleMenuLoader</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Extensions.html">Extensions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Extensions/UIView.html">UIView</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Functions.html">Functions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Functions.html#/s:F10CircleMenu4IniturFTq_5blockFT6objectq__T__q_">Init(_:block:)</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Protocols/CircleMenuDelegate.html">CircleMenuDelegate</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>Extensions</h1>
<p>The following extensions are available globally.</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<div class="task-name-container">
<a name="/Animations"></a>
<a name="//apple_ref/swift/Section/Animations" class="dashAnchor"></a>
<a href="#/Animations">
<h3 class="section-name">Animations</h3>
</a>
</div>
<ul>
<li class="item">
<div>
<code>
<a name="/c:objc(cs)UIView"></a>
<a name="//apple_ref/swift/Extension/UIView" class="dashAnchor"></a>
<a class="token" href="#/c:objc(cs)UIView">UIView</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<a href="Extensions/UIView.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight"><code><span class="kd">class</span> <span class="kt">UIView</span> <span class="p">:</span> <span class="kt">UIResponder</span><span class="p">,</span> <span class="kt">NSCoding</span><span class="p">,</span> <span class="kt">UIAppearance</span><span class="p">,</span> <span class="kt">UIAppearanceContainer</span><span class="p">,</span> <span class="kt">UIDynamicItem</span><span class="p">,</span> <span class="kt">UITraitEnvironment</span><span class="p">,</span> <span class="kt">UICoordinateSpace</span><span class="p">,</span> <span class="kt">UIFocusEnvironment</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2016 <a class="link" href="https://github.com/Ramotion/circle-menu" target="_blank" rel="external">Juri Vasylenko</a>. All rights reserved. (Last updated: 2016-02-11)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
-124
View File
@@ -1,124 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>UIView Extension Reference</title>
<link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../css/highlight.css" />
<meta charset='utf-8'>
<script src="../js/jquery.min.js" defer></script>
<script src="../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Extension/UIView" class="dashAnchor"></a>
<a title="UIView Extension Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../index.html">CircleMenu Docs</a> (3% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../index.html">CircleMenu Reference</a>
<img id="carat" src="../img/carat.png" />
UIView Extension Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Classes/CircleMenu.html">CircleMenu</a>
</li>
<li class="nav-group-task">
<a href="../Classes/CircleMenuButton.html">CircleMenuButton</a>
</li>
<li class="nav-group-task">
<a href="../Classes/CircleMenuLoader.html">CircleMenuLoader</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Extensions.html">Extensions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Extensions/UIView.html">UIView</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Functions.html">Functions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Functions.html#/s:F10CircleMenu4IniturFTq_5blockFT6objectq__T__q_">Init(_:block:)</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Protocols/CircleMenuDelegate.html">CircleMenuDelegate</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>UIView</h1>
<div class="declaration">
<div class="language">
<pre class="highlight"><code><span class="kd">class</span> <span class="kt">UIView</span> <span class="p">:</span> <span class="kt">UIResponder</span><span class="p">,</span> <span class="kt">NSCoding</span><span class="p">,</span> <span class="kt">UIAppearance</span><span class="p">,</span> <span class="kt">UIAppearanceContainer</span><span class="p">,</span> <span class="kt">UIDynamicItem</span><span class="p">,</span> <span class="kt">UITraitEnvironment</span><span class="p">,</span> <span class="kt">UICoordinateSpace</span><span class="p">,</span> <span class="kt">UIFocusEnvironment</span></code></pre>
</div>
</div>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:FE10CircleMenuCSo6UIView22rotationLayerAnimationFS0_FTS0_5angleSf8durationSd_T_"></a>
<a name="//apple_ref/swift/Method/rotationLayerAnimation(_:angle:duration:)" class="dashAnchor"></a>
<a class="token" href="#/s:FE10CircleMenuCSo6UIView22rotationLayerAnimationFS0_FTS0_5angleSf8durationSd_T_">rotationLayerAnimation(_:angle:duration:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight"><code><span class="kd">class</span> <span class="kt">UIView</span> <span class="p">:</span> <span class="kt">UIResponder</span><span class="p">,</span> <span class="kt">NSCoding</span><span class="p">,</span> <span class="kt">UIAppearance</span><span class="p">,</span> <span class="kt">UIAppearanceContainer</span><span class="p">,</span> <span class="kt">UIDynamicItem</span><span class="p">,</span> <span class="kt">UITraitEnvironment</span><span class="p">,</span> <span class="kt">UICoordinateSpace</span><span class="p">,</span> <span class="kt">UIFocusEnvironment</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2016 <a class="link" href="https://github.com/Ramotion/circle-menu" target="_blank" rel="external">Juri Vasylenko</a>. All rights reserved. (Last updated: 2016-02-11)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
+18 -32
View File
@@ -13,12 +13,12 @@
<a title="Protocols Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="index.html">CircleMenu Docs</a> (3% documented)</p>
<p><a href="index.html">CircleMenuDemo Docs</a> (87% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="index.html">CircleMenu Reference</a>
<a href="index.html">CircleMenuDemo Reference</a>
<img id="carat" src="img/carat.png" />
Protocols Reference
</p>
@@ -32,28 +32,6 @@
<li class="nav-group-task">
<a href="Classes/CircleMenu.html">CircleMenu</a>
</li>
<li class="nav-group-task">
<a href="Classes/CircleMenuButton.html">CircleMenuButton</a>
</li>
<li class="nav-group-task">
<a href="Classes/CircleMenuLoader.html">CircleMenuLoader</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Extensions.html">Extensions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Extensions/UIView.html">UIView</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Functions.html">Functions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Functions.html#/s:F10CircleMenu4IniturFTq_5blockFT6objectq__T__q_">Init(_:block:)</a>
</li>
</ul>
</li>
<li class="nav-group-name">
@@ -76,19 +54,19 @@
<section class="section task-group-section">
<div class="task-group">
<div class="task-name-container">
<a name="/Protocol%20"></a>
<a name="//apple_ref/swift/Section/Protocol " class="dashAnchor"></a>
<a href="#/Protocol%20">
<h3 class="section-name">Protocol </h3>
<a name="/Protocol"></a>
<a name="//apple_ref/swift/Section/Protocol" class="dashAnchor"></a>
<a href="#/Protocol">
<h3 class="section-name">Protocol</h3>
</a>
</div>
<ul>
<li class="item">
<div>
<code>
<a name="/s:P10CircleMenu18CircleMenuDelegate"></a>
<a name="/s:P14CircleMenuDemo18CircleMenuDelegate"></a>
<a name="//apple_ref/swift/Protocol/CircleMenuDelegate" class="dashAnchor"></a>
<a class="token" href="#/s:P10CircleMenu18CircleMenuDelegate">CircleMenuDelegate</a>
<a class="token" href="#/s:P14CircleMenuDemo18CircleMenuDelegate">CircleMenuDelegate</a>
</code>
</div>
<div class="height-container">
@@ -96,10 +74,18 @@
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
<p>CircleMenuDelegate</p>
<a href="Protocols/CircleMenuDelegate.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight"><code><span class="kd">@objc</span> <span class="kd">public</span> <span class="kd">protocol</span> <span class="kt">CircleMenuDelegate</span></code></pre>
</div>
</div>
</section>
</div>
</li>
@@ -108,7 +94,7 @@
</section>
</section>
<section id="footer">
<p>&copy; 2016 <a class="link" href="https://github.com/Ramotion/circle-menu" target="_blank" rel="external">Juri Vasylenko</a>. All rights reserved. (Last updated: 2016-02-11)</p>
<p>&copy; 2016 <a class="link" href="https://github.com/Ramotion/circle-menu" target="_blank" rel="external">AlexKalinkin</a>. All rights reserved. (Last updated: 2016-06-27)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
+228 -35
View File
@@ -14,12 +14,12 @@
<a title="CircleMenuDelegate Protocol Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../index.html">CircleMenu Docs</a> (3% documented)</p>
<p><a href="../index.html">CircleMenuDemo Docs</a> (87% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../index.html">CircleMenu Reference</a>
<a href="../index.html">CircleMenuDemo Reference</a>
<img id="carat" src="../img/carat.png" />
CircleMenuDelegate Protocol Reference
</p>
@@ -33,28 +33,6 @@
<li class="nav-group-task">
<a href="../Classes/CircleMenu.html">CircleMenu</a>
</li>
<li class="nav-group-task">
<a href="../Classes/CircleMenuButton.html">CircleMenuButton</a>
</li>
<li class="nav-group-task">
<a href="../Classes/CircleMenuLoader.html">CircleMenuLoader</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Extensions.html">Extensions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Extensions/UIView.html">UIView</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Functions.html">Functions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Functions.html#/s:F10CircleMenu4IniturFTq_5blockFT6objectq__T__q_">Init(_:block:)</a>
</li>
</ul>
</li>
<li class="nav-group-name">
@@ -71,7 +49,13 @@
<section>
<section class="section">
<h1>CircleMenuDelegate</h1>
<p>Undocumented</p>
<div class="declaration">
<div class="language">
<pre class="highlight"><code><span class="kd">@objc</span> <span class="kd">public</span> <span class="kd">protocol</span> <span class="kt">CircleMenuDelegate</span></code></pre>
</div>
</div>
<p>CircleMenuDelegate</p>
</section>
<section class="section task-group-section">
@@ -80,9 +64,9 @@
<li class="item">
<div>
<code>
<a name="/s:FP10CircleMenu18CircleMenuDelegate10circleMenuuRq_S0__Fq_FTCS_10CircleMenu11willDisplayCS_16CircleMenuButton7atIndexSi_T_"></a>
<a name="/s:FP14CircleMenuDemo18CircleMenuDelegate10circleMenuFTCS_10CircleMenu11willDisplayCSo8UIButton7atIndexSi_T_"></a>
<a name="//apple_ref/swift/Method/circleMenu(_:willDisplay:atIndex:)" class="dashAnchor"></a>
<a class="token" href="#/s:FP10CircleMenu18CircleMenuDelegate10circleMenuuRq_S0__Fq_FTCS_10CircleMenu11willDisplayCS_16CircleMenuButton7atIndexSi_T_">circleMenu(_:willDisplay:atIndex:)</a>
<a class="token" href="#/s:FP14CircleMenuDemo18CircleMenuDelegate10circleMenuFTCS_10CircleMenu11willDisplayCSo8UIButton7atIndexSi_T_">circleMenu(_:willDisplay:atIndex:)</a>
</code>
</div>
<div class="height-container">
@@ -90,18 +74,72 @@
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
<p>Tells the delegate the circle menu is about to draw a button for a particular index.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight"><code><span class="kd">optional</span> <span class="kd">func</span> <span class="nf">circleMenu</span><span class="p">(</span><span class="nv">circleMenu</span><span class="p">:</span> <span class="kt">CircleMenu</span><span class="p">,</span> <span class="n">willDisplay</span> <span class="nv">button</span><span class="p">:</span> <span class="kt">UIButton</span><span class="p">,</span> <span class="nv">atIndex</span><span class="p">:</span> <span class="kt">Int</span><span class="p">)</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>circleMenu</em>
</code>
</td>
<td>
<div>
<p>The circle menu object informing the delegate of this impending event.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>button</em>
</code>
</td>
<td>
<div>
<p>A circle menu button object that circle menu is going to use when drawing the row. Don&rsquo;t change button.tag</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>atIndex</em>
</code>
</td>
<td>
<div>
<p>An button index.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:FP10CircleMenu18CircleMenuDelegate10circleMenuuRq_S0__Fq_FTCS_10CircleMenu18buttonWillSelectedCS_16CircleMenuButton7atIndexSi_T_"></a>
<a name="/s:FP14CircleMenuDemo18CircleMenuDelegate10circleMenuFTCS_10CircleMenu18buttonWillSelectedCSo8UIButton7atIndexSi_T_"></a>
<a name="//apple_ref/swift/Method/circleMenu(_:buttonWillSelected:atIndex:)" class="dashAnchor"></a>
<a class="token" href="#/s:FP10CircleMenu18CircleMenuDelegate10circleMenuuRq_S0__Fq_FTCS_10CircleMenu18buttonWillSelectedCS_16CircleMenuButton7atIndexSi_T_">circleMenu(_:buttonWillSelected:atIndex:)</a>
<a class="token" href="#/s:FP14CircleMenuDemo18CircleMenuDelegate10circleMenuFTCS_10CircleMenu18buttonWillSelectedCSo8UIButton7atIndexSi_T_">circleMenu(_:buttonWillSelected:atIndex:)</a>
</code>
</div>
<div class="height-container">
@@ -109,18 +147,72 @@
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
<p>Tells the delegate that a specified index is about to be selected.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight"><code><span class="kd">optional</span> <span class="kd">func</span> <span class="nf">circleMenu</span><span class="p">(</span><span class="nv">circleMenu</span><span class="p">:</span> <span class="kt">CircleMenu</span><span class="p">,</span> <span class="n">buttonWillSelected</span> <span class="nv">button</span><span class="p">:</span> <span class="kt">UIButton</span><span class="p">,</span> <span class="nv">atIndex</span><span class="p">:</span> <span class="kt">Int</span><span class="p">)</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>circleMenu</em>
</code>
</td>
<td>
<div>
<p>A circle menu object informing the delegate about the impending selection.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>button</em>
</code>
</td>
<td>
<div>
<p>A selected circle menu button. Don&rsquo;t change button.tag</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>atIndex</em>
</code>
</td>
<td>
<div>
<p>Selected button index</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:FP10CircleMenu18CircleMenuDelegate10circleMenuuRq_S0__Fq_FTCS_10CircleMenu17buttonDidSelectedCS_16CircleMenuButton7atIndexSi_T_"></a>
<a name="/s:FP14CircleMenuDemo18CircleMenuDelegate10circleMenuFTCS_10CircleMenu17buttonDidSelectedCSo8UIButton7atIndexSi_T_"></a>
<a name="//apple_ref/swift/Method/circleMenu(_:buttonDidSelected:atIndex:)" class="dashAnchor"></a>
<a class="token" href="#/s:FP10CircleMenu18CircleMenuDelegate10circleMenuuRq_S0__Fq_FTCS_10CircleMenu17buttonDidSelectedCS_16CircleMenuButton7atIndexSi_T_">circleMenu(_:buttonDidSelected:atIndex:)</a>
<a class="token" href="#/s:FP14CircleMenuDemo18CircleMenuDelegate10circleMenuFTCS_10CircleMenu17buttonDidSelectedCSo8UIButton7atIndexSi_T_">circleMenu(_:buttonDidSelected:atIndex:)</a>
</code>
</div>
<div class="height-container">
@@ -128,9 +220,110 @@
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
<p>Tells the delegate that the specified index is now selected.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight"><code><span class="kd">optional</span> <span class="kd">func</span> <span class="nf">circleMenu</span><span class="p">(</span><span class="nv">circleMenu</span><span class="p">:</span> <span class="kt">CircleMenu</span><span class="p">,</span> <span class="n">buttonDidSelected</span> <span class="nv">button</span><span class="p">:</span> <span class="kt">UIButton</span><span class="p">,</span> <span class="nv">atIndex</span><span class="p">:</span> <span class="kt">Int</span><span class="p">)</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>circleMenu</em>
</code>
</td>
<td>
<div>
<p>A circle menu object informing the delegate about the new index selection.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>button</em>
</code>
</td>
<td>
<div>
<p>A selected circle menu button. Don&rsquo;t change button.tag</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>atIndex</em>
</code>
</td>
<td>
<div>
<p>Selected button index</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:FP14CircleMenuDemo18CircleMenuDelegate13menuCollapsedFCS_10CircleMenuT_"></a>
<a name="//apple_ref/swift/Method/menuCollapsed(_:)" class="dashAnchor"></a>
<a class="token" href="#/s:FP14CircleMenuDemo18CircleMenuDelegate13menuCollapsedFCS_10CircleMenuT_">menuCollapsed(_:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Tells the delegate that the menu was collapsed - the cancel action.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight"><code><span class="kd">optional</span> <span class="kd">func</span> <span class="nf">menuCollapsed</span><span class="p">(</span><span class="nv">circleMenu</span><span class="p">:</span> <span class="kt">CircleMenu</span><span class="p">)</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>circleMenu</em>
</code>
</td>
<td>
<div>
<p>A circle menu object informing the delegate about the new index selection.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</section>
</div>
</li>
@@ -139,7 +332,7 @@
</section>
</section>
<section id="footer">
<p>&copy; 2016 <a class="link" href="https://github.com/Ramotion/circle-menu" target="_blank" rel="external">Juri Vasylenko</a>. All rights reserved. (Last updated: 2016-02-11)</p>
<p>&copy; 2016 <a class="link" href="https://github.com/Ramotion/circle-menu" target="_blank" rel="external">AlexKalinkin</a>. All rights reserved. (Last updated: 2016-06-27)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
@@ -1,166 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Classes Reference</title>
<link rel="stylesheet" type="text/css" href="css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="css/highlight.css" />
<meta charset='utf-8'>
<script src="js/jquery.min.js" defer></script>
<script src="js/jazzy.js" defer></script>
</head>
<body>
<a title="Classes Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="index.html">CircleMenu Docs</a> (3% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="index.html">CircleMenu Reference</a>
<img id="carat" src="img/carat.png" />
Classes Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Classes/CircleMenu.html">CircleMenu</a>
</li>
<li class="nav-group-task">
<a href="Classes/CircleMenuButton.html">CircleMenuButton</a>
</li>
<li class="nav-group-task">
<a href="Classes/CircleMenuLoader.html">CircleMenuLoader</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Extensions.html">Extensions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Extensions/UIView.html">UIView</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Functions.html">Functions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Functions.html#/s:F10CircleMenu4IniturFTq_5blockFT6objectq__T__q_">Init(_:block:)</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Protocols/CircleMenuDelegate.html">CircleMenuDelegate</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>Classes</h1>
<p>The following classes are available globally.</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:C10CircleMenu16CircleMenuButton"></a>
<a name="//apple_ref/swift/Class/CircleMenuButton" class="dashAnchor"></a>
<a class="token" href="#/s:C10CircleMenu16CircleMenuButton">CircleMenuButton</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
<a href="Classes/CircleMenuButton.html" class="slightly-smaller">See more</a>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:C10CircleMenu16CircleMenuLoader"></a>
<a name="//apple_ref/swift/Class/CircleMenuLoader" class="dashAnchor"></a>
<a class="token" href="#/s:C10CircleMenu16CircleMenuLoader">CircleMenuLoader</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
<a href="Classes/CircleMenuLoader.html" class="slightly-smaller">See more</a>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<div class="task-name-container">
<a name="/CircleMenu"></a>
<a name="//apple_ref/swift/Section/CircleMenu" class="dashAnchor"></a>
<a href="#/CircleMenu">
<h3 class="section-name">CircleMenu</h3>
</a>
</div>
<ul>
<li class="item">
<div>
<code>
<a name="/s:C10CircleMenu10CircleMenu"></a>
<a name="//apple_ref/swift/Class/CircleMenu" class="dashAnchor"></a>
<a class="token" href="#/s:C10CircleMenu10CircleMenu">CircleMenu</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
<a href="Classes/CircleMenu.html" class="slightly-smaller">See more</a>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2016 <a class="link" href="https://github.com/Ramotion/circle-menu" target="_blank" rel="external">Juri Vasylenko</a>. All rights reserved. (Last updated: 2016-02-11)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
@@ -1,273 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>CircleMenu Class Reference</title>
<link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../css/highlight.css" />
<meta charset='utf-8'>
<script src="../js/jquery.min.js" defer></script>
<script src="../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Class/CircleMenu" class="dashAnchor"></a>
<a title="CircleMenu Class Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../index.html">CircleMenu Docs</a> (3% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../index.html">CircleMenu Reference</a>
<img id="carat" src="../img/carat.png" />
CircleMenu Class Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Classes/CircleMenu.html">CircleMenu</a>
</li>
<li class="nav-group-task">
<a href="../Classes/CircleMenuButton.html">CircleMenuButton</a>
</li>
<li class="nav-group-task">
<a href="../Classes/CircleMenuLoader.html">CircleMenuLoader</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Extensions.html">Extensions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Extensions/UIView.html">UIView</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Functions.html">Functions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Functions.html#/s:F10CircleMenu4IniturFTq_5blockFT6objectq__T__q_">Init(_:block:)</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Protocols/CircleMenuDelegate.html">CircleMenuDelegate</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>CircleMenu</h1>
<p>Undocumented</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<div class="task-name-container">
<a name="/properties"></a>
<a name="//apple_ref/swift/Section/properties" class="dashAnchor"></a>
<a href="#/properties">
<h3 class="section-name">properties</h3>
</a>
</div>
<ul>
<li class="item">
<div>
<code>
<a name="/s:vC10CircleMenu10CircleMenu12buttonsCountSi"></a>
<a name="//apple_ref/swift/Property/buttonsCount" class="dashAnchor"></a>
<a class="token" href="#/s:vC10CircleMenu10CircleMenu12buttonsCountSi">buttonsCount</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:vC10CircleMenu10CircleMenu8durationSd"></a>
<a name="//apple_ref/swift/Property/duration" class="dashAnchor"></a>
<a class="token" href="#/s:vC10CircleMenu10CircleMenu8durationSd">duration</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:vC10CircleMenu10CircleMenu8distanceSf"></a>
<a name="//apple_ref/swift/Property/distance" class="dashAnchor"></a>
<a class="token" href="#/s:vC10CircleMenu10CircleMenu8distanceSf">distance</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:vC10CircleMenu10CircleMenu9showDelaySd"></a>
<a name="//apple_ref/swift/Property/showDelay" class="dashAnchor"></a>
<a class="token" href="#/s:vC10CircleMenu10CircleMenu9showDelaySd">showDelay</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:vC10CircleMenu10CircleMenu8delegateXwGSqPSs9AnyObject__"></a>
<a name="//apple_ref/swift/Property/delegate" class="dashAnchor"></a>
<a class="token" href="#/s:vC10CircleMenu10CircleMenu8delegateXwGSqPSs9AnyObject__">delegate</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<div class="task-name-container">
<a name="/life%20cycle"></a>
<a name="//apple_ref/swift/Section/life cycle" class="dashAnchor"></a>
<a href="#/life%20cycle">
<h3 class="section-name">life cycle</h3>
</a>
</div>
<ul>
<li class="item">
<div>
<code>
<a name="/s:FC10CircleMenu10CircleMenucFMS0_FT5frameVSC6CGRect10normalIconGSqSS_12selectedIconGSqSS_12buttonsCountSi8durationSd8distanceSf_S0_"></a>
<a name="//apple_ref/swift/Method/init(frame:normalIcon:selectedIcon:buttonsCount:duration:distance:)" class="dashAnchor"></a>
<a class="token" href="#/s:FC10CircleMenu10CircleMenucFMS0_FT5frameVSC6CGRect10normalIconGSqSS_12selectedIconGSqSS_12buttonsCountSi8durationSd8distanceSf_S0_">init(frame:normalIcon:selectedIcon:buttonsCount:duration:distance:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:FC10CircleMenu10CircleMenucFMS0_FT5coderCSo7NSCoder_GSqS0__"></a>
<a name="//apple_ref/swift/Method/init(coder:)" class="dashAnchor"></a>
<a class="token" href="#/s:FC10CircleMenu10CircleMenucFMS0_FT5coderCSo7NSCoder_GSqS0__">init(coder:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<div class="task-name-container">
<a name="/helpers"></a>
<a name="//apple_ref/swift/Section/helpers" class="dashAnchor"></a>
<a href="#/helpers">
<h3 class="section-name">helpers</h3>
</a>
</div>
<ul>
<li class="item">
<div>
<code>
<a name="/s:FC10CircleMenu10CircleMenu14buttonsIsShownFS0_FT_Sb"></a>
<a name="//apple_ref/swift/Method/buttonsIsShown()" class="dashAnchor"></a>
<a class="token" href="#/s:FC10CircleMenu10CircleMenu14buttonsIsShownFS0_FT_Sb">buttonsIsShown()</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2016 <a class="link" href="https://github.com/Ramotion/circle-menu" target="_blank" rel="external">Juri Vasylenko</a>. All rights reserved. (Last updated: 2016-02-11)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
@@ -1,269 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>CircleMenuButton Class Reference</title>
<link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../css/highlight.css" />
<meta charset='utf-8'>
<script src="../js/jquery.min.js" defer></script>
<script src="../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Class/CircleMenuButton" class="dashAnchor"></a>
<a title="CircleMenuButton Class Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../index.html">CircleMenu Docs</a> (3% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../index.html">CircleMenu Reference</a>
<img id="carat" src="../img/carat.png" />
CircleMenuButton Class Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Classes/CircleMenu.html">CircleMenu</a>
</li>
<li class="nav-group-task">
<a href="../Classes/CircleMenuButton.html">CircleMenuButton</a>
</li>
<li class="nav-group-task">
<a href="../Classes/CircleMenuLoader.html">CircleMenuLoader</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Extensions.html">Extensions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Extensions/UIView.html">UIView</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Functions.html">Functions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Functions.html#/s:F10CircleMenu4IniturFTq_5blockFT6objectq__T__q_">Init(_:block:)</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Protocols/CircleMenuDelegate.html">CircleMenuDelegate</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>CircleMenuButton</h1>
<p>Undocumented</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<div class="task-name-container">
<a name="/properties"></a>
<a name="//apple_ref/swift/Section/properties" class="dashAnchor"></a>
<a href="#/properties">
<h3 class="section-name">properties</h3>
</a>
</div>
<ul>
<li class="item">
<div>
<code>
<a name="/s:vC10CircleMenu16CircleMenuButton9containerXwGSqCSo6UIView_"></a>
<a name="//apple_ref/swift/Property/container" class="dashAnchor"></a>
<a class="token" href="#/s:vC10CircleMenu16CircleMenuButton9containerXwGSqCSo6UIView_">container</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<div class="task-name-container">
<a name="/life%20cycle"></a>
<a name="//apple_ref/swift/Section/life cycle" class="dashAnchor"></a>
<a href="#/life%20cycle">
<h3 class="section-name">life cycle</h3>
</a>
</div>
<ul>
<li class="item">
<div>
<code>
<a name="/s:FC10CircleMenu16CircleMenuButtoncFMS0_FT5coderCSo7NSCoder_GSqS0__"></a>
<a name="//apple_ref/swift/Method/init(coder:)" class="dashAnchor"></a>
<a class="token" href="#/s:FC10CircleMenu16CircleMenuButtoncFMS0_FT5coderCSo7NSCoder_GSqS0__">init(coder:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<div class="task-name-container">
<a name="/public%20"></a>
<a name="//apple_ref/swift/Section/public " class="dashAnchor"></a>
<a href="#/public%20">
<h3 class="section-name">public </h3>
</a>
</div>
<ul>
<li class="item">
<div>
<code>
<a name="/s:FC10CircleMenu16CircleMenuButton8rotatedZFS0_FT5angleSf8animatedSb8durationSd5delaySd_T_"></a>
<a name="//apple_ref/swift/Method/rotatedZ(angle:animated:duration:delay:)" class="dashAnchor"></a>
<a class="token" href="#/s:FC10CircleMenu16CircleMenuButton8rotatedZFS0_FT5angleSf8animatedSb8durationSd5delaySd_T_">rotatedZ(angle:animated:duration:delay:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:FC10CircleMenu16CircleMenuButton13showAnimationFS0_FT8distanceSf8durationSd5delaySd_T_"></a>
<a name="//apple_ref/swift/Method/showAnimation(distance:duration:delay:)" class="dashAnchor"></a>
<a class="token" href="#/s:FC10CircleMenu16CircleMenuButton13showAnimationFS0_FT8distanceSf8durationSd5delaySd_T_">showAnimation(distance:duration:delay:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:FC10CircleMenu16CircleMenuButton13hideAnimationFS0_FT8distanceSf8durationSd5delaySd_T_"></a>
<a name="//apple_ref/swift/Method/hideAnimation(distance:duration:delay:)" class="dashAnchor"></a>
<a class="token" href="#/s:FC10CircleMenu16CircleMenuButton13hideAnimationFS0_FT8distanceSf8durationSd5delaySd_T_">hideAnimation(distance:duration:delay:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:FC10CircleMenu16CircleMenuButton14changeDistanceFS0_FTV12CoreGraphics7CGFloat8animatedSb8durationSd5delaySd_T_"></a>
<a name="//apple_ref/swift/Method/changeDistance(_:animated:duration:delay:)" class="dashAnchor"></a>
<a class="token" href="#/s:FC10CircleMenu16CircleMenuButton14changeDistanceFS0_FTV12CoreGraphics7CGFloat8animatedSb8durationSd5delaySd_T_">changeDistance(_:animated:duration:delay:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<div class="task-name-container">
<a name="/layer%20animation"></a>
<a name="//apple_ref/swift/Section/layer animation" class="dashAnchor"></a>
<a href="#/layer%20animation">
<h3 class="section-name">layer animation</h3>
</a>
</div>
<ul>
<li class="item">
<div>
<code>
<a name="/s:FC10CircleMenu16CircleMenuButton22rotationLayerAnimationFS0_FTSf8durationSd_T_"></a>
<a name="//apple_ref/swift/Method/rotationLayerAnimation(_:duration:)" class="dashAnchor"></a>
<a class="token" href="#/s:FC10CircleMenu16CircleMenuButton22rotationLayerAnimationFS0_FTSf8durationSd_T_">rotationLayerAnimation(_:duration:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2016 <a class="link" href="https://github.com/Ramotion/circle-menu" target="_blank" rel="external">Juri Vasylenko</a>. All rights reserved. (Last updated: 2016-02-11)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
@@ -1,186 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>CircleMenuLoader Class Reference</title>
<link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../css/highlight.css" />
<meta charset='utf-8'>
<script src="../js/jquery.min.js" defer></script>
<script src="../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Class/CircleMenuLoader" class="dashAnchor"></a>
<a title="CircleMenuLoader Class Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../index.html">CircleMenu Docs</a> (3% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../index.html">CircleMenu Reference</a>
<img id="carat" src="../img/carat.png" />
CircleMenuLoader Class Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Classes/CircleMenu.html">CircleMenu</a>
</li>
<li class="nav-group-task">
<a href="../Classes/CircleMenuButton.html">CircleMenuButton</a>
</li>
<li class="nav-group-task">
<a href="../Classes/CircleMenuLoader.html">CircleMenuLoader</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Extensions.html">Extensions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Extensions/UIView.html">UIView</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Functions.html">Functions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Functions.html#/s:F10CircleMenu4IniturFTq_5blockFT6objectq__T__q_">Init(_:block:)</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Protocols/CircleMenuDelegate.html">CircleMenuDelegate</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>CircleMenuLoader</h1>
<p>Undocumented</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<div class="task-name-container">
<a name="/life%20cycle"></a>
<a name="//apple_ref/swift/Section/life cycle" class="dashAnchor"></a>
<a href="#/life%20cycle">
<h3 class="section-name">life cycle</h3>
</a>
</div>
<ul>
<li class="item">
<div>
<code>
<a name="/s:FC10CircleMenu16CircleMenuLoadercFMS0_FT6radiusV12CoreGraphics7CGFloat11strokeWidthS2_10circleMenuCS_10CircleMenu5colorGSqCSo7UIColor__S0_"></a>
<a name="//apple_ref/swift/Method/init(radius:strokeWidth:circleMenu:color:)" class="dashAnchor"></a>
<a class="token" href="#/s:FC10CircleMenu16CircleMenuLoadercFMS0_FT6radiusV12CoreGraphics7CGFloat11strokeWidthS2_10circleMenuCS_10CircleMenu5colorGSqCSo7UIColor__S0_">init(radius:strokeWidth:circleMenu:color:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:FC10CircleMenu16CircleMenuLoadercFMS0_FT5coderCSo7NSCoder_GSqS0__"></a>
<a name="//apple_ref/swift/Method/init(coder:)" class="dashAnchor"></a>
<a class="token" href="#/s:FC10CircleMenu16CircleMenuLoadercFMS0_FT5coderCSo7NSCoder_GSqS0__">init(coder:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<div class="task-name-container">
<a name="/animations"></a>
<a name="//apple_ref/swift/Section/animations" class="dashAnchor"></a>
<a href="#/animations">
<h3 class="section-name">animations</h3>
</a>
</div>
<ul>
<li class="item">
<div>
<code>
<a name="/s:FC10CircleMenu16CircleMenuLoader13fillAnimationFS0_FTSd10startAngleSf_T_"></a>
<a name="//apple_ref/swift/Method/fillAnimation(_:startAngle:)" class="dashAnchor"></a>
<a class="token" href="#/s:FC10CircleMenu16CircleMenuLoader13fillAnimationFS0_FTSd10startAngleSf_T_">fillAnimation(_:startAngle:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:FC10CircleMenu16CircleMenuLoader13hideAnimationFS0_FTV12CoreGraphics7CGFloat5delaySd_T_"></a>
<a name="//apple_ref/swift/Method/hideAnimation(_:delay:)" class="dashAnchor"></a>
<a class="token" href="#/s:FC10CircleMenu16CircleMenuLoader13hideAnimationFS0_FTV12CoreGraphics7CGFloat5delaySd_T_">hideAnimation(_:delay:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2016 <a class="link" href="https://github.com/Ramotion/circle-menu" target="_blank" rel="external">Juri Vasylenko</a>. All rights reserved. (Last updated: 2016-02-11)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
@@ -1,125 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Extensions Reference</title>
<link rel="stylesheet" type="text/css" href="css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="css/highlight.css" />
<meta charset='utf-8'>
<script src="js/jquery.min.js" defer></script>
<script src="js/jazzy.js" defer></script>
</head>
<body>
<a title="Extensions Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="index.html">CircleMenu Docs</a> (3% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="index.html">CircleMenu Reference</a>
<img id="carat" src="img/carat.png" />
Extensions Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Classes/CircleMenu.html">CircleMenu</a>
</li>
<li class="nav-group-task">
<a href="Classes/CircleMenuButton.html">CircleMenuButton</a>
</li>
<li class="nav-group-task">
<a href="Classes/CircleMenuLoader.html">CircleMenuLoader</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Extensions.html">Extensions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Extensions/UIView.html">UIView</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Functions.html">Functions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Functions.html#/s:F10CircleMenu4IniturFTq_5blockFT6objectq__T__q_">Init(_:block:)</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Protocols/CircleMenuDelegate.html">CircleMenuDelegate</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>Extensions</h1>
<p>The following extensions are available globally.</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<div class="task-name-container">
<a name="/Animations"></a>
<a name="//apple_ref/swift/Section/Animations" class="dashAnchor"></a>
<a href="#/Animations">
<h3 class="section-name">Animations</h3>
</a>
</div>
<ul>
<li class="item">
<div>
<code>
<a name="/c:objc(cs)UIView"></a>
<a name="//apple_ref/swift/Extension/UIView" class="dashAnchor"></a>
<a class="token" href="#/c:objc(cs)UIView">UIView</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<a href="Extensions/UIView.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight"><code><span class="kd">class</span> <span class="kt">UIView</span> <span class="p">:</span> <span class="kt">UIResponder</span><span class="p">,</span> <span class="kt">NSCoding</span><span class="p">,</span> <span class="kt">UIAppearance</span><span class="p">,</span> <span class="kt">UIAppearanceContainer</span><span class="p">,</span> <span class="kt">UIDynamicItem</span><span class="p">,</span> <span class="kt">UITraitEnvironment</span><span class="p">,</span> <span class="kt">UICoordinateSpace</span><span class="p">,</span> <span class="kt">UIFocusEnvironment</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2016 <a class="link" href="https://github.com/Ramotion/circle-menu" target="_blank" rel="external">Juri Vasylenko</a>. All rights reserved. (Last updated: 2016-02-11)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
@@ -1,124 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>UIView Extension Reference</title>
<link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../css/highlight.css" />
<meta charset='utf-8'>
<script src="../js/jquery.min.js" defer></script>
<script src="../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Extension/UIView" class="dashAnchor"></a>
<a title="UIView Extension Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../index.html">CircleMenu Docs</a> (3% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../index.html">CircleMenu Reference</a>
<img id="carat" src="../img/carat.png" />
UIView Extension Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Classes/CircleMenu.html">CircleMenu</a>
</li>
<li class="nav-group-task">
<a href="../Classes/CircleMenuButton.html">CircleMenuButton</a>
</li>
<li class="nav-group-task">
<a href="../Classes/CircleMenuLoader.html">CircleMenuLoader</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Extensions.html">Extensions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Extensions/UIView.html">UIView</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Functions.html">Functions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Functions.html#/s:F10CircleMenu4IniturFTq_5blockFT6objectq__T__q_">Init(_:block:)</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Protocols/CircleMenuDelegate.html">CircleMenuDelegate</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>UIView</h1>
<div class="declaration">
<div class="language">
<pre class="highlight"><code><span class="kd">class</span> <span class="kt">UIView</span> <span class="p">:</span> <span class="kt">UIResponder</span><span class="p">,</span> <span class="kt">NSCoding</span><span class="p">,</span> <span class="kt">UIAppearance</span><span class="p">,</span> <span class="kt">UIAppearanceContainer</span><span class="p">,</span> <span class="kt">UIDynamicItem</span><span class="p">,</span> <span class="kt">UITraitEnvironment</span><span class="p">,</span> <span class="kt">UICoordinateSpace</span><span class="p">,</span> <span class="kt">UIFocusEnvironment</span></code></pre>
</div>
</div>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:FE10CircleMenuCSo6UIView22rotationLayerAnimationFS0_FTS0_5angleSf8durationSd_T_"></a>
<a name="//apple_ref/swift/Method/rotationLayerAnimation(_:angle:duration:)" class="dashAnchor"></a>
<a class="token" href="#/s:FE10CircleMenuCSo6UIView22rotationLayerAnimationFS0_FTS0_5angleSf8durationSd_T_">rotationLayerAnimation(_:angle:duration:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight"><code><span class="kd">class</span> <span class="kt">UIView</span> <span class="p">:</span> <span class="kt">UIResponder</span><span class="p">,</span> <span class="kt">NSCoding</span><span class="p">,</span> <span class="kt">UIAppearance</span><span class="p">,</span> <span class="kt">UIAppearanceContainer</span><span class="p">,</span> <span class="kt">UIDynamicItem</span><span class="p">,</span> <span class="kt">UITraitEnvironment</span><span class="p">,</span> <span class="kt">UICoordinateSpace</span><span class="p">,</span> <span class="kt">UIFocusEnvironment</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2016 <a class="link" href="https://github.com/Ramotion/circle-menu" target="_blank" rel="external">Juri Vasylenko</a>. All rights reserved. (Last updated: 2016-02-11)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
@@ -1,117 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Functions Reference</title>
<link rel="stylesheet" type="text/css" href="css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="css/highlight.css" />
<meta charset='utf-8'>
<script src="js/jquery.min.js" defer></script>
<script src="js/jazzy.js" defer></script>
</head>
<body>
<a title="Functions Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="index.html">CircleMenu Docs</a> (3% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="index.html">CircleMenu Reference</a>
<img id="carat" src="img/carat.png" />
Functions Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Classes/CircleMenu.html">CircleMenu</a>
</li>
<li class="nav-group-task">
<a href="Classes/CircleMenuButton.html">CircleMenuButton</a>
</li>
<li class="nav-group-task">
<a href="Classes/CircleMenuLoader.html">CircleMenuLoader</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Extensions.html">Extensions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Extensions/UIView.html">UIView</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Functions.html">Functions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Functions.html#/s:F10CircleMenu4IniturFTq_5blockFT6objectq__T__q_">Init(_:block:)</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Protocols/CircleMenuDelegate.html">CircleMenuDelegate</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>Functions</h1>
<p>The following functions are available globally.</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<div class="task-name-container">
<a name="/helpers"></a>
<a name="//apple_ref/swift/Section/helpers" class="dashAnchor"></a>
<a href="#/helpers">
<h3 class="section-name">helpers</h3>
</a>
</div>
<ul>
<li class="item">
<div>
<code>
<a name="/s:F10CircleMenu4IniturFTq_5blockFT6objectq__T__q_"></a>
<a name="//apple_ref/swift/Function/Init(_:block:)" class="dashAnchor"></a>
<a class="token" href="#/s:F10CircleMenu4IniturFTq_5blockFT6objectq__T__q_">Init(_:block:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2016 <a class="link" href="https://github.com/Ramotion/circle-menu" target="_blank" rel="external">Juri Vasylenko</a>. All rights reserved. (Last updated: 2016-02-11)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
@@ -1,149 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>CircleMenuDelegate Protocol Reference</title>
<link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../css/highlight.css" />
<meta charset='utf-8'>
<script src="../js/jquery.min.js" defer></script>
<script src="../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Protocol/CircleMenuDelegate" class="dashAnchor"></a>
<a title="CircleMenuDelegate Protocol Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../index.html">CircleMenu Docs</a> (3% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../index.html">CircleMenu Reference</a>
<img id="carat" src="../img/carat.png" />
CircleMenuDelegate Protocol Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Classes/CircleMenu.html">CircleMenu</a>
</li>
<li class="nav-group-task">
<a href="../Classes/CircleMenuButton.html">CircleMenuButton</a>
</li>
<li class="nav-group-task">
<a href="../Classes/CircleMenuLoader.html">CircleMenuLoader</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Extensions.html">Extensions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Extensions/UIView.html">UIView</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Functions.html">Functions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Functions.html#/s:F10CircleMenu4IniturFTq_5blockFT6objectq__T__q_">Init(_:block:)</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Protocols/CircleMenuDelegate.html">CircleMenuDelegate</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>CircleMenuDelegate</h1>
<p>Undocumented</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:FP10CircleMenu18CircleMenuDelegate10circleMenuuRq_S0__Fq_FTCS_10CircleMenu11willDisplayCS_16CircleMenuButton7atIndexSi_T_"></a>
<a name="//apple_ref/swift/Method/circleMenu(_:willDisplay:atIndex:)" class="dashAnchor"></a>
<a class="token" href="#/s:FP10CircleMenu18CircleMenuDelegate10circleMenuuRq_S0__Fq_FTCS_10CircleMenu11willDisplayCS_16CircleMenuButton7atIndexSi_T_">circleMenu(_:willDisplay:atIndex:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:FP10CircleMenu18CircleMenuDelegate10circleMenuuRq_S0__Fq_FTCS_10CircleMenu18buttonWillSelectedCS_16CircleMenuButton7atIndexSi_T_"></a>
<a name="//apple_ref/swift/Method/circleMenu(_:buttonWillSelected:atIndex:)" class="dashAnchor"></a>
<a class="token" href="#/s:FP10CircleMenu18CircleMenuDelegate10circleMenuuRq_S0__Fq_FTCS_10CircleMenu18buttonWillSelectedCS_16CircleMenuButton7atIndexSi_T_">circleMenu(_:buttonWillSelected:atIndex:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:FP10CircleMenu18CircleMenuDelegate10circleMenuuRq_S0__Fq_FTCS_10CircleMenu17buttonDidSelectedCS_16CircleMenuButton7atIndexSi_T_"></a>
<a name="//apple_ref/swift/Method/circleMenu(_:buttonDidSelected:atIndex:)" class="dashAnchor"></a>
<a class="token" href="#/s:FP10CircleMenu18CircleMenuDelegate10circleMenuuRq_S0__Fq_FTCS_10CircleMenu17buttonDidSelectedCS_16CircleMenuButton7atIndexSi_T_">circleMenu(_:buttonDidSelected:atIndex:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2016 <a class="link" href="https://github.com/Ramotion/circle-menu" target="_blank" rel="external">Juri Vasylenko</a>. All rights reserved. (Last updated: 2016-02-11)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
@@ -1,37 +0,0 @@
CircleMenuButton.swift
public class CircleMenuButton: UIButton
public weak var container: UIView?
required public init?(coder aDecoder: NSCoder)
public func rotatedZ(angle angle: Float, animated: Bool, duration: Double = 0, delay: Double = 0)
public class CircleMenuButton : UIButton
public func showAnimation(distance distance: Float, duration: Double, delay: Double = 0)
public func hideAnimation(distance distance: Float, duration: Double, delay: Double = 0)
public func changeDistance(distance: CGFloat, animated: Bool, duration: Double = 0, delay: Double = 0)
public func rotationLayerAnimation(angle: Float, duration: Double)
public func rotationLayerAnimation(view: UIView, angle: Float, duration: Double)
CircleMenuLoader.swift
public class CircleMenuLoader: UIView
public init(radius: CGFloat, strokeWidth: CGFloat, circleMenu: CircleMenu, color: UIColor?)
required public init?(coder aDecoder: NSCoder)
public func fillAnimation(duration: Double, startAngle: Float)
public func hideAnimation(duration: CGFloat, delay: Double)
CircleMenu.swift
public func Init<Type>(value: Type, @noescape block: (object: Type) -> Void) -> Type
@objc public protocol CircleMenuDelegate
optional func circleMenu(circleMenu: CircleMenu, willDisplay button: CircleMenuButton, atIndex: Int)
optional func circleMenu(circleMenu: CircleMenu, buttonWillSelected button: CircleMenuButton, atIndex: Int)
optional func circleMenu(circleMenu: CircleMenu, buttonDidSelected button: CircleMenuButton, atIndex: Int)
public class CircleMenu: UIButton
@IBInspectable public var buttonsCount: Int = 3
@IBInspectable public var duration: Double = 2 // circle animation duration
@IBInspectable public var distance: Float = 100 // distance between center button and buttons
@IBInspectable public var showDelay: Double = 0 // delay between show buttons
@IBOutlet weak public var delegate: AnyObject? //CircleMenuDelegate
public init(frame: CGRect,
normalIcon: String?,
selectedIcon: String?,
buttonsCount: Int = 3,
duration: Double = 2,
distance: Float = 100)
required public init?(coder aDecoder: NSCoder)
public func buttonsIsShown() -> Bool
Binary file not shown.
@@ -3,9 +3,9 @@
<plist version="1.0">
<dict>
<key>CFBundleIdentifier</key>
<string>com.jazzy.circlemenu</string>
<string>com.jazzy.circlemenudemo</string>
<key>CFBundleName</key>
<string>CircleMenu</string>
<string>CircleMenuDemo</string>
<key>DocSetPlatformFamily</key>
<string>jazzy</string>
<key>isDashDocset</key>
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Functions Reference</title>
<title>Classes Reference</title>
<link rel="stylesheet" type="text/css" href="css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="css/highlight.css" />
<meta charset='utf-8'>
@@ -10,17 +10,17 @@
</head>
<body>
<a title="Functions Reference"></a>
<a title="Classes Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="index.html">CircleMenu Docs</a> (3% documented)</p>
<p><a href="index.html">CircleMenuDemo Docs</a> (87% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="index.html">CircleMenu Reference</a>
<a href="index.html">CircleMenuDemo Reference</a>
<img id="carat" src="img/carat.png" />
Functions Reference
Classes Reference
</p>
</div>
<div class="content-wrapper">
@@ -32,28 +32,6 @@
<li class="nav-group-task">
<a href="Classes/CircleMenu.html">CircleMenu</a>
</li>
<li class="nav-group-task">
<a href="Classes/CircleMenuButton.html">CircleMenuButton</a>
</li>
<li class="nav-group-task">
<a href="Classes/CircleMenuLoader.html">CircleMenuLoader</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Extensions.html">Extensions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Extensions/UIView.html">UIView</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Functions.html">Functions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Functions.html#/s:F10CircleMenu4IniturFTq_5blockFT6objectq__T__q_">Init(_:block:)</a>
</li>
</ul>
</li>
<li class="nav-group-name">
@@ -69,26 +47,26 @@
<article class="main-content">
<section>
<section class="section">
<h1>Functions</h1>
<p>The following functions are available globally.</p>
<h1>Classes</h1>
<p>The following classes are available globally.</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<div class="task-name-container">
<a name="/helpers"></a>
<a name="//apple_ref/swift/Section/helpers" class="dashAnchor"></a>
<a href="#/helpers">
<h3 class="section-name">helpers</h3>
<a name="/CircleMenu"></a>
<a name="//apple_ref/swift/Section/CircleMenu" class="dashAnchor"></a>
<a href="#/CircleMenu">
<h3 class="section-name">CircleMenu</h3>
</a>
</div>
<ul>
<li class="item">
<div>
<code>
<a name="/s:F10CircleMenu4IniturFTq_5blockFT6objectq__T__q_"></a>
<a name="//apple_ref/swift/Function/Init(_:block:)" class="dashAnchor"></a>
<a class="token" href="#/s:F10CircleMenu4IniturFTq_5blockFT6objectq__T__q_">Init(_:block:)</a>
<a name="/s:C14CircleMenuDemo10CircleMenu"></a>
<a name="//apple_ref/swift/Class/CircleMenu" class="dashAnchor"></a>
<a class="token" href="#/s:C14CircleMenuDemo10CircleMenu">CircleMenu</a>
</code>
</div>
<div class="height-container">
@@ -96,8 +74,17 @@
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
<p>A Button object with pop ups buttons</p>
<a href="Classes/CircleMenu.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">CircleMenu</span><span class="p">:</span> <span class="kt">UIButton</span></code></pre>
</div>
</div>
</section>
</div>
@@ -107,7 +94,7 @@
</section>
</section>
<section id="footer">
<p>&copy; 2016 <a class="link" href="https://github.com/Ramotion/circle-menu" target="_blank" rel="external">Juri Vasylenko</a>. All rights reserved. (Last updated: 2016-02-11)</p>
<p>&copy; 2016 <a class="link" href="https://github.com/Ramotion/circle-menu" target="_blank" rel="external">AlexKalinkin</a>. All rights reserved. (Last updated: 2016-06-27)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
@@ -0,0 +1,445 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>CircleMenu Class Reference</title>
<link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../css/highlight.css" />
<meta charset='utf-8'>
<script src="../js/jquery.min.js" defer></script>
<script src="../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Class/CircleMenu" class="dashAnchor"></a>
<a title="CircleMenu Class Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../index.html">CircleMenuDemo Docs</a> (87% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../index.html">CircleMenuDemo Reference</a>
<img id="carat" src="../img/carat.png" />
CircleMenu Class Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Classes/CircleMenu.html">CircleMenu</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Protocols/CircleMenuDelegate.html">CircleMenuDelegate</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>CircleMenu</h1>
<div class="declaration">
<div class="language">
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">CircleMenu</span><span class="p">:</span> <span class="kt">UIButton</span></code></pre>
</div>
</div>
<p>A Button object with pop ups buttons</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<div class="task-name-container">
<a name="/properties"></a>
<a name="//apple_ref/swift/Section/properties" class="dashAnchor"></a>
<a href="#/properties">
<h3 class="section-name">properties</h3>
</a>
</div>
<ul>
<li class="item">
<div>
<code>
<a name="/s:vC14CircleMenuDemo10CircleMenu12buttonsCountSi"></a>
<a name="//apple_ref/swift/Property/buttonsCount" class="dashAnchor"></a>
<a class="token" href="#/s:vC14CircleMenuDemo10CircleMenu12buttonsCountSi">buttonsCount</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Buttons count</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight"><code><span class="kd">@IBInspectable</span> <span class="kd">public</span> <span class="k">var</span> <span class="nv">buttonsCount</span><span class="p">:</span> <span class="kt">Int</span> <span class="o">=</span> <span class="mi">3</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:vC14CircleMenuDemo10CircleMenu8durationSd"></a>
<a name="//apple_ref/swift/Property/duration" class="dashAnchor"></a>
<a class="token" href="#/s:vC14CircleMenuDemo10CircleMenu8durationSd">duration</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Circle animation duration</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight"><code><span class="kd">@IBInspectable</span> <span class="kd">public</span> <span class="k">var</span> <span class="nv">duration</span><span class="p">:</span> <span class="kt">Double</span> <span class="o">=</span> <span class="mi">2</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:vC14CircleMenuDemo10CircleMenu8distanceSf"></a>
<a name="//apple_ref/swift/Property/distance" class="dashAnchor"></a>
<a class="token" href="#/s:vC14CircleMenuDemo10CircleMenu8distanceSf">distance</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Distance between center button and buttons</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight"><code><span class="kd">@IBInspectable</span> <span class="kd">public</span> <span class="k">var</span> <span class="nv">distance</span><span class="p">:</span> <span class="kt">Float</span> <span class="o">=</span> <span class="mi">100</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:vC14CircleMenuDemo10CircleMenu9showDelaySd"></a>
<a name="//apple_ref/swift/Property/showDelay" class="dashAnchor"></a>
<a class="token" href="#/s:vC14CircleMenuDemo10CircleMenu9showDelaySd">showDelay</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Delay between show buttons</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight"><code><span class="kd">@IBInspectable</span> <span class="kd">public</span> <span class="k">var</span> <span class="nv">showDelay</span><span class="p">:</span> <span class="kt">Double</span> <span class="o">=</span> <span class="mi">0</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:vC14CircleMenuDemo10CircleMenu8delegateXwGSqPs9AnyObject__"></a>
<a name="//apple_ref/swift/Property/delegate" class="dashAnchor"></a>
<a class="token" href="#/s:vC14CircleMenuDemo10CircleMenu8delegateXwGSqPs9AnyObject__">delegate</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The object that acts as the delegate of the circle menu.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight"><code><span class="kd">@IBOutlet</span> <span class="k">weak</span> <span class="kd">public</span> <span class="k">var</span> <span class="nv">delegate</span><span class="p">:</span> <span class="kt">AnyObject</span><span class="p">?</span> <span class="c1">//CircleMenuDelegate?</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<div class="task-name-container">
<a name="/life%20cycle"></a>
<a name="//apple_ref/swift/Section/life cycle" class="dashAnchor"></a>
<a href="#/life%20cycle">
<h3 class="section-name">life cycle</h3>
</a>
</div>
<ul>
<li class="item">
<div>
<code>
<a name="/s:FC14CircleMenuDemo10CircleMenucFT5frameVSC6CGRect10normalIconGSqSS_12selectedIconGSqSS_12buttonsCountSi8durationSd8distanceSf_S0_"></a>
<a name="//apple_ref/swift/Method/init(frame:normalIcon:selectedIcon:buttonsCount:duration:distance:)" class="dashAnchor"></a>
<a class="token" href="#/s:FC14CircleMenuDemo10CircleMenucFT5frameVSC6CGRect10normalIconGSqSS_12selectedIconGSqSS_12buttonsCountSi8durationSd8distanceSf_S0_">init(frame:normalIcon:selectedIcon:buttonsCount:duration:distance:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Initializes and returns a circle menu object.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight"><code><span class="kd">public</span> <span class="nf">init</span><span class="p">(</span><span class="nv">frame</span><span class="p">:</span> <span class="kt">CGRect</span><span class="p">,</span> <span class="nv">normalIcon</span><span class="p">:</span> <span class="kt">String</span><span class="p">?,</span> <span class="nv">selectedIcon</span><span class="p">:</span> <span class="kt">String</span><span class="p">?,</span> <span class="nv">buttonsCount</span><span class="p">:</span> <span class="kt">Int</span> <span class="o">=</span> <span class="mi">3</span><span class="p">,</span> <span class="nv">duration</span><span class="p">:</span> <span class="kt">Double</span> <span class="o">=</span> <span class="mi">2</span><span class="p">,</span>
<span class="nv">distance</span><span class="p">:</span> <span class="kt">Float</span> <span class="o">=</span> <span class="mi">100</span><span class="p">)</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>frame</em>
</code>
</td>
<td>
<div>
<p>A rectangle specifying the initial location and size of the circle menu in its superview’€™s coordinates.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>normalIcon</em>
</code>
</td>
<td>
<div>
<p>The image to use for the specified normal state.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>selectedIcon</em>
</code>
</td>
<td>
<div>
<p>The image to use for the specified selected state.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>buttonsCount</em>
</code>
</td>
<td>
<div>
<p>The number of buttons.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>duration</em>
</code>
</td>
<td>
<div>
<p>The duration, in seconds, of the animation.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>distance</em>
</code>
</td>
<td>
<div>
<p>Distance between center button and sub buttons.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div>
<h4>Return Value</h4>
<p>A newly created circle menu.</p>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<div class="task-name-container">
<a name="/methods"></a>
<a name="//apple_ref/swift/Section/methods" class="dashAnchor"></a>
<a href="#/methods">
<h3 class="section-name">methods</h3>
</a>
</div>
<ul>
<li class="item">
<div>
<code>
<a name="/s:FC14CircleMenuDemo10CircleMenu11hideButtonsFTSd9hideDelaySd_T_"></a>
<a name="//apple_ref/swift/Method/hideButtons(_:hideDelay:)" class="dashAnchor"></a>
<a class="token" href="#/s:FC14CircleMenuDemo10CircleMenu11hideButtonsFTSd9hideDelaySd_T_">hideButtons(_:hideDelay:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Hide button</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">hideButtons</span><span class="p">(</span><span class="nv">duration</span><span class="p">:</span> <span class="kt">Double</span><span class="p">,</span> <span class="nv">hideDelay</span><span class="p">:</span> <span class="kt">Double</span> <span class="o">=</span> <span class="mi">0</span><span class="p">)</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>duration</em>
</code>
</td>
<td>
<div>
<p>The duration, in seconds, of the animation.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>hideDelay</em>
</code>
</td>
<td>
<div>
<p>The time to delay, in seconds.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:FC14CircleMenuDemo10CircleMenu14buttonsIsShownFT_Sb"></a>
<a name="//apple_ref/swift/Method/buttonsIsShown()" class="dashAnchor"></a>
<a class="token" href="#/s:FC14CircleMenuDemo10CircleMenu14buttonsIsShownFT_Sb">buttonsIsShown()</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Check is sub buttons showed</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">buttonsIsShown</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="kt">Bool</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2016 <a class="link" href="https://github.com/Ramotion/circle-menu" target="_blank" rel="external">AlexKalinkin</a>. All rights reserved. (Last updated: 2016-06-27)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>
@@ -13,12 +13,12 @@
<a title="Protocols Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="index.html">CircleMenu Docs</a> (3% documented)</p>
<p><a href="index.html">CircleMenuDemo Docs</a> (87% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="index.html">CircleMenu Reference</a>
<a href="index.html">CircleMenuDemo Reference</a>
<img id="carat" src="img/carat.png" />
Protocols Reference
</p>
@@ -32,28 +32,6 @@
<li class="nav-group-task">
<a href="Classes/CircleMenu.html">CircleMenu</a>
</li>
<li class="nav-group-task">
<a href="Classes/CircleMenuButton.html">CircleMenuButton</a>
</li>
<li class="nav-group-task">
<a href="Classes/CircleMenuLoader.html">CircleMenuLoader</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Extensions.html">Extensions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Extensions/UIView.html">UIView</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Functions.html">Functions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Functions.html#/s:F10CircleMenu4IniturFTq_5blockFT6objectq__T__q_">Init(_:block:)</a>
</li>
</ul>
</li>
<li class="nav-group-name">
@@ -76,19 +54,19 @@
<section class="section task-group-section">
<div class="task-group">
<div class="task-name-container">
<a name="/Protocol%20"></a>
<a name="//apple_ref/swift/Section/Protocol " class="dashAnchor"></a>
<a href="#/Protocol%20">
<h3 class="section-name">Protocol </h3>
<a name="/Protocol"></a>
<a name="//apple_ref/swift/Section/Protocol" class="dashAnchor"></a>
<a href="#/Protocol">
<h3 class="section-name">Protocol</h3>
</a>
</div>
<ul>
<li class="item">
<div>
<code>
<a name="/s:P10CircleMenu18CircleMenuDelegate"></a>
<a name="/s:P14CircleMenuDemo18CircleMenuDelegate"></a>
<a name="//apple_ref/swift/Protocol/CircleMenuDelegate" class="dashAnchor"></a>
<a class="token" href="#/s:P10CircleMenu18CircleMenuDelegate">CircleMenuDelegate</a>
<a class="token" href="#/s:P14CircleMenuDemo18CircleMenuDelegate">CircleMenuDelegate</a>
</code>
</div>
<div class="height-container">
@@ -96,10 +74,18 @@
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
<p>CircleMenuDelegate</p>
<a href="Protocols/CircleMenuDelegate.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight"><code><span class="kd">@objc</span> <span class="kd">public</span> <span class="kd">protocol</span> <span class="kt">CircleMenuDelegate</span></code></pre>
</div>
</div>
</section>
</div>
</li>
@@ -108,7 +94,7 @@
</section>
</section>
<section id="footer">
<p>&copy; 2016 <a class="link" href="https://github.com/Ramotion/circle-menu" target="_blank" rel="external">Juri Vasylenko</a>. All rights reserved. (Last updated: 2016-02-11)</p>
<p>&copy; 2016 <a class="link" href="https://github.com/Ramotion/circle-menu" target="_blank" rel="external">AlexKalinkin</a>. All rights reserved. (Last updated: 2016-06-27)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
@@ -0,0 +1,342 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>CircleMenuDelegate Protocol Reference</title>
<link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../css/highlight.css" />
<meta charset='utf-8'>
<script src="../js/jquery.min.js" defer></script>
<script src="../js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Protocol/CircleMenuDelegate" class="dashAnchor"></a>
<a title="CircleMenuDelegate Protocol Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="../index.html">CircleMenuDemo Docs</a> (87% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="../index.html">CircleMenuDemo Reference</a>
<img id="carat" src="../img/carat.png" />
CircleMenuDelegate Protocol Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Classes/CircleMenu.html">CircleMenu</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="../Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="../Protocols/CircleMenuDelegate.html">CircleMenuDelegate</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>CircleMenuDelegate</h1>
<div class="declaration">
<div class="language">
<pre class="highlight"><code><span class="kd">@objc</span> <span class="kd">public</span> <span class="kd">protocol</span> <span class="kt">CircleMenuDelegate</span></code></pre>
</div>
</div>
<p>CircleMenuDelegate</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:FP14CircleMenuDemo18CircleMenuDelegate10circleMenuFTCS_10CircleMenu11willDisplayCSo8UIButton7atIndexSi_T_"></a>
<a name="//apple_ref/swift/Method/circleMenu(_:willDisplay:atIndex:)" class="dashAnchor"></a>
<a class="token" href="#/s:FP14CircleMenuDemo18CircleMenuDelegate10circleMenuFTCS_10CircleMenu11willDisplayCSo8UIButton7atIndexSi_T_">circleMenu(_:willDisplay:atIndex:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Tells the delegate the circle menu is about to draw a button for a particular index.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight"><code><span class="kd">optional</span> <span class="kd">func</span> <span class="nf">circleMenu</span><span class="p">(</span><span class="nv">circleMenu</span><span class="p">:</span> <span class="kt">CircleMenu</span><span class="p">,</span> <span class="n">willDisplay</span> <span class="nv">button</span><span class="p">:</span> <span class="kt">UIButton</span><span class="p">,</span> <span class="nv">atIndex</span><span class="p">:</span> <span class="kt">Int</span><span class="p">)</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>circleMenu</em>
</code>
</td>
<td>
<div>
<p>The circle menu object informing the delegate of this impending event.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>button</em>
</code>
</td>
<td>
<div>
<p>A circle menu button object that circle menu is going to use when drawing the row. Don&rsquo;t change button.tag</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>atIndex</em>
</code>
</td>
<td>
<div>
<p>An button index.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:FP14CircleMenuDemo18CircleMenuDelegate10circleMenuFTCS_10CircleMenu18buttonWillSelectedCSo8UIButton7atIndexSi_T_"></a>
<a name="//apple_ref/swift/Method/circleMenu(_:buttonWillSelected:atIndex:)" class="dashAnchor"></a>
<a class="token" href="#/s:FP14CircleMenuDemo18CircleMenuDelegate10circleMenuFTCS_10CircleMenu18buttonWillSelectedCSo8UIButton7atIndexSi_T_">circleMenu(_:buttonWillSelected:atIndex:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Tells the delegate that a specified index is about to be selected.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight"><code><span class="kd">optional</span> <span class="kd">func</span> <span class="nf">circleMenu</span><span class="p">(</span><span class="nv">circleMenu</span><span class="p">:</span> <span class="kt">CircleMenu</span><span class="p">,</span> <span class="n">buttonWillSelected</span> <span class="nv">button</span><span class="p">:</span> <span class="kt">UIButton</span><span class="p">,</span> <span class="nv">atIndex</span><span class="p">:</span> <span class="kt">Int</span><span class="p">)</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>circleMenu</em>
</code>
</td>
<td>
<div>
<p>A circle menu object informing the delegate about the impending selection.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>button</em>
</code>
</td>
<td>
<div>
<p>A selected circle menu button. Don&rsquo;t change button.tag</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>atIndex</em>
</code>
</td>
<td>
<div>
<p>Selected button index</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:FP14CircleMenuDemo18CircleMenuDelegate10circleMenuFTCS_10CircleMenu17buttonDidSelectedCSo8UIButton7atIndexSi_T_"></a>
<a name="//apple_ref/swift/Method/circleMenu(_:buttonDidSelected:atIndex:)" class="dashAnchor"></a>
<a class="token" href="#/s:FP14CircleMenuDemo18CircleMenuDelegate10circleMenuFTCS_10CircleMenu17buttonDidSelectedCSo8UIButton7atIndexSi_T_">circleMenu(_:buttonDidSelected:atIndex:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Tells the delegate that the specified index is now selected.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight"><code><span class="kd">optional</span> <span class="kd">func</span> <span class="nf">circleMenu</span><span class="p">(</span><span class="nv">circleMenu</span><span class="p">:</span> <span class="kt">CircleMenu</span><span class="p">,</span> <span class="n">buttonDidSelected</span> <span class="nv">button</span><span class="p">:</span> <span class="kt">UIButton</span><span class="p">,</span> <span class="nv">atIndex</span><span class="p">:</span> <span class="kt">Int</span><span class="p">)</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>circleMenu</em>
</code>
</td>
<td>
<div>
<p>A circle menu object informing the delegate about the new index selection.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>button</em>
</code>
</td>
<td>
<div>
<p>A selected circle menu button. Don&rsquo;t change button.tag</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>atIndex</em>
</code>
</td>
<td>
<div>
<p>Selected button index</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:FP14CircleMenuDemo18CircleMenuDelegate13menuCollapsedFCS_10CircleMenuT_"></a>
<a name="//apple_ref/swift/Method/menuCollapsed(_:)" class="dashAnchor"></a>
<a class="token" href="#/s:FP14CircleMenuDemo18CircleMenuDelegate13menuCollapsedFCS_10CircleMenuT_">menuCollapsed(_:)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Tells the delegate that the menu was collapsed - the cancel action.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight"><code><span class="kd">optional</span> <span class="kd">func</span> <span class="nf">menuCollapsed</span><span class="p">(</span><span class="nv">circleMenu</span><span class="p">:</span> <span class="kt">CircleMenu</span><span class="p">)</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>circleMenu</em>
</code>
</td>
<td>
<div>
<p>A circle menu object informing the delegate about the new index selection.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2016 <a class="link" href="https://github.com/Ramotion/circle-menu" target="_blank" rel="external">AlexKalinkin</a>. All rights reserved. (Last updated: 2016-06-27)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>CircleMenu Reference</title>
<title>CircleMenuDemo Reference</title>
<link rel="stylesheet" type="text/css" href="css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="css/highlight.css" />
<meta charset='utf-8'>
@@ -10,17 +10,17 @@
</head>
<body>
<a title="CircleMenu Reference"></a>
<a title="CircleMenuDemo Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="index.html">CircleMenu Docs</a> (3% documented)</p>
<p><a href="index.html">CircleMenuDemo Docs</a> (87% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="index.html">CircleMenu Reference</a>
<a href="index.html">CircleMenuDemo Reference</a>
<img id="carat" src="img/carat.png" />
CircleMenu Reference
CircleMenuDemo Reference
</p>
</div>
<div class="content-wrapper">
@@ -32,28 +32,6 @@
<li class="nav-group-task">
<a href="Classes/CircleMenu.html">CircleMenu</a>
</li>
<li class="nav-group-task">
<a href="Classes/CircleMenuButton.html">CircleMenuButton</a>
</li>
<li class="nav-group-task">
<a href="Classes/CircleMenuLoader.html">CircleMenuLoader</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Extensions.html">Extensions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Extensions/UIView.html">UIView</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Functions.html">Functions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Functions.html#/s:F10CircleMenu4IniturFTq_5blockFT6objectq__T__q_">Init(_:block:)</a>
</li>
</ul>
</li>
<li class="nav-group-name">
@@ -70,23 +48,39 @@
<section>
<section class="section">
<p><a href="http://twitter.com/Ramotion"><img src="https://img.shields.io/badge/Twitter-@Ramotion-blue.svg?style=flat" alt="Twitter"></a>
<p><img src="./header.png" alt="header"></p>
<a href='#circlemenu' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h1 id='circlemenu'>CircleMenu</h1>
<p><a href="http://twitter.com/Ramotion"><img src="https://img.shields.io/badge/Twitter-@Ramotion-blue.svg?style=flat" alt="Twitter"></a>
<a href="https://cocoapods.org/pods/CircleMenu"><img src="https://img.shields.io/cocoapods/p/CircleMenu.svg" alt="CocoaPods"></a>
<a href="http://cocoapods.org/pods/CircleMenu"><img src="https://img.shields.io/cocoapods/v/CircleMenu.svg" alt="CocoaPods"></a></p>
<a href='#circle_menu' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h1 id='circle_menu'>circle-menu</h1>
<a href="http://cocoapods.org/pods/CircleMenu"><img src="https://img.shields.io/cocoapods/v/CircleMenu.svg" alt="CocoaPods"></a>
<a href="https://cdn.rawgit.com/Ramotion/circle-menu/master/docs/index.html"><img src="https://img.shields.io/cocoapods/metrics/doc-percent/CircleMenu.svg" alt="CocoaPods"></a>
<a href="https://github.com/Ramotion/circle-menu"><img src="https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat" alt="Carthage compatible"></a>
<a href="https://codebeat.co/projects/github-com-ramotion-circle-menu"><img src="https://codebeat.co/badges/6f67da5d-c416-4bac-9fb7-c2dc938feedc" alt="codebeat badge"></a>
<a href="https://travis-ci.org/Ramotion/circle-menu"><img src="https://img.shields.io/travis/Ramotion/circle-menu.svg" alt="Travis"></a></p>
<p><a href="https://dribbble.com/shots/2534780-Circle-Menu-Swift-Open-Source">shot on dribbble:</a>
<img src="./preview.gif" alt="preview"></p>
<p>The <a href="https://store.ramotion.com/product/iphone-6-mockups?utm_source=gthb&amp;utm_medium=special&amp;utm_campaign=circle-menu">iPhone mockup</a> available <a href="https://store.ramotion.com/product/iphone-6-mockups?utm_source=gthb&amp;utm_medium=special&amp;utm_campaign=circle-menu">here</a>.</p>
<a href='#requirements' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='requirements'>Requirements</h2>
<ul>
<li>iOS 8.0+</li>
<li>Xcode 7.2</li>
<li>Xcode 7.3</li>
</ul>
<a href='#installation' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='installation'>Installation</h2>
<p>Just add CircleMenuLib folder to your project.</p>
<p>or use <a href="https://cocoapods.org">CocoaPods</a> with Podfile:</p>
<pre class="highlight ruby"><code><span class="n">pod</span> <span class="s1">'CircleMenu'</span><span class="p">,</span> <span class="s1">'~&gt; 0.0.5'</span>
<pre class="highlight ruby"><code><span class="n">pod</span> <span class="s1">'CircleMenu'</span><span class="p">,</span> <span class="s1">'~&gt; 1.0.0'</span>
</code></pre>
<p>or <a href="https://github.com/Carthage/Carthage">Carthage</a> users can simply add to their <code>Cartfile</code>:
<code>
github &quot;Ramotion/circle-menu&quot;
</code></p>
<a href='#usage' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='usage'>Usage</h2>
<a href='#with_storyboard' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h5 id='with_storyboard'>with storyboard</h5>
@@ -124,10 +118,13 @@
<span class="c1">// call after animation</span>
<span class="kd">optional</span> <span class="kd">func</span> <span class="nf">circleMenu</span><span class="p">(</span><span class="nv">circleMenu</span><span class="p">:</span> <span class="kt">CircleMenu</span><span class="p">,</span> <span class="n">buttonDidSelected</span> <span class="nv">button</span><span class="p">:</span> <span class="kt">CircleMenuButton</span><span class="p">,</span> <span class="nv">atIndex</span><span class="p">:</span> <span class="kt">Int</span><span class="p">)</span>
<span class="c1">// call upon cancel of the menu</span>
<span class="kd">optional</span> <span class="kd">func</span> <span class="nf">menuCollapsed</span><span class="p">(</span><span class="nv">circleMenu</span><span class="p">:</span> <span class="kt">CircleMenu</span><span class="p">)</span>
</code></pre>
<a href='#licence' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='licence'>Licence</h2>
<p>Adaptive tab bar is released under the MIT license.
<p>Circle menu is released under the MIT license.
See <a href="./LICENSE">LICENSE</a> for details.</p>
<a href='#about' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='about'>About</h2>
@@ -140,7 +137,7 @@ See our other <a href="https://github.com/ramotion">open-source projects</a> or
</section>
</section>
<section id="footer">
<p>&copy; 2016 <a class="link" href="https://github.com/Ramotion/circle-menu" target="_blank" rel="external">Juri Vasylenko</a>. All rights reserved. (Last updated: 2016-02-11)</p>
<p>&copy; 2016 <a class="link" href="https://github.com/Ramotion/circle-menu" target="_blank" rel="external">AlexKalinkin</a>. All rights reserved. (Last updated: 2016-06-27)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
@@ -0,0 +1,4 @@
CircleMenuButton.swift
internal class CircleMenuButton : UIButton
CircleMenu.swift
required public init?(coder aDecoder: NSCoder)
Binary file not shown.
+31 -34
View File
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>CircleMenu Reference</title>
<title>CircleMenuDemo Reference</title>
<link rel="stylesheet" type="text/css" href="css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="css/highlight.css" />
<meta charset='utf-8'>
@@ -10,17 +10,17 @@
</head>
<body>
<a title="CircleMenu Reference"></a>
<a title="CircleMenuDemo Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="index.html">CircleMenu Docs</a> (3% documented)</p>
<p><a href="index.html">CircleMenuDemo Docs</a> (87% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="index.html">CircleMenu Reference</a>
<a href="index.html">CircleMenuDemo Reference</a>
<img id="carat" src="img/carat.png" />
CircleMenu Reference
CircleMenuDemo Reference
</p>
</div>
<div class="content-wrapper">
@@ -32,28 +32,6 @@
<li class="nav-group-task">
<a href="Classes/CircleMenu.html">CircleMenu</a>
</li>
<li class="nav-group-task">
<a href="Classes/CircleMenuButton.html">CircleMenuButton</a>
</li>
<li class="nav-group-task">
<a href="Classes/CircleMenuLoader.html">CircleMenuLoader</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Extensions.html">Extensions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Extensions/UIView.html">UIView</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Functions.html">Functions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Functions.html#/s:F10CircleMenu4IniturFTq_5blockFT6objectq__T__q_">Init(_:block:)</a>
</li>
</ul>
</li>
<li class="nav-group-name">
@@ -70,23 +48,39 @@
<section>
<section class="section">
<p><a href="http://twitter.com/Ramotion"><img src="https://img.shields.io/badge/Twitter-@Ramotion-blue.svg?style=flat" alt="Twitter"></a>
<p><img src="./header.png" alt="header"></p>
<a href='#circlemenu' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h1 id='circlemenu'>CircleMenu</h1>
<p><a href="http://twitter.com/Ramotion"><img src="https://img.shields.io/badge/Twitter-@Ramotion-blue.svg?style=flat" alt="Twitter"></a>
<a href="https://cocoapods.org/pods/CircleMenu"><img src="https://img.shields.io/cocoapods/p/CircleMenu.svg" alt="CocoaPods"></a>
<a href="http://cocoapods.org/pods/CircleMenu"><img src="https://img.shields.io/cocoapods/v/CircleMenu.svg" alt="CocoaPods"></a></p>
<a href='#circle_menu' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h1 id='circle_menu'>circle-menu</h1>
<a href="http://cocoapods.org/pods/CircleMenu"><img src="https://img.shields.io/cocoapods/v/CircleMenu.svg" alt="CocoaPods"></a>
<a href="https://cdn.rawgit.com/Ramotion/circle-menu/master/docs/index.html"><img src="https://img.shields.io/cocoapods/metrics/doc-percent/CircleMenu.svg" alt="CocoaPods"></a>
<a href="https://github.com/Ramotion/circle-menu"><img src="https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat" alt="Carthage compatible"></a>
<a href="https://codebeat.co/projects/github-com-ramotion-circle-menu"><img src="https://codebeat.co/badges/6f67da5d-c416-4bac-9fb7-c2dc938feedc" alt="codebeat badge"></a>
<a href="https://travis-ci.org/Ramotion/circle-menu"><img src="https://img.shields.io/travis/Ramotion/circle-menu.svg" alt="Travis"></a></p>
<p><a href="https://dribbble.com/shots/2534780-Circle-Menu-Swift-Open-Source">shot on dribbble:</a>
<img src="./preview.gif" alt="preview"></p>
<p>The <a href="https://store.ramotion.com/product/iphone-6-mockups?utm_source=gthb&amp;utm_medium=special&amp;utm_campaign=circle-menu">iPhone mockup</a> available <a href="https://store.ramotion.com/product/iphone-6-mockups?utm_source=gthb&amp;utm_medium=special&amp;utm_campaign=circle-menu">here</a>.</p>
<a href='#requirements' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='requirements'>Requirements</h2>
<ul>
<li>iOS 8.0+</li>
<li>Xcode 7.2</li>
<li>Xcode 7.3</li>
</ul>
<a href='#installation' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='installation'>Installation</h2>
<p>Just add CircleMenuLib folder to your project.</p>
<p>or use <a href="https://cocoapods.org">CocoaPods</a> with Podfile:</p>
<pre class="highlight ruby"><code><span class="n">pod</span> <span class="s1">'CircleMenu'</span><span class="p">,</span> <span class="s1">'~&gt; 0.0.5'</span>
<pre class="highlight ruby"><code><span class="n">pod</span> <span class="s1">'CircleMenu'</span><span class="p">,</span> <span class="s1">'~&gt; 1.0.0'</span>
</code></pre>
<p>or <a href="https://github.com/Carthage/Carthage">Carthage</a> users can simply add to their <code>Cartfile</code>:
<code>
github &quot;Ramotion/circle-menu&quot;
</code></p>
<a href='#usage' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='usage'>Usage</h2>
<a href='#with_storyboard' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h5 id='with_storyboard'>with storyboard</h5>
@@ -124,10 +118,13 @@
<span class="c1">// call after animation</span>
<span class="kd">optional</span> <span class="kd">func</span> <span class="nf">circleMenu</span><span class="p">(</span><span class="nv">circleMenu</span><span class="p">:</span> <span class="kt">CircleMenu</span><span class="p">,</span> <span class="n">buttonDidSelected</span> <span class="nv">button</span><span class="p">:</span> <span class="kt">CircleMenuButton</span><span class="p">,</span> <span class="nv">atIndex</span><span class="p">:</span> <span class="kt">Int</span><span class="p">)</span>
<span class="c1">// call upon cancel of the menu</span>
<span class="kd">optional</span> <span class="kd">func</span> <span class="nf">menuCollapsed</span><span class="p">(</span><span class="nv">circleMenu</span><span class="p">:</span> <span class="kt">CircleMenu</span><span class="p">)</span>
</code></pre>
<a href='#licence' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='licence'>Licence</h2>
<p>Adaptive tab bar is released under the MIT license.
<p>Circle menu is released under the MIT license.
See <a href="./LICENSE">LICENSE</a> for details.</p>
<a href='#about' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='about'>About</h2>
@@ -140,7 +137,7 @@ See our other <a href="https://github.com/ramotion">open-source projects</a> or
</section>
</section>
<section id="footer">
<p>&copy; 2016 <a class="link" href="https://github.com/Ramotion/circle-menu" target="_blank" rel="external">Juri Vasylenko</a>. All rights reserved. (Last updated: 2016-02-11)</p>
<p>&copy; 2016 <a class="link" href="https://github.com/Ramotion/circle-menu" target="_blank" rel="external">AlexKalinkin</a>. All rights reserved. (Last updated: 2016-06-27)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
+1 -34
View File
@@ -1,37 +1,4 @@
CircleMenuButton.swift
public class CircleMenuButton: UIButton
public weak var container: UIView?
required public init?(coder aDecoder: NSCoder)
public func rotatedZ(angle angle: Float, animated: Bool, duration: Double = 0, delay: Double = 0)
public class CircleMenuButton : UIButton
public func showAnimation(distance distance: Float, duration: Double, delay: Double = 0)
public func hideAnimation(distance distance: Float, duration: Double, delay: Double = 0)
public func changeDistance(distance: CGFloat, animated: Bool, duration: Double = 0, delay: Double = 0)
public func rotationLayerAnimation(angle: Float, duration: Double)
public func rotationLayerAnimation(view: UIView, angle: Float, duration: Double)
CircleMenuLoader.swift
public class CircleMenuLoader: UIView
public init(radius: CGFloat, strokeWidth: CGFloat, circleMenu: CircleMenu, color: UIColor?)
required public init?(coder aDecoder: NSCoder)
public func fillAnimation(duration: Double, startAngle: Float)
public func hideAnimation(duration: CGFloat, delay: Double)
internal class CircleMenuButton : UIButton
CircleMenu.swift
public func Init<Type>(value: Type, @noescape block: (object: Type) -> Void) -> Type
@objc public protocol CircleMenuDelegate
optional func circleMenu(circleMenu: CircleMenu, willDisplay button: CircleMenuButton, atIndex: Int)
optional func circleMenu(circleMenu: CircleMenu, buttonWillSelected button: CircleMenuButton, atIndex: Int)
optional func circleMenu(circleMenu: CircleMenu, buttonDidSelected button: CircleMenuButton, atIndex: Int)
public class CircleMenu: UIButton
@IBInspectable public var buttonsCount: Int = 3
@IBInspectable public var duration: Double = 2 // circle animation duration
@IBInspectable public var distance: Float = 100 // distance between center button and buttons
@IBInspectable public var showDelay: Double = 0 // delay between show buttons
@IBOutlet weak public var delegate: AnyObject? //CircleMenuDelegate
public init(frame: CGRect,
normalIcon: String?,
selectedIcon: String?,
buttonsCount: Int = 3,
duration: Double = 2,
distance: Float = 100)
required public init?(coder aDecoder: NSCoder)
public func buttonsIsShown() -> Bool
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 16 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB