From 9aa6028ad10c95f06b57bbf16a850450eee49ccd Mon Sep 17 00:00:00 2001 From: sgr-ksmt Date: Wed, 26 Apr 2017 14:20:32 +0900 Subject: [PATCH] Setup project. --- .swift-version | 1 + Alertift.podspec | 13 + Alertift.xcodeproj/project.pbxproj | 337 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/xcschemes/Alertift.xcscheme | 80 +++++ Alertift.xcworkspace/contents.xcworkspacedata | 10 + Alertift/Alertift.h | 19 + Alertift/Info.plist | 24 ++ Demo/Demo.xcodeproj/project.pbxproj | 329 +++++++++++++++++ Demo/Demo/AppDelegate.swift | 15 + .../AppIcon.appiconset/Contents.json | 38 ++ Demo/Demo/Base.lproj/LaunchScreen.storyboard | 27 ++ Demo/Demo/Base.lproj/Main.storyboard | 70 ++++ Demo/Demo/Info.plist | 38 ++ Demo/Demo/ViewController.swift | 109 ++++++ Documents/img1.png | Bin 0 -> 14239 bytes Documents/img2.png | Bin 0 -> 10727 bytes Documents/img3.png | Bin 0 -> 17876 bytes Documents/img4.png | Bin 0 -> 23261 bytes Documents/img5.png | Bin 0 -> 34235 bytes README.md | 166 ++++++++- Sources/Action.swift | 48 +++ Sources/ActionSheet.swift | 43 +++ Sources/Alert.swift | 99 +++++ Sources/AlertBase.swift | 66 ++++ Sources/Alertift.swift | 51 +++ Sources/InnerAlertController.swift | 73 ++++ 27 files changed, 1662 insertions(+), 1 deletion(-) create mode 100644 .swift-version create mode 100644 Alertift.podspec create mode 100644 Alertift.xcodeproj/project.pbxproj create mode 100644 Alertift.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 Alertift.xcodeproj/xcshareddata/xcschemes/Alertift.xcscheme create mode 100644 Alertift.xcworkspace/contents.xcworkspacedata create mode 100644 Alertift/Alertift.h create mode 100644 Alertift/Info.plist create mode 100644 Demo/Demo.xcodeproj/project.pbxproj create mode 100644 Demo/Demo/AppDelegate.swift create mode 100644 Demo/Demo/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 Demo/Demo/Base.lproj/LaunchScreen.storyboard create mode 100644 Demo/Demo/Base.lproj/Main.storyboard create mode 100644 Demo/Demo/Info.plist create mode 100644 Demo/Demo/ViewController.swift create mode 100644 Documents/img1.png create mode 100644 Documents/img2.png create mode 100644 Documents/img3.png create mode 100644 Documents/img4.png create mode 100644 Documents/img5.png create mode 100644 Sources/Action.swift create mode 100644 Sources/ActionSheet.swift create mode 100644 Sources/Alert.swift create mode 100644 Sources/AlertBase.swift create mode 100644 Sources/Alertift.swift create mode 100644 Sources/InnerAlertController.swift diff --git a/.swift-version b/.swift-version new file mode 100644 index 0000000..8c50098 --- /dev/null +++ b/.swift-version @@ -0,0 +1 @@ +3.1 diff --git a/Alertift.podspec b/Alertift.podspec new file mode 100644 index 0000000..a29d1d8 --- /dev/null +++ b/Alertift.podspec @@ -0,0 +1,13 @@ +Pod::Spec.new do |s| + s.name = "Alertift" + s.version = "1.0" + s.summary = "UIAlertControlelr wrapper for Swift." + s.homepage = "https://github.com/sgr-ksmt/Alertift" + # s.screenshots = "" + s.license = 'MIT' + s.author = { "Suguru Kishimoto" => "melodydance.k.s@gmail.com" } + s.source = { :git => "https://github.com/sgr-ksmt/Alertift.git", :tag => s.version.to_s } + s.platform = :ios, '9.0' + s.requires_arc = true + s.source_files = "Sources/**/*" +end diff --git a/Alertift.xcodeproj/project.pbxproj b/Alertift.xcodeproj/project.pbxproj new file mode 100644 index 0000000..3b2926a --- /dev/null +++ b/Alertift.xcodeproj/project.pbxproj @@ -0,0 +1,337 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 4D13C7721EB064EF007BBB43 /* Alertift.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D13C7701EB064EF007BBB43 /* Alertift.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4D13C7B11EB22B8F007BBB43 /* Action.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D13C7AB1EB22B8F007BBB43 /* Action.swift */; }; + 4D13C7B21EB22B8F007BBB43 /* ActionSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D13C7AC1EB22B8F007BBB43 /* ActionSheet.swift */; }; + 4D13C7B31EB22B8F007BBB43 /* Alert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D13C7AD1EB22B8F007BBB43 /* Alert.swift */; }; + 4D13C7B41EB22B8F007BBB43 /* AlertBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D13C7AE1EB22B8F007BBB43 /* AlertBase.swift */; }; + 4D13C7B51EB22B8F007BBB43 /* Alertift.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D13C7AF1EB22B8F007BBB43 /* Alertift.swift */; }; + 4D13C7B61EB22B8F007BBB43 /* InnerAlertController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D13C7B01EB22B8F007BBB43 /* InnerAlertController.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 4D13C76D1EB064EF007BBB43 /* Alertift.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Alertift.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 4D13C7701EB064EF007BBB43 /* Alertift.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Alertift.h; sourceTree = ""; }; + 4D13C7711EB064EF007BBB43 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 4D13C7AB1EB22B8F007BBB43 /* Action.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Action.swift; sourceTree = ""; }; + 4D13C7AC1EB22B8F007BBB43 /* ActionSheet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ActionSheet.swift; sourceTree = ""; }; + 4D13C7AD1EB22B8F007BBB43 /* Alert.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Alert.swift; sourceTree = ""; }; + 4D13C7AE1EB22B8F007BBB43 /* AlertBase.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AlertBase.swift; sourceTree = ""; }; + 4D13C7AF1EB22B8F007BBB43 /* Alertift.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Alertift.swift; sourceTree = ""; }; + 4D13C7B01EB22B8F007BBB43 /* InnerAlertController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InnerAlertController.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 4D13C7691EB064EF007BBB43 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 4D13C7631EB064EF007BBB43 = { + isa = PBXGroup; + children = ( + 4D13C7AA1EB22B8E007BBB43 /* Sources */, + 4D13C76F1EB064EF007BBB43 /* Alertift */, + 4D13C76E1EB064EF007BBB43 /* Products */, + ); + sourceTree = ""; + }; + 4D13C76E1EB064EF007BBB43 /* Products */ = { + isa = PBXGroup; + children = ( + 4D13C76D1EB064EF007BBB43 /* Alertift.framework */, + ); + name = Products; + sourceTree = ""; + }; + 4D13C76F1EB064EF007BBB43 /* Alertift */ = { + isa = PBXGroup; + children = ( + 4D13C7701EB064EF007BBB43 /* Alertift.h */, + 4D13C7711EB064EF007BBB43 /* Info.plist */, + ); + path = Alertift; + sourceTree = ""; + }; + 4D13C7AA1EB22B8E007BBB43 /* Sources */ = { + isa = PBXGroup; + children = ( + 4D13C7AB1EB22B8F007BBB43 /* Action.swift */, + 4D13C7AC1EB22B8F007BBB43 /* ActionSheet.swift */, + 4D13C7AD1EB22B8F007BBB43 /* Alert.swift */, + 4D13C7AE1EB22B8F007BBB43 /* AlertBase.swift */, + 4D13C7AF1EB22B8F007BBB43 /* Alertift.swift */, + 4D13C7B01EB22B8F007BBB43 /* InnerAlertController.swift */, + ); + path = Sources; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 4D13C76A1EB064EF007BBB43 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 4D13C7721EB064EF007BBB43 /* Alertift.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 4D13C76C1EB064EF007BBB43 /* Alertift */ = { + isa = PBXNativeTarget; + buildConfigurationList = 4D13C7751EB064EF007BBB43 /* Build configuration list for PBXNativeTarget "Alertift" */; + buildPhases = ( + 4D13C7681EB064EF007BBB43 /* Sources */, + 4D13C7691EB064EF007BBB43 /* Frameworks */, + 4D13C76A1EB064EF007BBB43 /* Headers */, + 4D13C76B1EB064EF007BBB43 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Alertift; + productName = Alertift; + productReference = 4D13C76D1EB064EF007BBB43 /* Alertift.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 4D13C7641EB064EF007BBB43 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0830; + ORGANIZATIONNAME = "Suguru Kishimoto"; + TargetAttributes = { + 4D13C76C1EB064EF007BBB43 = { + CreatedOnToolsVersion = 8.3.2; + LastSwiftMigration = 0830; + ProvisioningStyle = Automatic; + }; + }; + }; + buildConfigurationList = 4D13C7671EB064EF007BBB43 /* Build configuration list for PBXProject "Alertift" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = 4D13C7631EB064EF007BBB43; + productRefGroup = 4D13C76E1EB064EF007BBB43 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 4D13C76C1EB064EF007BBB43 /* Alertift */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 4D13C76B1EB064EF007BBB43 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 4D13C7681EB064EF007BBB43 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4D13C7B31EB22B8F007BBB43 /* Alert.swift in Sources */, + 4D13C7B61EB22B8F007BBB43 /* InnerAlertController.swift in Sources */, + 4D13C7B41EB22B8F007BBB43 /* AlertBase.swift in Sources */, + 4D13C7B11EB22B8F007BBB43 /* Action.swift in Sources */, + 4D13C7B51EB22B8F007BBB43 /* Alertift.swift in Sources */, + 4D13C7B21EB22B8F007BBB43 /* ActionSheet.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 4D13C7731EB064EF007BBB43 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 4D13C7741EB064EF007BBB43 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 4D13C7761EB064EF007BBB43 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Alertift/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "-.Alertift"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 3.0; + }; + name = Debug; + }; + 4D13C7771EB064EF007BBB43 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Alertift/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "-.Alertift"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_VERSION = 3.0; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 4D13C7671EB064EF007BBB43 /* Build configuration list for PBXProject "Alertift" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4D13C7731EB064EF007BBB43 /* Debug */, + 4D13C7741EB064EF007BBB43 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 4D13C7751EB064EF007BBB43 /* Build configuration list for PBXNativeTarget "Alertift" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4D13C7761EB064EF007BBB43 /* Debug */, + 4D13C7771EB064EF007BBB43 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 4D13C7641EB064EF007BBB43 /* Project object */; +} diff --git a/Alertift.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Alertift.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..1fc797f --- /dev/null +++ b/Alertift.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Alertift.xcodeproj/xcshareddata/xcschemes/Alertift.xcscheme b/Alertift.xcodeproj/xcshareddata/xcschemes/Alertift.xcscheme new file mode 100644 index 0000000..6cd1c3d --- /dev/null +++ b/Alertift.xcodeproj/xcshareddata/xcschemes/Alertift.xcscheme @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Alertift.xcworkspace/contents.xcworkspacedata b/Alertift.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..b997a39 --- /dev/null +++ b/Alertift.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/Alertift/Alertift.h b/Alertift/Alertift.h new file mode 100644 index 0000000..434c085 --- /dev/null +++ b/Alertift/Alertift.h @@ -0,0 +1,19 @@ +// +// Alertift.h +// Alertift +// +// Created by Suguru Kishimoto on 4/26/17. +// Copyright © 2017 Suguru Kishimoto. All rights reserved. +// + +#import + +//! Project version number for Alertift. +FOUNDATION_EXPORT double AlertiftVersionNumber; + +//! Project version string for Alertift. +FOUNDATION_EXPORT const unsigned char AlertiftVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/Alertift/Info.plist b/Alertift/Info.plist new file mode 100644 index 0000000..fbe1e6b --- /dev/null +++ b/Alertift/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + NSPrincipalClass + + + diff --git a/Demo/Demo.xcodeproj/project.pbxproj b/Demo/Demo.xcodeproj/project.pbxproj new file mode 100644 index 0000000..bd07837 --- /dev/null +++ b/Demo/Demo.xcodeproj/project.pbxproj @@ -0,0 +1,329 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 4D13C7851EB06535007BBB43 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D13C7841EB06535007BBB43 /* AppDelegate.swift */; }; + 4D13C7871EB06535007BBB43 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D13C7861EB06535007BBB43 /* ViewController.swift */; }; + 4D13C78A1EB06535007BBB43 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4D13C7881EB06535007BBB43 /* Main.storyboard */; }; + 4D13C78C1EB06535007BBB43 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 4D13C78B1EB06535007BBB43 /* Assets.xcassets */; }; + 4D13C78F1EB06535007BBB43 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4D13C78D1EB06535007BBB43 /* LaunchScreen.storyboard */; }; + 4D13C79D1EB18FB2007BBB43 /* Alertift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D13C79C1EB18FB2007BBB43 /* Alertift.framework */; }; + 4D13C79E1EB18FB2007BBB43 /* Alertift.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4D13C79C1EB18FB2007BBB43 /* Alertift.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 4D13C79F1EB18FB2007BBB43 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + 4D13C79E1EB18FB2007BBB43 /* Alertift.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 4D13C7811EB06535007BBB43 /* Demo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Demo.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 4D13C7841EB06535007BBB43 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 4D13C7861EB06535007BBB43 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; + 4D13C7891EB06535007BBB43 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 4D13C78B1EB06535007BBB43 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 4D13C78E1EB06535007BBB43 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 4D13C7901EB06535007BBB43 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 4D13C79C1EB18FB2007BBB43 /* Alertift.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Alertift.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 4D13C77E1EB06535007BBB43 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 4D13C79D1EB18FB2007BBB43 /* Alertift.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 4D13C7781EB06535007BBB43 = { + isa = PBXGroup; + children = ( + 4D13C79C1EB18FB2007BBB43 /* Alertift.framework */, + 4D13C7831EB06535007BBB43 /* Demo */, + 4D13C7821EB06535007BBB43 /* Products */, + ); + sourceTree = ""; + }; + 4D13C7821EB06535007BBB43 /* Products */ = { + isa = PBXGroup; + children = ( + 4D13C7811EB06535007BBB43 /* Demo.app */, + ); + name = Products; + sourceTree = ""; + }; + 4D13C7831EB06535007BBB43 /* Demo */ = { + isa = PBXGroup; + children = ( + 4D13C7841EB06535007BBB43 /* AppDelegate.swift */, + 4D13C7861EB06535007BBB43 /* ViewController.swift */, + 4D13C7881EB06535007BBB43 /* Main.storyboard */, + 4D13C78B1EB06535007BBB43 /* Assets.xcassets */, + 4D13C78D1EB06535007BBB43 /* LaunchScreen.storyboard */, + 4D13C7901EB06535007BBB43 /* Info.plist */, + ); + path = Demo; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 4D13C7801EB06535007BBB43 /* Demo */ = { + isa = PBXNativeTarget; + buildConfigurationList = 4D13C7931EB06535007BBB43 /* Build configuration list for PBXNativeTarget "Demo" */; + buildPhases = ( + 4D13C77D1EB06535007BBB43 /* Sources */, + 4D13C77E1EB06535007BBB43 /* Frameworks */, + 4D13C77F1EB06535007BBB43 /* Resources */, + 4D13C79F1EB18FB2007BBB43 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Demo; + productName = Demo; + productReference = 4D13C7811EB06535007BBB43 /* Demo.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 4D13C7791EB06535007BBB43 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0830; + LastUpgradeCheck = 0830; + ORGANIZATIONNAME = "Suguru Kishimoto"; + TargetAttributes = { + 4D13C7801EB06535007BBB43 = { + CreatedOnToolsVersion = 8.3.2; + ProvisioningStyle = Automatic; + }; + }; + }; + buildConfigurationList = 4D13C77C1EB06535007BBB43 /* Build configuration list for PBXProject "Demo" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 4D13C7781EB06535007BBB43; + productRefGroup = 4D13C7821EB06535007BBB43 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 4D13C7801EB06535007BBB43 /* Demo */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 4D13C77F1EB06535007BBB43 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4D13C78F1EB06535007BBB43 /* LaunchScreen.storyboard in Resources */, + 4D13C78C1EB06535007BBB43 /* Assets.xcassets in Resources */, + 4D13C78A1EB06535007BBB43 /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 4D13C77D1EB06535007BBB43 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4D13C7871EB06535007BBB43 /* ViewController.swift in Sources */, + 4D13C7851EB06535007BBB43 /* AppDelegate.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 4D13C7881EB06535007BBB43 /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 4D13C7891EB06535007BBB43 /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 4D13C78D1EB06535007BBB43 /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 4D13C78E1EB06535007BBB43 /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 4D13C7911EB06535007BBB43 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 4D13C7921EB06535007BBB43 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 4D13C7941EB06535007BBB43 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + INFOPLIST_FILE = Demo/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "-.alertift.Demo"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 3.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 4D13C7951EB06535007BBB43 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + INFOPLIST_FILE = Demo/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "-.alertift.Demo"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 3.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 4D13C77C1EB06535007BBB43 /* Build configuration list for PBXProject "Demo" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4D13C7911EB06535007BBB43 /* Debug */, + 4D13C7921EB06535007BBB43 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 4D13C7931EB06535007BBB43 /* Build configuration list for PBXNativeTarget "Demo" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4D13C7941EB06535007BBB43 /* Debug */, + 4D13C7951EB06535007BBB43 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 4D13C7791EB06535007BBB43 /* Project object */; +} diff --git a/Demo/Demo/AppDelegate.swift b/Demo/Demo/AppDelegate.swift new file mode 100644 index 0000000..61687c5 --- /dev/null +++ b/Demo/Demo/AppDelegate.swift @@ -0,0 +1,15 @@ +// +// AppDelegate.swift +// Demo +// +// Created by Suguru Kishimoto on 4/26/17. +// Copyright © 2017 Suguru Kishimoto. All rights reserved. +// + +import UIKit + +@UIApplicationMain +class AppDelegate: UIResponder, UIApplicationDelegate { + var window: UIWindow? +} + diff --git a/Demo/Demo/Assets.xcassets/AppIcon.appiconset/Contents.json b/Demo/Demo/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..118c98f --- /dev/null +++ b/Demo/Demo/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,38 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Demo/Demo/Base.lproj/LaunchScreen.storyboard b/Demo/Demo/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..fdf3f97 --- /dev/null +++ b/Demo/Demo/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Demo/Demo/Base.lproj/Main.storyboard b/Demo/Demo/Base.lproj/Main.storyboard new file mode 100644 index 0000000..dfb7dca --- /dev/null +++ b/Demo/Demo/Base.lproj/Main.storyboard @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Demo/Demo/Info.plist b/Demo/Demo/Info.plist new file mode 100644 index 0000000..38e98af --- /dev/null +++ b/Demo/Demo/Info.plist @@ -0,0 +1,38 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/Demo/Demo/ViewController.swift b/Demo/Demo/ViewController.swift new file mode 100644 index 0000000..0e9f5bf --- /dev/null +++ b/Demo/Demo/ViewController.swift @@ -0,0 +1,109 @@ +// +// ViewController.swift +// Demo +// +// Created by Suguru Kishimoto on 4/26/17. +// Copyright © 2017 Suguru Kishimoto. All rights reserved. +// + +import UIKit +import Alertift + +class ViewController: UIViewController { + + @IBOutlet private var buttons: [UIButton]! { + didSet { + buttons.enumerated().forEach { index, button in + button.tag = index + button.addTarget(self, action: #selector(buttonDidTap(_:)), for: .touchUpInside) + } + } + } + private enum AlertType: Int { + case simple + case yesOrNo + case login + case actionsheet + } + + @objc private func buttonDidTap(_ button: UIButton) { + guard let type = AlertType(rawValue: button.tag) else { + return + } + + switch type { + case .simple: + showSimpleAlert() + case .yesOrNo: + showYesOrNoAlert() + case .login: + showLoginAlert() + case .actionsheet: + showActionSheet(source: self.view, frame: button.frame) + } + } + + private func showSimpleAlert() { + Alertift.alert(title: "Sample 1", message: "Simple alert!") + .action(.default("OK")) + .show() + } + + private func showYesOrNoAlert() { + Alertift.alert(title: "Sample 2",message: "Do you like 🍣?") + .action(.default("Yes"), isPreferred: true) { + Alertift.alert(message: "🍣🍣🍣") + .action(.default("Close")) + .show() + } + .action(.cancel("No")) { + Alertift.alert(message: "😂😂😂") + .action(.destructive("Close")) + .show() + } + .show() + } + + private func showLoginAlert() { + Alertift.alert(title: "Sign in", message: "Input your ID and Password") + .textField { textField in + textField.placeholder = "ID" + } + .textField { textField in + textField.placeholder = "Password" + textField.isSecureTextEntry = true + } + .handleTextFieldTextDidChange { textField, index in + let text = textField.text ?? "" + print("\(index), \(text)") + } + .action(.cancel("Cancel")) + .action(.default("Sign in"), textFieldsHandler: { textFields in + let id = textFields?.first?.text ?? "" + let password = textFields?.last?.text ?? "" + Alertift.alert(title: "Sign in successfully", message: "ID: \(id)\nPassword: \(password)") + .action(.default("OK")) + .show() + }) + .show() + } + private func showActionSheet(source: UIView, frame: CGRect) { + Alertift.actionSheet(message: "Which food do you like?") + .popover(sourceView: source, sourceRect: frame) + .action(.default("🍣")) + .action(.default("🍎")) + .action(.default("🍖")) + .action(.default("🍅")) + .action(.cancel("None of them")) + .finally { action, index in + if action.style == .cancel { + return + } + Alertift.alert(message: "\(index). \(action.title!)") + .action(.default("OK")) + .show() + } + .show() + } +} + diff --git a/Documents/img1.png b/Documents/img1.png new file mode 100644 index 0000000000000000000000000000000000000000..8b37c65d309048d3236f7f8479012a7137f462d6 GIT binary patch literal 14239 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 S<>!|&Qs3ppDn)+&`ab|ttO}I? literal 0 HcmV?d00001 diff --git a/Documents/img2.png b/Documents/img2.png new file mode 100644 index 0000000000000000000000000000000000000000..011663ab4eeb7e8aba9527b3b41811edcc641e67 GIT binary patch literal 10727 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

`TBOf+25QG9hLaIZ2x&M~_BWZ}DrKey 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 Z`Y#9BpDy&*)&?D~;OXk;vd$@?2>|QoTE+kX literal 0 HcmV?d00001 diff --git a/Documents/img4.png b/Documents/img4.png new file mode 100644 index 0000000000000000000000000000000000000000..a32d7d403f10c61ef62cd632ec7c11b07114485b GIT binary patch literal 23261 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 literal 0 HcmV?d00001 diff --git a/Documents/img5.png b/Documents/img5.png new file mode 100644 index 0000000000000000000000000000000000000000..0fd7950fc095aa4180849030d8956e8565d731fe GIT binary patch literal 34235 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 kayKALzw+ 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 E0L{n0`~Uy| literal 0 HcmV?d00001 diff --git a/README.md b/README.md index 8531e85..3b932fa 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,166 @@ # Alertift -UIAlertController wrapper for Swift. +UIAlertControlelr wrapper for Swift + +[![GitHub release](https://img.shields.io/github/release/sgr-ksmt/Alertift.svg)](https://github.com/sgr-ksmt/Alertift/releases) +![Language](https://img.shields.io/badge/language-Swift%203-orange.svg) +[![Carthage Compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) +[![CocoaPods](https://img.shields.io/badge/Cocoa%20Pods-✓-4BC51D.svg?style=flat)](https://cocoapods.org/pods/Alertift) +[![CocoaPodsDL](https://img.shields.io/cocoapods/dt/Alertift.svg)](https://cocoapods.org/pods/Alertift) +[![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/matteocrippa/awesome-swift#ui) + + +```swift +Alertift.alert(title: "Confirm", message: "Delete this post?") + .action(.destructive("Delete")) { + // delete post + } + .action(.cancel("Cancel")) + .show() +``` + +![img1](Documents/img1.png) + +## Feature +- Method chain +- UITextField support +- iPad support(Action Sheet, popover) + +## Examples + +### Simple Alert + +```swift +Alertift.alert(title: "Sample 1", message: "Simple alert!") + .action(.default("OK")) + .show() +``` + +![img2](Documents/img2.png) + + +```swift +Alertift.alert(title: "Confirm", message: "Delete this post?") + .action(.destructive("Delete")) { + // delete post + } + .action(.cancel("Cancel")) + .show() +``` + +![img1](Documents/img1.png) + + +### Prompt Alert + +```swift +Alertift.alert(title: "Sign in", message: "Input your ID and Password") + .textField { textField in + textField.placeholder = "ID" + } + .textField { textField in + textField.placeholder = "Password" + textField.isSecureTextEntry = true + } + .action(.cancel("Cancel")) + .action(.default("Sign in"), textFieldsHandler: { textFields in + let id = textFields?.first?.text ?? "" + let password = textFields?.last?.text ?? "" + // sign in + }) + .show() +``` + +![img3](Documents/img3.png) + +### Action Sheet + +```swift +Alertift.actionSheet(message: "Which food do you like?") + .action(.default("🍣")) + .action(.default("🍎")) + .action(.default("🍖")) + .action(.default("🍅")) + .action(.cancel("None of them")) + .finally { action, index in + if action.style == .cancel { + return + } + Alertift.alert(message: "\(index). \(action.title!)") + .action(.default("OK")) + .show() + } + .show() +``` + +![img4](Documents/img4.png) + +#### for iPad +Use `popover(sourceView:SourceRect)` + +```swift +Alertift.actionSheet(message: "Which food do you like?") + .popover(sourceView: self.view, sourceRect: button.frame) + .action(.default("🍣")) + .action(.default("🍎")) + .action(.default("🍖")) + .action(.default("🍅")) + .action(.cancel("None of them")) + .finally(handler: { action, index in + if action.style == .cancel { + return + } + Alertift.alert(message: "\(index). \(action.title!)") + .action(.default("OK")) + .show() + }) + .show() +``` + +![img5](Documents/img5.png) + + +## Requirements +- iOS 9.0+ +- Xcode 8.1+ +- Swift 3.0+ + +## Installation + +### Carthage + +- Add the following to your *Cartfile*: + +```bash +github "sgr-ksmt/Alertift" ~> 1.0 +``` + +- Run `carthage update` +- Add the framework as described. +
Details: [Carthage Readme](https://github.com/Carthage/Carthage#adding-frameworks-to-an-application) + + +### CocoaPods + +**Alertift** is available through [CocoaPods](http://cocoapods.org). To install +it, simply add the following line to your Podfile: + +```ruby +pod 'Alertift', '~> 1.0' +``` + +and run `pod install` + +### Manually Install +Download all `*.swift` files and put your project. + +## Change log +Change log is [here](https://github.com/sgr-ksmt/Alertift/blob/master/CHANGELOG.md). + +## Communication +- If you found a bug, open an issue. +- If you have a feature request, open an issue. +- If you want to contribute, submit a pull request.:muscle: + +## License + +**Alertift** is under MIT license. See the [LICENSE](LICENSE) file for more info. diff --git a/Sources/Action.swift b/Sources/Action.swift new file mode 100644 index 0000000..8b9fa32 --- /dev/null +++ b/Sources/Action.swift @@ -0,0 +1,48 @@ +// +// Action.swift +// Alertift +// +// Created by Suguru Kishimoto on 4/27/17. +// Copyright © 2017 Suguru Kishimoto. All rights reserved. +// + +import Foundation + +extension Alertift { + /// Action type for **Alert**, **ActionSheet** + /// + /// - `default`: Default action(action title) + /// - destructive: Destructive action(action title) + /// - cancel: Cancel description(action title) + public enum Action { + case `default`(String?) + case destructive(String?) + case cancel(String?) + + /// **UIAlertAction**'s title + private var title: String? { + switch self { + case .default(let title): return title + case .destructive(let title): return title + case .cancel(let title): return title + } + } + + /// **UIAlertAction**'s style + private var style: UIAlertActionStyle { + switch self { + case .default( _): return .default + case .destructive( _): return .destructive + case .cancel( _): return .cancel + } + } + + /// **Build UIAlertAction** + /// + /// - Parameter actionHandler: Action handler for **UIAlertAction** + /// - Returns: Instance of **UIAlertAction** + func buildAlertAction(handler actionHandler: @escaping (UIAlertAction) -> Void) -> UIAlertAction { + return UIAlertAction(title: title, style: style, handler: { actionHandler($0) }) + } + } +} diff --git a/Sources/ActionSheet.swift b/Sources/ActionSheet.swift new file mode 100644 index 0000000..addef97 --- /dev/null +++ b/Sources/ActionSheet.swift @@ -0,0 +1,43 @@ +// +// ActionSheet.swift +// Alertift +// +// Created by Suguru Kishimoto on 4/27/17. +// Copyright © 2017 Suguru Kishimoto. All rights reserved. +// + +import Foundation + +extension Alertift { + /// ActionSheet + final public class ActionSheet: AlertBase { + /// Make action sheet + /// + /// - Parameters: + /// - title: The title of the alert. Use this string to get the user’s attention and communicate the reason for the alert. + /// - message: Descriptive text that provides additional details about the reason for the alert. + /// - Returns: Instance of **ActionSheet** + public init(title: String? = nil, message: String? = nil) { + super.init(title: title, message: message, style: .actionSheet) + } + + /// Add action to alertController + public func action(_ action: Alertift.Action, handler: @escaping Alertift.ActionHandler = {}) -> Self { + _alertController.addAction(buildAlertAction(action, handler: _alertController.combineActionHandler(handler))) + return self + } + + /// Add sourceView and sourceRect to **popoverPresentationController**. + /// + /// If you want to use action sheet on iPad, you have to use this method. + /// - Parameters: + /// - view: sourceView + /// - rect: sourceRect + /// - Returns: MySelf + public func popover(sourceView view: UIView?, sourceRect rect: CGRect) -> Self { + _alertController.popoverPresentationController?.sourceView = view + _alertController.popoverPresentationController?.sourceRect = rect + return self + } + } +} diff --git a/Sources/Alert.swift b/Sources/Alert.swift new file mode 100644 index 0000000..07ca364 --- /dev/null +++ b/Sources/Alert.swift @@ -0,0 +1,99 @@ +// +// Alert.swift +// Alertift +// +// Created by Suguru Kishimoto on 4/26/17. +// Copyright © 2017 Suguru Kishimoto. All rights reserved. +// + +import Foundation + +extension Alertift { + /// Alert + final public class Alert: AlertBase { + /// TextFieldHandler + public typealias TextFieldHandler = ((UITextField, Int) -> Void) + + /// ActionWithTextFieldsHandler + public typealias ActionWithTextFieldsHandler = ([UITextField]?) -> Void + + /// Make alert + /// + /// - Parameters: + /// - title: The title of the alert. Use this string to get the user’s attention and communicate the reason for the alert. + /// - message: Descriptive text that provides additional details about the reason for the alert. + /// - Returns: Instance of **Alert** + public init(title: String? = nil, message: String? = nil) { + super.init(title: title, message: message, style: .alert) + } + + /// Add alertAction to alertController + /// + /// - Parameters: + /// - alertAction: UIAlertAction + /// - isPreferred: If isPreferred is true, alertAction becomes preferredAction. + private func addActionToAlertController(_ alertAction: UIAlertAction, isPreferred: Bool) { + _alertController.addAction(alertAction) + if isPreferred { + _alertController.preferredAction = alertAction + } + } + + /// Add action to Alert + /// + /// - Parameters: + /// - action: Alert action. + /// - isPreferred: If you want to change this action to preferredAction, set true. Default is false. + /// - handler: The block to execute after this action performed. + /// - Returns: Myself + public func action(_ action: Alertift.Action, isPreferred: Bool = false, handler: @escaping Alertift.ActionHandler = {}) -> Self { + addActionToAlertController( + buildAlertAction(action, handler: _alertController.combineActionHandler(handler)), + isPreferred: isPreferred + ) + return self + } + + /// Add action to Alert + /// + /// - Parameters: + /// - action: Alert action. + /// - isPreferred: If you want to change this action to preferredAction, set true. Default is false. + /// - textFieldsHandler: The block that returns array of UITextFields to execute after this action performed. + /// - Returns: Myself + final public func action(_ action: Alertift.Action, isPreferred: Bool = false, textFieldsHandler: @escaping ActionWithTextFieldsHandler) -> Self { + addActionToAlertController( + buildAlertAction(action, handler: _alertController.combineActionWithTextFieldsHandler(textFieldsHandler)), + isPreferred: isPreferred + ) + return self + } + + /// Add text field to alertController + /// + /// - Parameter handler: Define handler if you want to customize UITextField. Default is nil. + /// - Returns: Myself + public func textField(configurationHandler handler: ((UITextField) -> Void)? = nil) -> Self { + _alertController.addTextField { [weak self] textField in + guard let strongSelf = self else { + return + } + handler?(textField) + strongSelf._alertController.registerTextFieldObserver(textField) + } + + return self + } + + /// Add textFieldHandler to alertController. + /// + /// If text field's text is changed, execute textFieldHandler with text field and index. + /// + /// - Parameter textFieldTextDidChangeHandler: TextFieldHandler (UITextField, Int) -> Void + /// - Returns: Myself + public func handleTextFieldTextDidChange(textFieldTextDidChangeHandler: TextFieldHandler?) -> Self { + _alertController.textFieldTextDidChangeHandler = textFieldTextDidChangeHandler + return self + } + } +} diff --git a/Sources/AlertBase.swift b/Sources/AlertBase.swift new file mode 100644 index 0000000..74e7295 --- /dev/null +++ b/Sources/AlertBase.swift @@ -0,0 +1,66 @@ +// +// AlertBase.swift +// Alertift +// +// Created by Suguru Kishimoto on 4/27/17. +// Copyright © 2017 Suguru Kishimoto. All rights reserved. +// + +import Foundation + +extension Alertift { + /// AlertBase + /// superclass of Alert, ActionSheet. + public class AlertBase { + + /// UIAlertController + public var alertController: UIAlertController { + return _alertController as UIAlertController + } + + /// InnerAlertController (internal). + let _alertController: InnerAlertController + + /// Handler for finally. + private var finallyHandler: Alertift.FinallyHandler? + + + /// Initializer + /// + /// - Parameters: + /// - title: The title of the alert. Use this string to get the user’s attention and communicate the reason for the alert. + /// - message: Descriptive text that provides additional details about the reason for the alert. + /// - style: The style to use when presenting the alert controller. Use this parameter to configure the alert controller as an action sheet or as a modal alert. + init(title: String? = nil, message: String? = nil, style: UIAlertControllerStyle) { + _alertController = InnerAlertController(title: title, message: message, preferredStyle: style) + } + + /// Build **UIAlertAction** using **Alertift.Action** and handler. + /// + /// - Parameters: + /// - action: action + /// - handler: The handler to execute after the action selected. + /// - Returns: **UIAlertAction** + func buildAlertAction(_ action: Alertift.Action, handler: @escaping (UIAlertAction) -> Void) -> UIAlertAction { + return action.buildAlertAction(handler: handler) + } + + /// Add finally handler. + /// + /// - Parameter handler: The handler to execute after either alert selected. + /// - Returns: Myself + public func finally(handler: @escaping Alertift.FinallyHandler) -> Self { + _alertController.finallyHandler = handler + return self + } + + /// Show alert (or action sheet). + /// + /// - Parameters: + /// - viewController: The view controller to display over the current view controller’s content. Default is **UIApplication.shared.keyWindow?.rootViewController** + /// - completion: The block to execute after the presentation finishes. This block has no return value and takes no parameters. You may specify nil for this parameter. + final public func show(on viewController: UIViewController? = UIApplication.shared.keyWindow?.rootViewController, completion: (() -> Void)? = nil) { + viewController?.present(_alertController, animated: true, completion: completion) + } + } +} diff --git a/Sources/Alertift.swift b/Sources/Alertift.swift new file mode 100644 index 0000000..f47d91d --- /dev/null +++ b/Sources/Alertift.swift @@ -0,0 +1,51 @@ +// +// Alertift.swift +// Alertift +// +// Created by Suguru Kishimoto on 4/26/17. +// Copyright © 2017 Suguru Kishimoto. All rights reserved. +// + +import Foundation + + +/// Alertift +/// make alert or action sheet. +public final class Alertift { + /// private initializer + private init() {} + + /// Make alert + /// + /// - Parameters: + /// - title: The title of the alert. Use this string to get the user’s attention and communicate the reason for the alert. + /// - message: Descriptive text that provides additional details about the reason for the alert. + /// - Returns: Instance of **Alert** + public static func alert(title: String? = nil, message: String? = nil) -> Alert { + return Alert(title: title, message: message) + } + + /// Make action sheet + /// + /// - Parameters: + /// - title: The title of the alert. Use this string to get the user’s attention and communicate the reason for the alert. + /// - message: Descriptive text that provides additional details about the reason for the alert. + /// - Returns: Instance of **ActionSheet** + public static func actionSheet(title: String? = nil, message: String? = nil) -> ActionSheet { + return ActionSheet(title: title, message: message) + } +} + +extension Alertift { + /// Action handler + public typealias ActionHandler = () -> Void + + /// Finally handler + public typealias FinallyHandler = (UIAlertAction, Int) -> Void +} + + +/// Internal typealiases +typealias _AlertBase = Alertift.AlertBase +typealias _Alert = Alertift.Alert +typealias _ActionSheet = Alertift.ActionSheet diff --git a/Sources/InnerAlertController.swift b/Sources/InnerAlertController.swift new file mode 100644 index 0000000..f5678ea --- /dev/null +++ b/Sources/InnerAlertController.swift @@ -0,0 +1,73 @@ +// +// InnerAlertController.swift +// Alertift +// +// Created by Suguru Kishimoto on 4/27/17. +// Copyright © 2017 Suguru Kishimoto. All rights reserved. +// + +import Foundation +import UIKit + +/// InnerAlertController +/// subclass of **UIAlertController** +class InnerAlertController: UIAlertController { + /// textFieldTextDidChangeHandler: ((UITextField, Int) -> Void) + var textFieldTextDidChangeHandler: _Alert.TextFieldHandler? + + /// finallyHandler: (UIAlertAction, Int) -> Void + var finallyHandler: Alertift.FinallyHandler? + + /// Register UITextFieldTextDidChange notification + /// + /// - Parameter textField: textField + func registerTextFieldObserver(_ textField: UITextField) { + NotificationCenter.default.addObserver( + self, + selector: #selector(self.textFieldDidChange(_:)), + name: .UITextFieldTextDidChange, object: textField + ) + } + + /// Delegate method for UITextFieldTextDidChange + /// + /// - Parameter notification: notification (object is UITextField) + @objc private func textFieldDidChange(_ notification: Notification) { + guard let textField = notification.object as? UITextField else { + return + } + + guard let index = textFields?.index(of: textField) else { + return + } + textFieldTextDidChangeHandler?(textField, index) + } + + /// Combine originalHandler and finallyHandler with textFields. + /// + /// - Parameter originalHandler: original action handler. + /// - Returns: New action handler. + func combineActionWithTextFieldsHandler(_ originalHandler: @escaping _Alert.ActionWithTextFieldsHandler) -> (UIAlertAction) -> Void { + return combineActionHandler { [weak self] in + originalHandler(self?.textFields) + } + } + + /// Combine originalHandler and finallyHandler. + /// + /// - Parameter originalHandler: original action handler. + /// - Returns: New action handler. + func combineActionHandler(_ originalHandler: @escaping () -> Void) -> (UIAlertAction) -> Void { + return { [weak self] action in + guard let strongSelf = self else { + return + } + originalHandler() + strongSelf.finallyHandler?(action, strongSelf.actions.index(of: action) ?? -1) + } + } + + deinit { + NotificationCenter.default.removeObserver(self) + } +}