From 03f1bd1eaff3ac0d553e2714ceb6ea618c2adcc8 Mon Sep 17 00:00:00 2001 From: Alvaro Franco Date: Sat, 8 Mar 2014 15:22:44 +0100 Subject: [PATCH] Adds demo project --- Demo/.DS_Store | Bin 0 -> 6148 bytes Demo/AFPopup-Demo.xcodeproj/project.pbxproj | 493 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../UserInterfaceState.xcuserstate | Bin 0 -> 18628 bytes .../xcschemes/AFPopup-Demo.xcscheme | 96 ++++ .../xcschemes/xcschememanagement.plist | 27 + Demo/AFPopup-Demo/.DS_Store | Bin 0 -> 6148 bytes Demo/AFPopup-Demo/AFPopup-Demo-Info.plist | 40 ++ Demo/AFPopup-Demo/AFPopup-Demo-Prefix.pch | 16 + Demo/AFPopup-Demo/AFPopupView.h | 18 + Demo/AFPopup-Demo/AFPopupView.m | 176 +++++++ Demo/AFPopup-Demo/AppDelegate.h | 15 + Demo/AFPopup-Demo/AppDelegate.m | 46 ++ Demo/AFPopup-Demo/Base.lproj/Main.storyboard | 90 ++++ .../AppIcon.appiconset/Contents.json | 23 + .../LaunchImage.launchimage/Contents.json | 23 + Demo/AFPopup-Demo/ModalTestViewController.h | 15 + Demo/AFPopup-Demo/ModalTestViewController.m | 47 ++ Demo/AFPopup-Demo/ViewController.h | 15 + Demo/AFPopup-Demo/ViewController.m | 53 ++ Demo/AFPopup-Demo/en.lproj/InfoPlist.strings | 2 + Demo/AFPopup-Demo/main.m | 18 + .../AFPopup-DemoTests-Info.plist | 22 + Demo/AFPopup-DemoTests/AFPopup_DemoTests.m | 34 ++ .../en.lproj/InfoPlist.strings | 2 + 25 files changed, 1278 insertions(+) create mode 100644 Demo/.DS_Store create mode 100644 Demo/AFPopup-Demo.xcodeproj/project.pbxproj create mode 100644 Demo/AFPopup-Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 Demo/AFPopup-Demo.xcodeproj/project.xcworkspace/xcuserdata/crumflash.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 Demo/AFPopup-Demo.xcodeproj/xcuserdata/crumflash.xcuserdatad/xcschemes/AFPopup-Demo.xcscheme create mode 100644 Demo/AFPopup-Demo.xcodeproj/xcuserdata/crumflash.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 Demo/AFPopup-Demo/.DS_Store create mode 100644 Demo/AFPopup-Demo/AFPopup-Demo-Info.plist create mode 100644 Demo/AFPopup-Demo/AFPopup-Demo-Prefix.pch create mode 100644 Demo/AFPopup-Demo/AFPopupView.h create mode 100644 Demo/AFPopup-Demo/AFPopupView.m create mode 100644 Demo/AFPopup-Demo/AppDelegate.h create mode 100644 Demo/AFPopup-Demo/AppDelegate.m create mode 100644 Demo/AFPopup-Demo/Base.lproj/Main.storyboard create mode 100644 Demo/AFPopup-Demo/Images.xcassets/AppIcon.appiconset/Contents.json create mode 100644 Demo/AFPopup-Demo/Images.xcassets/LaunchImage.launchimage/Contents.json create mode 100644 Demo/AFPopup-Demo/ModalTestViewController.h create mode 100644 Demo/AFPopup-Demo/ModalTestViewController.m create mode 100644 Demo/AFPopup-Demo/ViewController.h create mode 100644 Demo/AFPopup-Demo/ViewController.m create mode 100644 Demo/AFPopup-Demo/en.lproj/InfoPlist.strings create mode 100644 Demo/AFPopup-Demo/main.m create mode 100644 Demo/AFPopup-DemoTests/AFPopup-DemoTests-Info.plist create mode 100644 Demo/AFPopup-DemoTests/AFPopup_DemoTests.m create mode 100644 Demo/AFPopup-DemoTests/en.lproj/InfoPlist.strings diff --git a/Demo/.DS_Store b/Demo/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..34e22ddc9da215765fa56cd2653c623792fbdcae GIT binary patch literal 6148 zcmeHK!EO^V5FMwX?5eF44xk>bo;ajcQa}NT!x9D5-YPay4-}Q%ZbX8XILdAaQb@bv zhxi3PfHUH6!t>ZvO~Z0Th)n;p-yK&#l)h_WbDxmkyr#?=RSR5u5akUeFQt zdPEcWF8DoqPwFte%0mr!aIskYnHNv9k)7{LJW2;y-e`Omm9^@v_1m8Bdz&Z6gJGhk zZ8aGt*{iUxrr{vz#nJdR$9a@bvUW7)o}(!5qle?JQYqpSTYWr8^8RUUdp3LYq*a&u z&E~u=XRTJFE+0O4JfHiX=hwb^cX#%l9(1Em^Ye>>KR5||!P&Mf{({d4O6B+vj)$ol zzD14Z-z$?18}O0NAZG#@NB99LdUs9AZ{T0uf;**SbumVUjm(xu5HGKdfJbLe0jI!C zRlvT|yp5YGfLpgyz$s9wfPOznxW>R@VUS-PX!r^MtRl^ZSl=ZyM_LRl76#D+6NU;j zRAH|e!qAbIwl1((7&LSeJTu0zGYfk|5j;EclFLa123_kEa0)Cdux1`>`uu-he*a%4 zxhJQ9Q{cZ+KvX+nr;R1qvvp;0`mB}kH*jsbt}u8>LBK~bYV}dP4QE4M>Hrv6EDRz8 QbAJR_2G=+R{;C2$0hYRj;s5{u literal 0 HcmV?d00001 diff --git a/Demo/AFPopup-Demo.xcodeproj/project.pbxproj b/Demo/AFPopup-Demo.xcodeproj/project.pbxproj new file mode 100644 index 0000000..3b4798d --- /dev/null +++ b/Demo/AFPopup-Demo.xcodeproj/project.pbxproj @@ -0,0 +1,493 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + A716C7C318CA28EF008FE0CA /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A716C7C218CA28EF008FE0CA /* Foundation.framework */; }; + A716C7C518CA28EF008FE0CA /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A716C7C418CA28EF008FE0CA /* CoreGraphics.framework */; }; + A716C7C718CA28EF008FE0CA /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A716C7C618CA28EF008FE0CA /* UIKit.framework */; }; + A716C7CD18CA28EF008FE0CA /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = A716C7CB18CA28EF008FE0CA /* InfoPlist.strings */; }; + A716C7CF18CA28EF008FE0CA /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = A716C7CE18CA28EF008FE0CA /* main.m */; }; + A716C7D318CA28EF008FE0CA /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = A716C7D218CA28EF008FE0CA /* AppDelegate.m */; }; + A716C7D618CA28EF008FE0CA /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = A716C7D418CA28EF008FE0CA /* Main.storyboard */; }; + A716C7D918CA28EF008FE0CA /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A716C7D818CA28EF008FE0CA /* ViewController.m */; }; + A716C7DB18CA28EF008FE0CA /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A716C7DA18CA28EF008FE0CA /* Images.xcassets */; }; + A716C7E218CA28EF008FE0CA /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A716C7E118CA28EF008FE0CA /* XCTest.framework */; }; + A716C7E318CA28EF008FE0CA /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A716C7C218CA28EF008FE0CA /* Foundation.framework */; }; + A716C7E418CA28EF008FE0CA /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A716C7C618CA28EF008FE0CA /* UIKit.framework */; }; + A716C7EC18CA28EF008FE0CA /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = A716C7EA18CA28EF008FE0CA /* InfoPlist.strings */; }; + A716C7EE18CA28EF008FE0CA /* AFPopup_DemoTests.m in Sources */ = {isa = PBXBuildFile; fileRef = A716C7ED18CA28EF008FE0CA /* AFPopup_DemoTests.m */; }; + A716C7F918CA290C008FE0CA /* AFPopupView.m in Sources */ = {isa = PBXBuildFile; fileRef = A716C7F818CA290C008FE0CA /* AFPopupView.m */; }; + A716C7FC18CA2E0B008FE0CA /* ModalTestViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A716C7FB18CA2E0B008FE0CA /* ModalTestViewController.m */; }; + A716C7FE18CA30DD008FE0CA /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A716C7FD18CA30DD008FE0CA /* QuartzCore.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + A716C7E518CA28EF008FE0CA /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = A716C7B718CA28EF008FE0CA /* Project object */; + proxyType = 1; + remoteGlobalIDString = A716C7BE18CA28EF008FE0CA; + remoteInfo = "AFPopup-Demo"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + A716C7BF18CA28EF008FE0CA /* AFPopup-Demo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "AFPopup-Demo.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + A716C7C218CA28EF008FE0CA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + A716C7C418CA28EF008FE0CA /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + A716C7C618CA28EF008FE0CA /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + A716C7CA18CA28EF008FE0CA /* AFPopup-Demo-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "AFPopup-Demo-Info.plist"; sourceTree = ""; }; + A716C7CC18CA28EF008FE0CA /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + A716C7CE18CA28EF008FE0CA /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + A716C7D018CA28EF008FE0CA /* AFPopup-Demo-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "AFPopup-Demo-Prefix.pch"; sourceTree = ""; }; + A716C7D118CA28EF008FE0CA /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + A716C7D218CA28EF008FE0CA /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; + A716C7D518CA28EF008FE0CA /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + A716C7D718CA28EF008FE0CA /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; + A716C7D818CA28EF008FE0CA /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; + A716C7DA18CA28EF008FE0CA /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; + A716C7E018CA28EF008FE0CA /* AFPopup-DemoTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "AFPopup-DemoTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + A716C7E118CA28EF008FE0CA /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; + A716C7E918CA28EF008FE0CA /* AFPopup-DemoTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "AFPopup-DemoTests-Info.plist"; sourceTree = ""; }; + A716C7EB18CA28EF008FE0CA /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + A716C7ED18CA28EF008FE0CA /* AFPopup_DemoTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AFPopup_DemoTests.m; sourceTree = ""; }; + A716C7F718CA290C008FE0CA /* AFPopupView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AFPopupView.h; sourceTree = ""; }; + A716C7F818CA290C008FE0CA /* AFPopupView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AFPopupView.m; sourceTree = ""; }; + A716C7FA18CA2E0B008FE0CA /* ModalTestViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ModalTestViewController.h; sourceTree = ""; }; + A716C7FB18CA2E0B008FE0CA /* ModalTestViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ModalTestViewController.m; sourceTree = ""; }; + A716C7FD18CA30DD008FE0CA /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + A716C7BC18CA28EF008FE0CA /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + A716C7FE18CA30DD008FE0CA /* QuartzCore.framework in Frameworks */, + A716C7C518CA28EF008FE0CA /* CoreGraphics.framework in Frameworks */, + A716C7C718CA28EF008FE0CA /* UIKit.framework in Frameworks */, + A716C7C318CA28EF008FE0CA /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A716C7DD18CA28EF008FE0CA /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + A716C7E218CA28EF008FE0CA /* XCTest.framework in Frameworks */, + A716C7E418CA28EF008FE0CA /* UIKit.framework in Frameworks */, + A716C7E318CA28EF008FE0CA /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + A716C7B618CA28EF008FE0CA = { + isa = PBXGroup; + children = ( + A716C7C818CA28EF008FE0CA /* AFPopup-Demo */, + A716C7E718CA28EF008FE0CA /* AFPopup-DemoTests */, + A716C7C118CA28EF008FE0CA /* Frameworks */, + A716C7C018CA28EF008FE0CA /* Products */, + ); + sourceTree = ""; + }; + A716C7C018CA28EF008FE0CA /* Products */ = { + isa = PBXGroup; + children = ( + A716C7BF18CA28EF008FE0CA /* AFPopup-Demo.app */, + A716C7E018CA28EF008FE0CA /* AFPopup-DemoTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + A716C7C118CA28EF008FE0CA /* Frameworks */ = { + isa = PBXGroup; + children = ( + A716C7FD18CA30DD008FE0CA /* QuartzCore.framework */, + A716C7C218CA28EF008FE0CA /* Foundation.framework */, + A716C7C418CA28EF008FE0CA /* CoreGraphics.framework */, + A716C7C618CA28EF008FE0CA /* UIKit.framework */, + A716C7E118CA28EF008FE0CA /* XCTest.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + A716C7C818CA28EF008FE0CA /* AFPopup-Demo */ = { + isa = PBXGroup; + children = ( + A716C7D118CA28EF008FE0CA /* AppDelegate.h */, + A716C7D218CA28EF008FE0CA /* AppDelegate.m */, + A716C7D418CA28EF008FE0CA /* Main.storyboard */, + A716C7D718CA28EF008FE0CA /* ViewController.h */, + A716C7D818CA28EF008FE0CA /* ViewController.m */, + A716C7FA18CA2E0B008FE0CA /* ModalTestViewController.h */, + A716C7FB18CA2E0B008FE0CA /* ModalTestViewController.m */, + A716C7F718CA290C008FE0CA /* AFPopupView.h */, + A716C7F818CA290C008FE0CA /* AFPopupView.m */, + A716C7DA18CA28EF008FE0CA /* Images.xcassets */, + A716C7C918CA28EF008FE0CA /* Supporting Files */, + ); + path = "AFPopup-Demo"; + sourceTree = ""; + }; + A716C7C918CA28EF008FE0CA /* Supporting Files */ = { + isa = PBXGroup; + children = ( + A716C7CA18CA28EF008FE0CA /* AFPopup-Demo-Info.plist */, + A716C7CB18CA28EF008FE0CA /* InfoPlist.strings */, + A716C7CE18CA28EF008FE0CA /* main.m */, + A716C7D018CA28EF008FE0CA /* AFPopup-Demo-Prefix.pch */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + A716C7E718CA28EF008FE0CA /* AFPopup-DemoTests */ = { + isa = PBXGroup; + children = ( + A716C7ED18CA28EF008FE0CA /* AFPopup_DemoTests.m */, + A716C7E818CA28EF008FE0CA /* Supporting Files */, + ); + path = "AFPopup-DemoTests"; + sourceTree = ""; + }; + A716C7E818CA28EF008FE0CA /* Supporting Files */ = { + isa = PBXGroup; + children = ( + A716C7E918CA28EF008FE0CA /* AFPopup-DemoTests-Info.plist */, + A716C7EA18CA28EF008FE0CA /* InfoPlist.strings */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + A716C7BE18CA28EF008FE0CA /* AFPopup-Demo */ = { + isa = PBXNativeTarget; + buildConfigurationList = A716C7F118CA28EF008FE0CA /* Build configuration list for PBXNativeTarget "AFPopup-Demo" */; + buildPhases = ( + A716C7BB18CA28EF008FE0CA /* Sources */, + A716C7BC18CA28EF008FE0CA /* Frameworks */, + A716C7BD18CA28EF008FE0CA /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "AFPopup-Demo"; + productName = "AFPopup-Demo"; + productReference = A716C7BF18CA28EF008FE0CA /* AFPopup-Demo.app */; + productType = "com.apple.product-type.application"; + }; + A716C7DF18CA28EF008FE0CA /* AFPopup-DemoTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = A716C7F418CA28EF008FE0CA /* Build configuration list for PBXNativeTarget "AFPopup-DemoTests" */; + buildPhases = ( + A716C7DC18CA28EF008FE0CA /* Sources */, + A716C7DD18CA28EF008FE0CA /* Frameworks */, + A716C7DE18CA28EF008FE0CA /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + A716C7E618CA28EF008FE0CA /* PBXTargetDependency */, + ); + name = "AFPopup-DemoTests"; + productName = "AFPopup-DemoTests"; + productReference = A716C7E018CA28EF008FE0CA /* AFPopup-DemoTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + A716C7B718CA28EF008FE0CA /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0500; + ORGANIZATIONNAME = AlvaroFranco; + TargetAttributes = { + A716C7DF18CA28EF008FE0CA = { + TestTargetID = A716C7BE18CA28EF008FE0CA; + }; + }; + }; + buildConfigurationList = A716C7BA18CA28EF008FE0CA /* Build configuration list for PBXProject "AFPopup-Demo" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = A716C7B618CA28EF008FE0CA; + productRefGroup = A716C7C018CA28EF008FE0CA /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + A716C7BE18CA28EF008FE0CA /* AFPopup-Demo */, + A716C7DF18CA28EF008FE0CA /* AFPopup-DemoTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + A716C7BD18CA28EF008FE0CA /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A716C7DB18CA28EF008FE0CA /* Images.xcassets in Resources */, + A716C7CD18CA28EF008FE0CA /* InfoPlist.strings in Resources */, + A716C7D618CA28EF008FE0CA /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A716C7DE18CA28EF008FE0CA /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A716C7EC18CA28EF008FE0CA /* InfoPlist.strings in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + A716C7BB18CA28EF008FE0CA /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A716C7FC18CA2E0B008FE0CA /* ModalTestViewController.m in Sources */, + A716C7D918CA28EF008FE0CA /* ViewController.m in Sources */, + A716C7D318CA28EF008FE0CA /* AppDelegate.m in Sources */, + A716C7CF18CA28EF008FE0CA /* main.m in Sources */, + A716C7F918CA290C008FE0CA /* AFPopupView.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A716C7DC18CA28EF008FE0CA /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A716C7EE18CA28EF008FE0CA /* AFPopup_DemoTests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + A716C7E618CA28EF008FE0CA /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = A716C7BE18CA28EF008FE0CA /* AFPopup-Demo */; + targetProxy = A716C7E518CA28EF008FE0CA /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + A716C7CB18CA28EF008FE0CA /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + A716C7CC18CA28EF008FE0CA /* en */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; + A716C7D418CA28EF008FE0CA /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + A716C7D518CA28EF008FE0CA /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + A716C7EA18CA28EF008FE0CA /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + A716C7EB18CA28EF008FE0CA /* en */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + A716C7EF18CA28EF008FE0CA /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + }; + name = Debug; + }; + A716C7F018CA28EF008FE0CA /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = YES; + ENABLE_NS_ASSERTIONS = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + A716C7F218CA28EF008FE0CA /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "AFPopup-Demo/AFPopup-Demo-Prefix.pch"; + INFOPLIST_FILE = "AFPopup-Demo/AFPopup-Demo-Info.plist"; + PRODUCT_NAME = "$(TARGET_NAME)"; + WRAPPER_EXTENSION = app; + }; + name = Debug; + }; + A716C7F318CA28EF008FE0CA /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "AFPopup-Demo/AFPopup-Demo-Prefix.pch"; + INFOPLIST_FILE = "AFPopup-Demo/AFPopup-Demo-Info.plist"; + PRODUCT_NAME = "$(TARGET_NAME)"; + WRAPPER_EXTENSION = app; + }; + name = Release; + }; + A716C7F518CA28EF008FE0CA /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)"; + BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/AFPopup-Demo.app/AFPopup-Demo"; + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + "$(DEVELOPER_FRAMEWORKS_DIR)", + ); + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "AFPopup-Demo/AFPopup-Demo-Prefix.pch"; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + INFOPLIST_FILE = "AFPopup-DemoTests/AFPopup-DemoTests-Info.plist"; + PRODUCT_NAME = "$(TARGET_NAME)"; + TEST_HOST = "$(BUNDLE_LOADER)"; + WRAPPER_EXTENSION = xctest; + }; + name = Debug; + }; + A716C7F618CA28EF008FE0CA /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)"; + BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/AFPopup-Demo.app/AFPopup-Demo"; + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + "$(DEVELOPER_FRAMEWORKS_DIR)", + ); + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "AFPopup-Demo/AFPopup-Demo-Prefix.pch"; + INFOPLIST_FILE = "AFPopup-DemoTests/AFPopup-DemoTests-Info.plist"; + PRODUCT_NAME = "$(TARGET_NAME)"; + TEST_HOST = "$(BUNDLE_LOADER)"; + WRAPPER_EXTENSION = xctest; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + A716C7BA18CA28EF008FE0CA /* Build configuration list for PBXProject "AFPopup-Demo" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A716C7EF18CA28EF008FE0CA /* Debug */, + A716C7F018CA28EF008FE0CA /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + A716C7F118CA28EF008FE0CA /* Build configuration list for PBXNativeTarget "AFPopup-Demo" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A716C7F218CA28EF008FE0CA /* Debug */, + A716C7F318CA28EF008FE0CA /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + A716C7F418CA28EF008FE0CA /* Build configuration list for PBXNativeTarget "AFPopup-DemoTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A716C7F518CA28EF008FE0CA /* Debug */, + A716C7F618CA28EF008FE0CA /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = A716C7B718CA28EF008FE0CA /* Project object */; +} diff --git a/Demo/AFPopup-Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Demo/AFPopup-Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..8d6234e --- /dev/null +++ b/Demo/AFPopup-Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Demo/AFPopup-Demo.xcodeproj/project.xcworkspace/xcuserdata/crumflash.xcuserdatad/UserInterfaceState.xcuserstate b/Demo/AFPopup-Demo.xcodeproj/project.xcworkspace/xcuserdata/crumflash.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..4223aa97bd891866327aca732fae3dd7e1860d37 GIT binary patch literal 18628 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�_bsr2oH?Z*{WD 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 u?EIej`T2eF3-X8O7w4Dcm*=<0z%3ic5BH<^*ZG + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Demo/AFPopup-Demo.xcodeproj/xcuserdata/crumflash.xcuserdatad/xcschemes/xcschememanagement.plist b/Demo/AFPopup-Demo.xcodeproj/xcuserdata/crumflash.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..0ab6f4b --- /dev/null +++ b/Demo/AFPopup-Demo.xcodeproj/xcuserdata/crumflash.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,27 @@ + + + + + SchemeUserState + + AFPopup-Demo.xcscheme + + orderHint + 0 + + + SuppressBuildableAutocreation + + A716C7BE18CA28EF008FE0CA + + primary + + + A716C7DF18CA28EF008FE0CA + + primary + + + + + diff --git a/Demo/AFPopup-Demo/.DS_Store b/Demo/AFPopup-Demo/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..cf09317a696cdbd2756811993e238cddc57ba194 GIT binary patch literal 6148 zcmeHKO-}+b5Pel*5M$(~-uB1^6aT@AXu`q7i1Dg|h?oToVC1+z!yn}j@ZaE@X(jss zQKK=&bdu>?+P<02Yj#TknA+pbK2Qcwqze{GY!;Y|i|1^`^=uK1#%N-KAx7vlqTFoX z;T7--{51vS-Cf5X>S*GUK7W6Q?N&5wag?71b4H)e)U<$Y9N-wIeAgfFNUxILL7%^? zXkdU_KJBqTLJwn18c{MDnLy=}(N5)S!gxJQHDVignP@MWXq%a}U69+s6WJN2RD}xN z%w}wX<;;FMr+MXUVXh>Y53E;Ii0EBhQ^`&~r`GP#|As4>e}vqX$B zqUQIRbxMUvPLZ<*T-CDqQde^R7I(AHEM4-(ts z&E3Tb*MGz45zaN+1n)a{$dLi_NrjQ>JIX67yZOzCnKjBTry`cWwj$MIn$Y7TekQ-{ zc<`?$&|z%R(qY`?!??`G-B65XXZ%2?!-N)n>lN?{q!n1TKg)9d zA1%NCr%C>oSHLUquM{wadb3_*N$zaT6(?tHK)<4k$-LO2QrNiTSRdpl-l3~;ERY9c V=rFd(9-99npfdQzEAXodya5`#^KJkD literal 0 HcmV?d00001 diff --git a/Demo/AFPopup-Demo/AFPopup-Demo-Info.plist b/Demo/AFPopup-Demo/AFPopup-Demo-Info.plist new file mode 100644 index 0000000..d28cf2a --- /dev/null +++ b/Demo/AFPopup-Demo/AFPopup-Demo-Info.plist @@ -0,0 +1,40 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + ${PRODUCT_NAME} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + com.alvarofranco.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + LSRequiresIPhoneOS + + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/Demo/AFPopup-Demo/AFPopup-Demo-Prefix.pch b/Demo/AFPopup-Demo/AFPopup-Demo-Prefix.pch new file mode 100644 index 0000000..82a2bb4 --- /dev/null +++ b/Demo/AFPopup-Demo/AFPopup-Demo-Prefix.pch @@ -0,0 +1,16 @@ +// +// Prefix header +// +// The contents of this file are implicitly included at the beginning of every source file. +// + +#import + +#ifndef __IPHONE_5_0 +#warning "This project uses features only available in iOS SDK 5.0 and later." +#endif + +#ifdef __OBJC__ + #import + #import +#endif diff --git a/Demo/AFPopup-Demo/AFPopupView.h b/Demo/AFPopup-Demo/AFPopupView.h new file mode 100644 index 0000000..b81c1ec --- /dev/null +++ b/Demo/AFPopup-Demo/AFPopupView.h @@ -0,0 +1,18 @@ +// +// AFPopupView.h +// AFPopup +// +// Created by Alvaro Franco on 3/7/14. +// Copyright (c) 2014 AlvaroFranco. All rights reserved. +// + +#import + +@interface AFPopupView : UIView + ++(AFPopupView *)popupWithView:(UIView *)popupView; + +-(void)show; +-(void)hide; + +@end diff --git a/Demo/AFPopup-Demo/AFPopupView.m b/Demo/AFPopup-Demo/AFPopupView.m new file mode 100644 index 0000000..5701cf9 --- /dev/null +++ b/Demo/AFPopup-Demo/AFPopupView.m @@ -0,0 +1,176 @@ +// +// AFPopupView.m +// AFPopup +// +// Created by Alvaro Franco on 3/7/14. +// Copyright (c) 2014 AlvaroFranco. All rights reserved. +// + +#import "AFPopupView.h" +#import + +#define CATransform3DPerspective(t, x, y) (CATransform3DConcat(t, CATransform3DMake(1, 0, 0, x, 0, 1, 0, y, 0, 0, 1, 0, 0, 0, 0, 1))) +#define CATransform3DMakePerspective(x, y) (CATransform3DPerspective(CATransform3DIdentity, x, y)) + +CG_INLINE CATransform3D +CATransform3DMake(CGFloat m11, CGFloat m12, CGFloat m13, CGFloat m14, + CGFloat m21, CGFloat m22, CGFloat m23, CGFloat m24, + CGFloat m31, CGFloat m32, CGFloat m33, CGFloat m34, + CGFloat m41, CGFloat m42, CGFloat m43, CGFloat m44) +{ + CATransform3D t; + t.m11 = m11; t.m12 = m12; t.m13 = m13; t.m14 = m14; + t.m21 = m21; t.m22 = m22; t.m23 = m23; t.m24 = m24; + t.m31 = m31; t.m32 = m32; t.m33 = m33; t.m34 = m34; + t.m41 = m41; t.m42 = m42; t.m43 = m43; t.m44 = m44; + return t; +} + +@interface AFPopupView () + +@property (nonatomic, strong) UIView *modalView; +@property (nonatomic, strong) UIView *blackView; +@property (nonatomic, strong) UIView *backgroundShadowView; +@property (nonatomic, strong) UIImageView *renderImage; + +@end + +@implementation AFPopupView + ++(AFPopupView *)popupWithView:(UIView *)popupView { + + UIWindow *keyWindow = [[UIApplication sharedApplication] keyWindow]; + UIView *rootView = keyWindow.rootViewController.view; + CGRect rect = CGRectMake(0, 0, rootView.frame.size.width, rootView.frame.size.height); + + if (rootView.transform.b != 0 && rootView.transform.c != 0) { + rect = CGRectMake(0, 0, rootView.frame.size.height, rootView.frame.size.width); + } + + AFPopupView *view = [[AFPopupView alloc] initWithFrame:rect]; + + view.modalView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, [[UIScreen mainScreen]bounds].size.width, [[UIScreen mainScreen]bounds].size.height - (50 * 2))]; + view.modalView.backgroundColor = [UIColor clearColor]; + view.modalView.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleHeight | + UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | + UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleWidth; + + view.blackView = [[UIView alloc] initWithFrame:view.frame]; + view.blackView.backgroundColor = [UIColor blackColor]; + view.blackView.autoresizingMask = view.modalView.autoresizingMask; + + view.backgroundShadowView = [[UIView alloc] initWithFrame:view.frame]; + view.backgroundShadowView.backgroundColor = [UIColor blackColor]; + view.backgroundShadowView.alpha = 0.0; + view.backgroundShadowView.autoresizingMask = view.modalView.autoresizingMask; + + view.renderImage = [[UIImageView alloc] initWithFrame:view.frame]; + view.renderImage.autoresizingMask = view.modalView.autoresizingMask; + view.renderImage.contentMode = UIViewContentModeScaleToFill; + + [view.modalView addSubview:popupView]; + [view addSubview:view.blackView]; + [view addSubview:view.renderImage]; + [view addSubview:view.backgroundShadowView]; + [view addSubview:view.modalView]; + + return view; +} + +-(void)show { + + UIWindow *keyWindow = [[UIApplication sharedApplication] keyWindow]; + UIView *rootView = keyWindow.rootViewController.view; + + CGRect rect = CGRectMake(0, 0, rootView.frame.size.width, rootView.frame.size.height); + if(rootView.transform.b != 0 && rootView.transform.c != 0) + rect = CGRectMake(0, 0, rootView.frame.size.height, rootView.frame.size.width); + self.frame = rect; + + UIImage *rootViewRenderImage = [self imageWithView:rootView]; + _renderImage.image = rootViewRenderImage; + + _backgroundShadowView.alpha = 0.0; + [rootView addSubview:self]; + _modalView.center = CGPointMake(self.frame.size.width/2.0, _modalView.frame.size.height * 1.5); + + [UIView animateWithDuration:0.2 + delay:0 + options:UIViewAnimationOptionCurveEaseInOut + animations:^{ + + _backgroundShadowView.alpha = 0.4; + _renderImage.layer.transform = CATransform3DMakePerspective(0, -0.0007); + } + + completion:^(BOOL finished) { + + [UIView animateWithDuration:0.2 animations:^{ + + float newWidht = _renderImage.frame.size.width * 0.7; + float newHeight = _renderImage.frame.size.height * 0.7; + _renderImage.frame = CGRectMake(([[UIScreen mainScreen]bounds].size.width - newWidht) / 2, 22, newWidht, newHeight); + _renderImage.layer.transform = CATransform3DMakePerspective(0, 0); + } completion:^(BOOL finished) { + [UIView animateWithDuration:0.1 animations:^{ + }]; + }]; + }]; + + [UIView animateWithDuration:0.4 delay:0 + options:UIViewAnimationOptionCurveEaseInOut + animations:^{ + _modalView.center = self.center; + } + completion:^(BOOL finished) { + + }]; + +} + +-(void)hide { + + [UIView animateWithDuration:0.4 + delay:0 + options:UIViewAnimationOptionCurveEaseInOut + animations:^{ + _modalView.center = CGPointMake(self.frame.size.width/2.0, _modalView.frame.size.height * 1.5); + } + completion:^(BOOL finished) { + + }]; + + [UIView animateWithDuration:0.2 + delay:0 + options:UIViewAnimationOptionCurveEaseInOut + animations:^{ + + _backgroundShadowView.alpha = 0.0; + _renderImage.layer.transform = CATransform3DMakePerspective(0, -0.0007); + } + + completion:^(BOOL finished) { + + [UIView animateWithDuration:0.2 animations:^{ + + _renderImage.frame = [[UIScreen mainScreen]bounds]; + _renderImage.layer.transform = CATransform3DMakePerspective(0, 0); + } completion:^(BOOL finished) { + [self removeFromSuperview]; + }]; + }]; +} + +-(UIImage *)imageWithView:(UIView *)view { + + UIGraphicsBeginImageContextWithOptions(_renderImage.frame.size, view.opaque, [[UIScreen mainScreen] scale]); + [view.layer renderInContext:UIGraphicsGetCurrentContext()]; + + UIImage *backgroundImage = UIGraphicsGetImageFromCurrentImageContext(); + + UIGraphicsEndImageContext(); + + return backgroundImage; +} + +@end diff --git a/Demo/AFPopup-Demo/AppDelegate.h b/Demo/AFPopup-Demo/AppDelegate.h new file mode 100644 index 0000000..a33eea9 --- /dev/null +++ b/Demo/AFPopup-Demo/AppDelegate.h @@ -0,0 +1,15 @@ +// +// AppDelegate.h +// AFPopup-Demo +// +// Created by Alvaro Franco on 3/7/14. +// Copyright (c) 2014 AlvaroFranco. All rights reserved. +// + +#import + +@interface AppDelegate : UIResponder + +@property (strong, nonatomic) UIWindow *window; + +@end diff --git a/Demo/AFPopup-Demo/AppDelegate.m b/Demo/AFPopup-Demo/AppDelegate.m new file mode 100644 index 0000000..cbb4f31 --- /dev/null +++ b/Demo/AFPopup-Demo/AppDelegate.m @@ -0,0 +1,46 @@ +// +// AppDelegate.m +// AFPopup-Demo +// +// Created by Alvaro Franco on 3/7/14. +// Copyright (c) 2014 AlvaroFranco. All rights reserved. +// + +#import "AppDelegate.h" + +@implementation AppDelegate + +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions +{ + // Override point for customization after application launch. + return YES; +} + +- (void)applicationWillResignActive:(UIApplication *)application +{ + // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. + // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. +} + +- (void)applicationDidEnterBackground:(UIApplication *)application +{ + // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. + // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. +} + +- (void)applicationWillEnterForeground:(UIApplication *)application +{ + // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. +} + +- (void)applicationDidBecomeActive:(UIApplication *)application +{ + // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. +} + +- (void)applicationWillTerminate:(UIApplication *)application +{ + // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. +} + +@end diff --git a/Demo/AFPopup-Demo/Base.lproj/Main.storyboard b/Demo/AFPopup-Demo/Base.lproj/Main.storyboard new file mode 100644 index 0000000..c1af01d --- /dev/null +++ b/Demo/AFPopup-Demo/Base.lproj/Main.storyboard @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Demo/AFPopup-Demo/Images.xcassets/AppIcon.appiconset/Contents.json b/Demo/AFPopup-Demo/Images.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..a396706 --- /dev/null +++ b/Demo/AFPopup-Demo/Images.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Demo/AFPopup-Demo/Images.xcassets/LaunchImage.launchimage/Contents.json b/Demo/AFPopup-Demo/Images.xcassets/LaunchImage.launchimage/Contents.json new file mode 100644 index 0000000..c79ebd3 --- /dev/null +++ b/Demo/AFPopup-Demo/Images.xcassets/LaunchImage.launchimage/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "orientation" : "portrait", + "idiom" : "iphone", + "extent" : "full-screen", + "minimum-system-version" : "7.0", + "scale" : "2x" + }, + { + "orientation" : "portrait", + "idiom" : "iphone", + "subtype" : "retina4", + "extent" : "full-screen", + "minimum-system-version" : "7.0", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Demo/AFPopup-Demo/ModalTestViewController.h b/Demo/AFPopup-Demo/ModalTestViewController.h new file mode 100644 index 0000000..58d5d07 --- /dev/null +++ b/Demo/AFPopup-Demo/ModalTestViewController.h @@ -0,0 +1,15 @@ +// +// ModalTestViewController.h +// AFPopup-Demo +// +// Created by Alvaro Franco on 3/7/14. +// Copyright (c) 2014 AlvaroFranco. All rights reserved. +// + +#import + +@interface ModalTestViewController : UIViewController + +-(IBAction)close:(id)sender; + +@end diff --git a/Demo/AFPopup-Demo/ModalTestViewController.m b/Demo/AFPopup-Demo/ModalTestViewController.m new file mode 100644 index 0000000..9bffd12 --- /dev/null +++ b/Demo/AFPopup-Demo/ModalTestViewController.m @@ -0,0 +1,47 @@ +// +// ModalTestViewController.m +// AFPopup-Demo +// +// Created by Alvaro Franco on 3/7/14. +// Copyright (c) 2014 AlvaroFranco. All rights reserved. +// + +#import "ModalTestViewController.h" + +@interface ModalTestViewController () + +@end + +@implementation ModalTestViewController + +- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil +{ + self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; + if (self) { + // Custom initialization + } + return self; +} + +-(IBAction)close:(id)sender { + + [[NSNotificationCenter defaultCenter]postNotificationName:@"HideAFPopup" object:nil]; +} + +-(void)viewDidLoad { + [super viewDidLoad]; + + self.view.backgroundColor = [UIColor clearColor]; + UIToolbar *blurbar = [[UIToolbar alloc] initWithFrame:self.view.frame]; + blurbar.barStyle = UIBarStyleDefault; + [self.view addSubview:blurbar]; + [self.view sendSubviewToBack:blurbar]; +} + +- (void)didReceiveMemoryWarning +{ + [super didReceiveMemoryWarning]; + // Dispose of any resources that can be recreated. +} + +@end diff --git a/Demo/AFPopup-Demo/ViewController.h b/Demo/AFPopup-Demo/ViewController.h new file mode 100644 index 0000000..4959e6e --- /dev/null +++ b/Demo/AFPopup-Demo/ViewController.h @@ -0,0 +1,15 @@ +// +// ViewController.h +// AFPopup-Demo +// +// Created by Alvaro Franco on 3/7/14. +// Copyright (c) 2014 AlvaroFranco. All rights reserved. +// + +#import + +@interface ViewController : UIViewController + +-(void)hide; + +@end diff --git a/Demo/AFPopup-Demo/ViewController.m b/Demo/AFPopup-Demo/ViewController.m new file mode 100644 index 0000000..15ba7d2 --- /dev/null +++ b/Demo/AFPopup-Demo/ViewController.m @@ -0,0 +1,53 @@ +// +// ViewController.m +// AFPopup-Demo +// +// Created by Alvaro Franco on 3/7/14. +// Copyright (c) 2014 AlvaroFranco. All rights reserved. +// + +#import "ViewController.h" +#import "ModalTestViewController.h" +#import "AFPopupView.h" + +@interface ViewController () + +@property (nonatomic, strong) IBOutlet UIButton *toggleButton; +@property (nonatomic, strong) ModalTestViewController *modalTest; +@property (nonatomic, strong) AFPopupView *popup; + +@end + +@implementation ViewController + +-(UIStatusBarStyle)preferredStatusBarStyle{ + return UIStatusBarStyleLightContent; +} + +-(void)viewDidLoad { + [super viewDidLoad]; + + UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:Nil]; + _modalTest = [storyboard instantiateViewControllerWithIdentifier:@"ModalTest"]; + + [_toggleButton addTarget:self action:@selector(go) forControlEvents:UIControlEventTouchUpInside]; + + [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(hide) name:@"HideAFPopup" object:nil]; +} + +-(void)go { + + _popup = [AFPopupView popupWithView:_modalTest.view]; + [_popup show]; +} + +-(void)hide { + + [_popup hide]; +} + +-(void)didReceiveMemoryWarning { + [super didReceiveMemoryWarning]; +} + +@end diff --git a/Demo/AFPopup-Demo/en.lproj/InfoPlist.strings b/Demo/AFPopup-Demo/en.lproj/InfoPlist.strings new file mode 100644 index 0000000..477b28f --- /dev/null +++ b/Demo/AFPopup-Demo/en.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Demo/AFPopup-Demo/main.m b/Demo/AFPopup-Demo/main.m new file mode 100644 index 0000000..1dc8a61 --- /dev/null +++ b/Demo/AFPopup-Demo/main.m @@ -0,0 +1,18 @@ +// +// main.m +// AFPopup-Demo +// +// Created by Alvaro Franco on 3/7/14. +// Copyright (c) 2014 AlvaroFranco. All rights reserved. +// + +#import + +#import "AppDelegate.h" + +int main(int argc, char * argv[]) +{ + @autoreleasepool { + return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); + } +} diff --git a/Demo/AFPopup-DemoTests/AFPopup-DemoTests-Info.plist b/Demo/AFPopup-DemoTests/AFPopup-DemoTests-Info.plist new file mode 100644 index 0000000..07959f7 --- /dev/null +++ b/Demo/AFPopup-DemoTests/AFPopup-DemoTests-Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + com.alvarofranco.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + + diff --git a/Demo/AFPopup-DemoTests/AFPopup_DemoTests.m b/Demo/AFPopup-DemoTests/AFPopup_DemoTests.m new file mode 100644 index 0000000..6302610 --- /dev/null +++ b/Demo/AFPopup-DemoTests/AFPopup_DemoTests.m @@ -0,0 +1,34 @@ +// +// AFPopup_DemoTests.m +// AFPopup-DemoTests +// +// Created by Alvaro Franco on 3/7/14. +// Copyright (c) 2014 AlvaroFranco. All rights reserved. +// + +#import + +@interface AFPopup_DemoTests : XCTestCase + +@end + +@implementation AFPopup_DemoTests + +- (void)setUp +{ + [super setUp]; + // Put setup code here. This method is called before the invocation of each test method in the class. +} + +- (void)tearDown +{ + // Put teardown code here. This method is called after the invocation of each test method in the class. + [super tearDown]; +} + +- (void)testExample +{ + XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__); +} + +@end diff --git a/Demo/AFPopup-DemoTests/en.lproj/InfoPlist.strings b/Demo/AFPopup-DemoTests/en.lproj/InfoPlist.strings new file mode 100644 index 0000000..477b28f --- /dev/null +++ b/Demo/AFPopup-DemoTests/en.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ +