diff --git a/TPKeyboardAvoidingSwiftSample/Podfile b/TPKeyboardAvoidingSwiftSample/Podfile
new file mode 100644
index 00000000..8344d274
--- /dev/null
+++ b/TPKeyboardAvoidingSwiftSample/Podfile
@@ -0,0 +1,5 @@
+platform :ios, '7.0'
+
+inhibit_all_warnings!
+
+pod 'TPKeyboardAvoiding', :path => '../'
\ No newline at end of file
diff --git a/TPKeyboardAvoidingSwiftSample/Podfile.lock b/TPKeyboardAvoidingSwiftSample/Podfile.lock
new file mode 100644
index 00000000..144e967f
--- /dev/null
+++ b/TPKeyboardAvoidingSwiftSample/Podfile.lock
@@ -0,0 +1,14 @@
+PODS:
+  - TPKeyboardAvoiding (1.2.6)
+
+DEPENDENCIES:
+  - TPKeyboardAvoiding (from `../`)
+
+EXTERNAL SOURCES:
+  TPKeyboardAvoiding:
+    :path: ../
+
+SPEC CHECKSUMS:
+  TPKeyboardAvoiding: d4568a3e801f892870928029b48619c864eecc08
+
+COCOAPODS: 0.35.0
diff --git a/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample.xcodeproj/project.pbxproj b/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample.xcodeproj/project.pbxproj
new file mode 100644
index 00000000..71e4cb01
--- /dev/null
+++ b/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample.xcodeproj/project.pbxproj
@@ -0,0 +1,374 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 46;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		5E47E3813F3890B79D3B95F9 /* libPods.a in Frameworks */ = {isa = PBXBuildFile; fileRef = EDB0F44C0C432D437B4EAF57 /* libPods.a */; };
+		620C90701A9DEC12005AB15A /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 620C906F1A9DEC12005AB15A /* AppDelegate.swift */; };
+		620C90791A9DEC12005AB15A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 620C90781A9DEC12005AB15A /* Images.xcassets */; };
+		620C907C1A9DEC12005AB15A /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 620C907A1A9DEC12005AB15A /* LaunchScreen.xib */; };
+		620C90941A9DED32005AB15A /* FirstView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 620C90911A9DED32005AB15A /* FirstView.xib */; };
+		620C90951A9DED32005AB15A /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 620C90921A9DED32005AB15A /* MainWindow.xib */; };
+		620C90961A9DED32005AB15A /* SecondView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 620C90931A9DED32005AB15A /* SecondView.xib */; };
+		620C90981A9DED4A005AB15A /* FirstViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 620C90971A9DED4A005AB15A /* FirstViewController.swift */; };
+		620C909B1A9DED76005AB15A /* ThirdCollectionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 620C90991A9DED76005AB15A /* ThirdCollectionView.xib */; };
+		620C909C1A9DED76005AB15A /* ThirdCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 620C909A1A9DED76005AB15A /* ThirdCollectionViewCell.xib */; };
+		620C909E1A9DEE26005AB15A /* SecondViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 620C909D1A9DEE26005AB15A /* SecondViewController.swift */; };
+		620C90A01A9DEE52005AB15A /* ThirdViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 620C909F1A9DEE52005AB15A /* ThirdViewController.swift */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+		620C906A1A9DEC12005AB15A /* TPKeyboardAvoidingSwiftSample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TPKeyboardAvoidingSwiftSample.app; sourceTree = BUILT_PRODUCTS_DIR; };
+		620C906E1A9DEC12005AB15A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
+		620C906F1A9DEC12005AB15A /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
+		620C90781A9DEC12005AB15A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
+		620C907B1A9DEC12005AB15A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = "<group>"; };
+		620C90911A9DED32005AB15A /* FirstView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FirstView.xib; sourceTree = "<group>"; };
+		620C90921A9DED32005AB15A /* MainWindow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MainWindow.xib; sourceTree = "<group>"; };
+		620C90931A9DED32005AB15A /* SecondView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SecondView.xib; sourceTree = "<group>"; };
+		620C90971A9DED4A005AB15A /* FirstViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FirstViewController.swift; sourceTree = "<group>"; };
+		620C90991A9DED76005AB15A /* ThirdCollectionView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ThirdCollectionView.xib; sourceTree = "<group>"; };
+		620C909A1A9DED76005AB15A /* ThirdCollectionViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ThirdCollectionViewCell.xib; sourceTree = "<group>"; };
+		620C909D1A9DEE26005AB15A /* SecondViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecondViewController.swift; sourceTree = "<group>"; };
+		620C909F1A9DEE52005AB15A /* ThirdViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ThirdViewController.swift; sourceTree = "<group>"; };
+		620C90A11A9DF003005AB15A /* TPKeyboardAvoidingSwiftSample-Bridging-Header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "TPKeyboardAvoidingSwiftSample-Bridging-Header.h"; sourceTree = "<group>"; };
+		C956CD0E3E958866E887792E /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = "<group>"; };
+		CB2C3E6312D6EA8350E466A6 /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = "<group>"; };
+		EDB0F44C0C432D437B4EAF57 /* libPods.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libPods.a; sourceTree = BUILT_PRODUCTS_DIR; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		620C90671A9DEC12005AB15A /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				5E47E3813F3890B79D3B95F9 /* libPods.a in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		54099A8F48F04D67B3A8FCDF /* Frameworks */ = {
+			isa = PBXGroup;
+			children = (
+				EDB0F44C0C432D437B4EAF57 /* libPods.a */,
+			);
+			name = Frameworks;
+			sourceTree = "<group>";
+		};
+		620C90611A9DEC12005AB15A = {
+			isa = PBXGroup;
+			children = (
+				620C906C1A9DEC12005AB15A /* TPKeyboardAvoidingSwiftSample */,
+				620C906B1A9DEC12005AB15A /* Products */,
+				C5EEC0BFEBA0033CD8C5C723 /* Pods */,
+				54099A8F48F04D67B3A8FCDF /* Frameworks */,
+			);
+			sourceTree = "<group>";
+		};
+		620C906B1A9DEC12005AB15A /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				620C906A1A9DEC12005AB15A /* TPKeyboardAvoidingSwiftSample.app */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		620C906C1A9DEC12005AB15A /* TPKeyboardAvoidingSwiftSample */ = {
+			isa = PBXGroup;
+			children = (
+				620C90A11A9DF003005AB15A /* TPKeyboardAvoidingSwiftSample-Bridging-Header.h */,
+				620C906F1A9DEC12005AB15A /* AppDelegate.swift */,
+				620C90921A9DED32005AB15A /* MainWindow.xib */,
+				620C90911A9DED32005AB15A /* FirstView.xib */,
+				620C90971A9DED4A005AB15A /* FirstViewController.swift */,
+				620C90931A9DED32005AB15A /* SecondView.xib */,
+				620C909D1A9DEE26005AB15A /* SecondViewController.swift */,
+				620C90991A9DED76005AB15A /* ThirdCollectionView.xib */,
+				620C909A1A9DED76005AB15A /* ThirdCollectionViewCell.xib */,
+				620C909F1A9DEE52005AB15A /* ThirdViewController.swift */,
+				620C90781A9DEC12005AB15A /* Images.xcassets */,
+				620C907A1A9DEC12005AB15A /* LaunchScreen.xib */,
+				620C906D1A9DEC12005AB15A /* Supporting Files */,
+			);
+			path = TPKeyboardAvoidingSwiftSample;
+			sourceTree = "<group>";
+		};
+		620C906D1A9DEC12005AB15A /* Supporting Files */ = {
+			isa = PBXGroup;
+			children = (
+				620C906E1A9DEC12005AB15A /* Info.plist */,
+			);
+			name = "Supporting Files";
+			sourceTree = "<group>";
+		};
+		C5EEC0BFEBA0033CD8C5C723 /* Pods */ = {
+			isa = PBXGroup;
+			children = (
+				C956CD0E3E958866E887792E /* Pods.debug.xcconfig */,
+				CB2C3E6312D6EA8350E466A6 /* Pods.release.xcconfig */,
+			);
+			name = Pods;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+		620C90691A9DEC12005AB15A /* TPKeyboardAvoidingSwiftSample */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 620C908B1A9DEC12005AB15A /* Build configuration list for PBXNativeTarget "TPKeyboardAvoidingSwiftSample" */;
+			buildPhases = (
+				216D0CBB0D8D869FFCD33263 /* Check Pods Manifest.lock */,
+				620C90661A9DEC12005AB15A /* Sources */,
+				620C90671A9DEC12005AB15A /* Frameworks */,
+				620C90681A9DEC12005AB15A /* Resources */,
+				D7E61459BC20C0E908205D1E /* Copy Pods Resources */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = TPKeyboardAvoidingSwiftSample;
+			productName = TPKeyboardAvoidingSwiftSample;
+			productReference = 620C906A1A9DEC12005AB15A /* TPKeyboardAvoidingSwiftSample.app */;
+			productType = "com.apple.product-type.application";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		620C90621A9DEC12005AB15A /* Project object */ = {
+			isa = PBXProject;
+			attributes = {
+				LastUpgradeCheck = 0610;
+				ORGANIZATIONNAME = TPKeyboardAvoiding;
+				TargetAttributes = {
+					620C90691A9DEC12005AB15A = {
+						CreatedOnToolsVersion = 6.1.1;
+					};
+				};
+			};
+			buildConfigurationList = 620C90651A9DEC12005AB15A /* Build configuration list for PBXProject "TPKeyboardAvoidingSwiftSample" */;
+			compatibilityVersion = "Xcode 3.2";
+			developmentRegion = English;
+			hasScannedForEncodings = 0;
+			knownRegions = (
+				en,
+				Base,
+			);
+			mainGroup = 620C90611A9DEC12005AB15A;
+			productRefGroup = 620C906B1A9DEC12005AB15A /* Products */;
+			projectDirPath = "";
+			projectRoot = "";
+			targets = (
+				620C90691A9DEC12005AB15A /* TPKeyboardAvoidingSwiftSample */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+		620C90681A9DEC12005AB15A /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				620C909B1A9DED76005AB15A /* ThirdCollectionView.xib in Resources */,
+				620C90961A9DED32005AB15A /* SecondView.xib in Resources */,
+				620C90951A9DED32005AB15A /* MainWindow.xib in Resources */,
+				620C90941A9DED32005AB15A /* FirstView.xib in Resources */,
+				620C907C1A9DEC12005AB15A /* LaunchScreen.xib in Resources */,
+				620C909C1A9DED76005AB15A /* ThirdCollectionViewCell.xib in Resources */,
+				620C90791A9DEC12005AB15A /* Images.xcassets in Resources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXShellScriptBuildPhase section */
+		216D0CBB0D8D869FFCD33263 /* Check Pods Manifest.lock */ = {
+			isa = PBXShellScriptBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			inputPaths = (
+			);
+			name = "Check Pods Manifest.lock";
+			outputPaths = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+			shellPath = /bin/sh;
+			shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n    cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n    exit 1\nfi\n";
+			showEnvVarsInLog = 0;
+		};
+		D7E61459BC20C0E908205D1E /* Copy Pods Resources */ = {
+			isa = PBXShellScriptBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			inputPaths = (
+			);
+			name = "Copy Pods Resources";
+			outputPaths = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+			shellPath = /bin/sh;
+			shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh\"\n";
+			showEnvVarsInLog = 0;
+		};
+/* End PBXShellScriptBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+		620C90661A9DEC12005AB15A /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				620C90701A9DEC12005AB15A /* AppDelegate.swift in Sources */,
+				620C909E1A9DEE26005AB15A /* SecondViewController.swift in Sources */,
+				620C90A01A9DEE52005AB15A /* ThirdViewController.swift in Sources */,
+				620C90981A9DED4A005AB15A /* FirstViewController.swift in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXVariantGroup section */
+		620C907A1A9DEC12005AB15A /* LaunchScreen.xib */ = {
+			isa = PBXVariantGroup;
+			children = (
+				620C907B1A9DEC12005AB15A /* Base */,
+			);
+			name = LaunchScreen.xib;
+			sourceTree = "<group>";
+		};
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+		620C90891A9DEC12005AB15A /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_MODULES = YES;
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_UNREACHABLE_CODE = YES;
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				COPY_PHASE_STRIP = NO;
+				ENABLE_STRICT_OBJC_MSGSEND = YES;
+				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					"DEBUG=1",
+					"$(inherited)",
+				);
+				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				IPHONEOS_DEPLOYMENT_TARGET = 8.1;
+				MTL_ENABLE_DEBUG_INFO = YES;
+				ONLY_ACTIVE_ARCH = YES;
+				SDKROOT = iphoneos;
+				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+			};
+			name = Debug;
+		};
+		620C908A1A9DEC12005AB15A /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_MODULES = YES;
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_UNREACHABLE_CODE = YES;
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				COPY_PHASE_STRIP = YES;
+				ENABLE_NS_ASSERTIONS = NO;
+				ENABLE_STRICT_OBJC_MSGSEND = YES;
+				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				IPHONEOS_DEPLOYMENT_TARGET = 8.1;
+				MTL_ENABLE_DEBUG_INFO = NO;
+				SDKROOT = iphoneos;
+				VALIDATE_PRODUCT = YES;
+			};
+			name = Release;
+		};
+		620C908C1A9DEC12005AB15A /* Debug */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = C956CD0E3E958866E887792E /* Pods.debug.xcconfig */;
+			buildSettings = {
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+				INFOPLIST_FILE = TPKeyboardAvoidingSwiftSample/Info.plist;
+				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				SWIFT_OBJC_BRIDGING_HEADER = "TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample-Bridging-Header.h";
+			};
+			name = Debug;
+		};
+		620C908D1A9DEC12005AB15A /* Release */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = CB2C3E6312D6EA8350E466A6 /* Pods.release.xcconfig */;
+			buildSettings = {
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+				INFOPLIST_FILE = TPKeyboardAvoidingSwiftSample/Info.plist;
+				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				SWIFT_OBJC_BRIDGING_HEADER = "TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample-Bridging-Header.h";
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		620C90651A9DEC12005AB15A /* Build configuration list for PBXProject "TPKeyboardAvoidingSwiftSample" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				620C90891A9DEC12005AB15A /* Debug */,
+				620C908A1A9DEC12005AB15A /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		620C908B1A9DEC12005AB15A /* Build configuration list for PBXNativeTarget "TPKeyboardAvoidingSwiftSample" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				620C908C1A9DEC12005AB15A /* Debug */,
+				620C908D1A9DEC12005AB15A /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 620C90621A9DEC12005AB15A /* Project object */;
+}
diff --git a/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample.xcodeproj/project.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 00000000..4abd6a94
--- /dev/null
+++ b/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample.xcodeproj/project.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+   version = "1.0">
+   <FileRef
+      location = "self:TPKeyboardAvoidingSwiftSample.xcodeproj">
+   </FileRef>
+</Workspace>
diff --git a/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample.xcworkspace/contents.xcworkspacedata b/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 00000000..3d5c3063
--- /dev/null
+++ b/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+   version = "1.0">
+   <FileRef
+      location = "group:TPKeyboardAvoidingSwiftSample.xcodeproj">
+   </FileRef>
+   <FileRef
+      location = "group:Pods/Pods.xcodeproj">
+   </FileRef>
+</Workspace>
diff --git a/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/AppDelegate.swift b/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/AppDelegate.swift
new file mode 100644
index 00000000..17c72ec3
--- /dev/null
+++ b/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/AppDelegate.swift
@@ -0,0 +1,26 @@
+//
+//  AppDelegate.swift
+//  TPKeyboardAvoidingSwiftSample
+//
+//  Created by Manuele Mion on 25/02/15.
+//  Copyright (c) 2015 TPKeyboardAvoiding. All rights reserved.
+//
+
+import UIKit
+
+@UIApplicationMain
+class AppDelegate: UIResponder, UIApplicationDelegate {
+
+    var window: UIWindow?
+    var tabBarController: UITabBarController?
+
+    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
+        
+        self.window?.rootViewController = self.tabBarController;
+        self.window?.makeKeyAndVisible();
+        
+        return true
+    }
+
+}
+
diff --git a/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/Base.lproj/LaunchScreen.xib b/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/Base.lproj/LaunchScreen.xib
new file mode 100644
index 00000000..dff3922e
--- /dev/null
+++ b/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/Base.lproj/LaunchScreen.xib
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="6214" systemVersion="14A314h" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES">
+    <dependencies>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6207"/>
+        <capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <view contentMode="scaleToFill" id="iN0-l3-epB">
+            <rect key="frame" x="0.0" y="0.0" width="480" height="480"/>
+            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+            <subviews>
+                <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="  Copyright (c) 2015 TPKeyboardAvoiding. All rights reserved." textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="9" translatesAutoresizingMaskIntoConstraints="NO" id="8ie-xW-0ye">
+                    <rect key="frame" x="20" y="439" width="441" height="21"/>
+                    <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                    <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
+                    <nil key="highlightedColor"/>
+                </label>
+                <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="TPKeyboardAvoidingSwiftSample" textAlignment="center" lineBreakMode="middleTruncation" baselineAdjustment="alignBaselines" minimumFontSize="18" translatesAutoresizingMaskIntoConstraints="NO" id="kId-c2-rCX">
+                    <rect key="frame" x="20" y="140" width="441" height="43"/>
+                    <fontDescription key="fontDescription" type="boldSystem" pointSize="36"/>
+                    <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
+                    <nil key="highlightedColor"/>
+                </label>
+            </subviews>
+            <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
+            <constraints>
+                <constraint firstItem="kId-c2-rCX" firstAttribute="centerY" secondItem="iN0-l3-epB" secondAttribute="bottom" multiplier="1/3" constant="1" id="5cJ-9S-tgC"/>
+                <constraint firstAttribute="centerX" secondItem="kId-c2-rCX" secondAttribute="centerX" id="Koa-jz-hwk"/>
+                <constraint firstAttribute="bottom" secondItem="8ie-xW-0ye" secondAttribute="bottom" constant="20" id="Kzo-t9-V3l"/>
+                <constraint firstItem="8ie-xW-0ye" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="20" symbolic="YES" id="MfP-vx-nX0"/>
+                <constraint firstAttribute="centerX" secondItem="8ie-xW-0ye" secondAttribute="centerX" id="ZEH-qu-HZ9"/>
+                <constraint firstItem="kId-c2-rCX" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="20" symbolic="YES" id="fvb-Df-36g"/>
+            </constraints>
+            <nil key="simulatedStatusBarMetrics"/>
+            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+            <point key="canvasLocation" x="548" y="455"/>
+        </view>
+    </objects>
+</document>
diff --git a/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/FirstView.xib b/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/FirstView.xib
new file mode 100644
index 00000000..1045324f
--- /dev/null
+++ b/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/FirstView.xib
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="6254" systemVersion="14C109" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
+    <dependencies>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6247"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="FirstViewController" customModule="TPKeyboardAvoidingSwiftSample" customModuleProvider="target">
+            <connections>
+                <outlet property="scrollView" destination="8" id="4XY-8f-XEA"/>
+                <outlet property="view" destination="1" id="LME-A2-JqU"/>
+            </connections>
+        </placeholder>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <view contentMode="scaleToFill" id="1">
+            <rect key="frame" x="0.0" y="0.0" width="320" height="480"/>
+            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+            <subviews>
+                <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" id="8" customClass="TPKeyboardAvoidingScrollView">
+                    <rect key="frame" x="0.0" y="0.0" width="320" height="480"/>
+                    <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                    <subviews>
+                        <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Iggle" minimumFontSize="17" id="10">
+                            <rect key="frame" x="20" y="30" width="280" height="31"/>
+                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                            <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                            <textInputTraits key="textInputTraits"/>
+                        </textField>
+                        <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Splat" minimumFontSize="17" id="11">
+                            <rect key="frame" x="20" y="281" width="280" height="31"/>
+                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                            <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                            <textInputTraits key="textInputTraits"/>
+                        </textField>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="12">
+                            <rect key="frame" x="20" y="337" width="280" height="37"/>
+                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                            <fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
+                            <state key="normal" title="Do A Thing">
+                                <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
+                            </state>
+                        </button>
+                        <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Niggle" minimumFontSize="17" id="15">
+                            <rect key="frame" x="20" y="94" width="280" height="31"/>
+                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                            <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                            <textInputTraits key="textInputTraits"/>
+                        </textField>
+                        <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Oggle" minimumFontSize="17" id="17">
+                            <rect key="frame" x="20" y="156" width="280" height="31"/>
+                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                            <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                            <textInputTraits key="textInputTraits"/>
+                        </textField>
+                        <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Bogle" minimumFontSize="17" id="19">
+                            <rect key="frame" x="20" y="218" width="280" height="31"/>
+                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                            <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                            <textInputTraits key="textInputTraits"/>
+                        </textField>
+                        <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Offscreen" minimumFontSize="17" id="27">
+                            <rect key="frame" x="20" y="400" width="280" height="31"/>
+                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                            <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                            <textInputTraits key="textInputTraits"/>
+                        </textField>
+                        <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="more Offscreen" minimumFontSize="17" id="29">
+                            <rect key="frame" x="20" y="500" width="280" height="31"/>
+                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                            <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                            <textInputTraits key="textInputTraits"/>
+                        </textField>
+                    </subviews>
+                </scrollView>
+            </subviews>
+            <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+            <simulatedTabBarMetrics key="simulatedBottomBarMetrics"/>
+            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+        </view>
+    </objects>
+    <simulatedMetricsContainer key="defaultSimulatedMetrics">
+        <simulatedStatusBarMetrics key="statusBar"/>
+        <simulatedOrientationMetrics key="orientation"/>
+        <simulatedScreenMetrics key="destination" type="retina4"/>
+    </simulatedMetricsContainer>
+</document>
diff --git a/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/FirstViewController.swift b/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/FirstViewController.swift
new file mode 100644
index 00000000..611c45d9
--- /dev/null
+++ b/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/FirstViewController.swift
@@ -0,0 +1,21 @@
+//
+//  FirstViewController.swift
+//  TPKeyboardAvoidingSwiftSample
+//
+//  Created by Manuele Mion on 25/02/15.
+//  Copyright (c) 2015 TPKeyboardAvoiding. All rights reserved.
+//
+
+import UIKit
+import Foundation
+
+class FirstViewController: UIViewController {
+
+    @IBOutlet weak var scrollView: TPKeyboardAvoidingScrollView!
+    
+    override func viewDidLoad() {
+        self.scrollView.contentSizeToFit()
+        super.viewDidLoad()
+    }
+    
+}
diff --git a/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/Images.xcassets/AppIcon.appiconset/Contents.json b/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/Images.xcassets/AppIcon.appiconset/Contents.json
new file mode 100644
index 00000000..118c98f7
--- /dev/null
+++ b/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/Images.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/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/Images.xcassets/first.imageset/Contents.json b/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/Images.xcassets/first.imageset/Contents.json
new file mode 100644
index 00000000..33a74510
--- /dev/null
+++ b/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/Images.xcassets/first.imageset/Contents.json
@@ -0,0 +1,12 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "filename" : "first.pdf"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}
\ No newline at end of file
diff --git a/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/Images.xcassets/first.imageset/first.pdf b/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/Images.xcassets/first.imageset/first.pdf
new file mode 100644
index 00000000..47d911de
Binary files /dev/null and b/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/Images.xcassets/first.imageset/first.pdf differ
diff --git a/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/Images.xcassets/second.imageset/Contents.json b/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/Images.xcassets/second.imageset/Contents.json
new file mode 100644
index 00000000..03bd9c92
--- /dev/null
+++ b/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/Images.xcassets/second.imageset/Contents.json
@@ -0,0 +1,12 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "filename" : "second.pdf"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}
\ No newline at end of file
diff --git a/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/Images.xcassets/second.imageset/second.pdf b/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/Images.xcassets/second.imageset/second.pdf
new file mode 100644
index 00000000..401614e2
Binary files /dev/null and b/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/Images.xcassets/second.imageset/second.pdf differ
diff --git a/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/Info.plist b/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/Info.plist
new file mode 100644
index 00000000..3ce8ed56
--- /dev/null
+++ b/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/Info.plist
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>en</string>
+	<key>CFBundleExecutable</key>
+	<string>$(EXECUTABLE_NAME)</string>
+	<key>CFBundleIdentifier</key>
+	<string>com.atastypixel.keyboardavoiding.$(PRODUCT_NAME:rfc1034identifier)</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleName</key>
+	<string>$(PRODUCT_NAME)</string>
+	<key>CFBundlePackageType</key>
+	<string>APPL</string>
+	<key>CFBundleShortVersionString</key>
+	<string>1.0</string>
+	<key>CFBundleSignature</key>
+	<string>????</string>
+	<key>CFBundleVersion</key>
+	<string>1</string>
+	<key>LSRequiresIPhoneOS</key>
+	<true/>
+	<key>NSMainNibFile</key>
+	<string>MainWindow</string>
+	<key>UILaunchStoryboardName</key>
+	<string>LaunchScreen</string>
+	<key>UIRequiredDeviceCapabilities</key>
+	<array>
+		<string>armv7</string>
+	</array>
+	<key>UIStatusBarTintParameters</key>
+	<dict>
+		<key>UINavigationBar</key>
+		<dict>
+			<key>Style</key>
+			<string>UIBarStyleDefault</string>
+			<key>Translucent</key>
+			<false/>
+		</dict>
+	</dict>
+	<key>UISupportedInterfaceOrientations</key>
+	<array>
+		<string>UIInterfaceOrientationPortrait</string>
+		<string>UIInterfaceOrientationLandscapeLeft</string>
+		<string>UIInterfaceOrientationLandscapeRight</string>
+	</array>
+</dict>
+</plist>
diff --git a/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/MainWindow.xib b/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/MainWindow.xib
new file mode 100644
index 00000000..092240d1
--- /dev/null
+++ b/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/MainWindow.xib
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="6254" systemVersion="14C109" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
+    <dependencies>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6247"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="UIApplication">
+            <connections>
+                <outlet property="delegate" destination="3" id="99"/>
+            </connections>
+        </placeholder>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <customObject id="3" customClass="AppDelegate" customModule="TPKeyboardAvoidingSwiftSample" customModuleProvider="target">
+            <connections>
+                <outlet property="tabBarController" destination="106" id="113"/>
+                <outlet property="window" destination="2" id="9"/>
+            </connections>
+        </customObject>
+        <window opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="2">
+            <rect key="frame" x="0.0" y="0.0" width="320" height="480"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+            <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
+            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+        </window>
+        <tabBarController id="106">
+            <extendedEdge key="edgesForExtendedLayout"/>
+            <nil key="simulatedBottomBarMetrics"/>
+            <tabBar key="tabBar" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="107">
+                <rect key="frame" x="0.0" y="431" width="320" height="49"/>
+                <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
+                <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
+            </tabBar>
+            <viewControllers>
+                <viewController nibName="FirstView" id="108" customClass="FirstViewController" customModule="TPKeyboardAvoidingSwiftSample" customModuleProvider="target">
+                    <extendedEdge key="edgesForExtendedLayout"/>
+                    <tabBarItem key="tabBarItem" title="View" id="111"/>
+                </viewController>
+                <viewController nibName="SecondView" id="109" customClass="SecondViewController" customModule="TPKeyboardAvoidingSwiftSample" customModuleProvider="target">
+                    <extendedEdge key="edgesForExtendedLayout"/>
+                    <tabBarItem key="tabBarItem" title="Table" id="110"/>
+                </viewController>
+                <viewController nibName="ThirdCollectionView" id="nln-bS-lnV" customClass="ThirdViewController" customModule="TPKeyboardAvoidingSwiftSample" customModuleProvider="target">
+                    <tabBarItem key="tabBarItem" title="Collection VIew" id="VM4-H5-NPW"/>
+                </viewController>
+            </viewControllers>
+        </tabBarController>
+    </objects>
+    <simulatedMetricsContainer key="defaultSimulatedMetrics">
+        <simulatedStatusBarMetrics key="statusBar"/>
+        <simulatedOrientationMetrics key="orientation"/>
+        <simulatedScreenMetrics key="destination" type="retina4"/>
+    </simulatedMetricsContainer>
+</document>
diff --git a/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/SecondView.xib b/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/SecondView.xib
new file mode 100644
index 00000000..2037fb38
--- /dev/null
+++ b/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/SecondView.xib
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="8.00">
+	<data>
+		<int key="IBDocument.SystemTarget">2048</int>
+		<string key="IBDocument.SystemVersion">14C109</string>
+		<string key="IBDocument.InterfaceBuilderVersion">6254</string>
+		<string key="IBDocument.AppKitVersion">1344.72</string>
+		<string key="IBDocument.HIToolboxVersion">757.30</string>
+		<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
+			<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+			<string key="NS.object.0">6247</string>
+		</object>
+		<array key="IBDocument.IntegratedClassDependencies">
+			<string>IBProxyObject</string>
+			<string>IBUITableView</string>
+		</array>
+		<array key="IBDocument.PluginDependencies">
+			<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+		</array>
+		<dictionary class="NSMutableDictionary" key="IBDocument.Metadata"/>
+		<array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
+			<object class="IBProxyObject" id="372490531">
+				<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
+				<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+			</object>
+			<object class="IBProxyObject" id="263589821">
+				<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
+				<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+			</object>
+			<object class="IBUITableView" id="902319922">
+				<reference key="NSNextResponder"/>
+				<int key="NSvFlags">274</int>
+				<string key="NSFrameSize">{320, 411}</string>
+				<reference key="NSSuperview"/>
+				<reference key="NSWindow"/>
+				<reference key="NSNextKeyView"/>
+				<object class="NSColor" key="IBUIBackgroundColor">
+					<int key="NSColorSpace">1</int>
+					<bytes key="NSRGB">MCAwIDAgMAA</bytes>
+					<string key="IBUIColorCocoaTouchKeyPath">groupTableViewBackgroundColor</string>
+				</object>
+				<bool key="IBUIClipsSubviews">YES</bool>
+				<object class="IBUISimulatedSizeMetrics" key="IBUISimulatedDestinationMetrics">
+					<string key="IBUISimulatedSizeMetricsClass">IBUISimulatedFreeformSizeMetricsSentinel</string>
+					<string key="IBUIDisplayName">Freeform</string>
+				</object>
+				<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+				<bool key="IBUIAlwaysBounceVertical">YES</bool>
+				<int key="IBUIStyle">1</int>
+				<int key="IBUISeparatorStyle">2</int>
+				<int key="IBUISectionIndexMinimumDisplayRowCount">0</int>
+				<bool key="IBUIShowsSelectionImmediatelyOnTouchBegin">YES</bool>
+				<float key="IBUIRowHeight">44</float>
+				<float key="IBUISectionHeaderHeight">10</float>
+				<float key="IBUISectionFooterHeight">10</float>
+			</object>
+		</array>
+		<object class="IBObjectContainer" key="IBDocument.Objects">
+			<array key="connectionRecords">
+				<object class="IBConnectionRecord">
+					<object class="IBCocoaTouchOutletConnection" key="connection">
+						<string key="label">view</string>
+						<reference key="source" ref="372490531"/>
+						<reference key="destination" ref="902319922"/>
+					</object>
+					<int key="connectionID">11</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBCocoaTouchOutletConnection" key="connection">
+						<string key="label">delegate</string>
+						<reference key="source" ref="902319922"/>
+						<reference key="destination" ref="372490531"/>
+					</object>
+					<int key="connectionID">9</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBCocoaTouchOutletConnection" key="connection">
+						<string key="label">dataSource</string>
+						<reference key="source" ref="902319922"/>
+						<reference key="destination" ref="372490531"/>
+					</object>
+					<int key="connectionID">10</int>
+				</object>
+			</array>
+			<object class="IBMutableOrderedSet" key="objectRecords">
+				<array key="orderedObjects">
+					<object class="IBObjectRecord">
+						<int key="objectID">0</int>
+						<array key="object" id="0"/>
+						<reference key="children" ref="1000"/>
+						<nil key="parent"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">-1</int>
+						<reference key="object" ref="372490531"/>
+						<reference key="parent" ref="0"/>
+						<string key="objectName">File's Owner</string>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">-2</int>
+						<reference key="object" ref="263589821"/>
+						<reference key="parent" ref="0"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">8</int>
+						<reference key="object" ref="902319922"/>
+						<reference key="parent" ref="0"/>
+					</object>
+				</array>
+			</object>
+			<dictionary class="NSMutableDictionary" key="flattenedProperties">
+				<string key="-1.CustomClassModule">TPKeyboardAvoidingSwiftSample</string>
+				<string key="-1.CustomClassModuleProvider">target</string>
+				<string key="-1.CustomClassName">SecondViewController</string>
+				<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+				<string key="-2.CustomClassName">UIResponder</string>
+				<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+				<string key="8.CustomClassName">TPKeyboardAvoidingTableView</string>
+				<string key="8.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+			</dictionary>
+			<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
+			<nil key="activeLocalization"/>
+			<dictionary class="NSMutableDictionary" key="localizations"/>
+			<nil key="sourceID"/>
+			<int key="maxID">11</int>
+		</object>
+		<object class="IBClassDescriber" key="IBDocument.Classes">
+			<array class="NSMutableArray" key="referencedPartialClassDescriptions">
+				<object class="IBPartialClassDescription">
+					<string key="className">SecondViewController</string>
+					<bool key="requiresClassNameFormatting">YES</bool>
+					<string key="superclassName">UITableViewController</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBProjectSource</string>
+						<string key="minorKey">TPKeyboardAvoidingSwiftSample/SecondViewController.swift</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">TPKeyboardAvoidingTableView</string>
+					<string key="superclassName">UITableView</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBProjectSource</string>
+						<string key="minorKey">../TPKeyboardAvoiding/TPKeyboardAvoidingTableView.h</string>
+					</object>
+				</object>
+			</array>
+		</object>
+		<int key="IBDocument.localizationMode">0</int>
+		<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
+		<bool key="IBDocument.previouslyAttemptedUpgradeToXcode5">NO</bool>
+		<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
+			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
+			<integer value="4600" key="NS.object.0"/>
+		</object>
+		<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
+		<int key="IBDocument.defaultPropertyAccessControl">3</int>
+	</data>
+</archive>
diff --git a/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/SecondViewController.swift b/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/SecondViewController.swift
new file mode 100644
index 00000000..6698ba43
--- /dev/null
+++ b/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/SecondViewController.swift
@@ -0,0 +1,46 @@
+//
+//  SecondViewController.swift
+//  TPKeyboardAvoidingSwiftSample
+//
+//  Created by Manuele Mion on 25/02/15.
+//  Copyright (c) 2015 TPKeyboardAvoiding. All rights reserved.
+//
+
+import UIKit
+import Foundation
+
+class SecondViewController: UITableViewController {
+    
+    let cellIdentifier: String = "Cell"
+    
+    // MARK: Table view data source
+    
+    override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
+        return 1
+    }
+    
+    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+        return 15;
+    }
+    
+    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
+     
+        var cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier) as UITableViewCell?
+        if cell == nil {
+            cell = UITableViewCell(style: .Default, reuseIdentifier: cellIdentifier)
+            
+            let textField = UITextField(frame: CGRectMake(0.0, 0.0, 150.0, 30.0))
+            textField.borderStyle = .RoundedRect
+            
+            cell!.accessoryView = textField
+            cell!.selectionStyle = .None
+        }
+        
+        cell!.textLabel?.text = String(format: "Order %d", arguments: [indexPath.row])
+        let textField = cell!.accessoryView as UITextField
+        textField.placeholder = String(format: "%d bananas", arguments: [indexPath.row])
+        
+        return cell!
+    }
+    
+}
diff --git a/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample-Bridging-Header.h b/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample-Bridging-Header.h
new file mode 100644
index 00000000..0a45c9ee
--- /dev/null
+++ b/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample-Bridging-Header.h
@@ -0,0 +1,13 @@
+//
+//  TPKeyboardAvoidingSwiftSample-Bridging-Header.h
+//  TPKeyboardAvoidingSwiftSample
+//
+//  Created by Manuele Mion on 25/02/15.
+//  Copyright (c) 2015 TPKeyboardAvoiding. All rights reserved.
+//
+
+#import "UIScrollView+TPKeyboardAvoidingAdditions.h"
+
+#import "TPKeyboardAvoidingTableView.h"
+#import "TPKeyboardAvoidingScrollView.h"
+#import "TPKeyboardAvoidingCollectionView.h"
diff --git a/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/ThirdCollectionView.xib b/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/ThirdCollectionView.xib
new file mode 100644
index 00000000..dbcc3c6d
--- /dev/null
+++ b/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/ThirdCollectionView.xib
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="6254" systemVersion="14C109" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
+    <dependencies>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6247"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="ThirdViewController" customModule="TPKeyboardAvoidingSwiftSample" customModuleProvider="target">
+            <connections>
+                <outlet property="collectionView" destination="buh-m0-VQq" id="62V-FS-JB7"/>
+                <outlet property="view" destination="buh-m0-VQq" id="WO2-y5-Bg4"/>
+            </connections>
+        </placeholder>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <collectionView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" minimumZoomScale="0.0" maximumZoomScale="0.0" keyboardDismissMode="interactive" dataMode="none" id="buh-m0-VQq" customClass="TPKeyboardAvoidingCollectionView">
+            <rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
+            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+            <color key="backgroundColor" white="0.5" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
+            <nil key="simulatedStatusBarMetrics"/>
+            <inset key="contentInset" minX="0.0" minY="20" maxX="0.0" maxY="49"/>
+            <inset key="scrollIndicatorInsets" minX="0.0" minY="0.0" maxX="0.0" maxY="49"/>
+            <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="1" minimumInteritemSpacing="1" id="I9D-32-ePJ">
+                <size key="itemSize" width="320" height="106"/>
+                <size key="headerReferenceSize" width="0.0" height="0.0"/>
+                <size key="footerReferenceSize" width="0.0" height="0.0"/>
+                <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
+            </collectionViewFlowLayout>
+            <cells/>
+        </collectionView>
+    </objects>
+    <simulatedMetricsContainer key="defaultSimulatedMetrics">
+        <simulatedStatusBarMetrics key="statusBar"/>
+        <simulatedOrientationMetrics key="orientation"/>
+        <simulatedScreenMetrics key="destination" type="retina4"/>
+    </simulatedMetricsContainer>
+</document>
diff --git a/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/ThirdCollectionViewCell.xib b/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/ThirdCollectionViewCell.xib
new file mode 100644
index 00000000..589b67fd
--- /dev/null
+++ b/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/ThirdCollectionViewCell.xib
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="6254" systemVersion="14C109" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES">
+    <dependencies>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6247"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" id="WMC-IY-wTX">
+            <rect key="frame" x="0.0" y="0.0" width="106" height="106"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+            <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
+                <rect key="frame" x="0.0" y="0.0" width="106" height="106"/>
+                <autoresizingMask key="autoresizingMask"/>
+                <subviews>
+                    <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="Label" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="JlG-uD-2NW">
+                        <rect key="frame" x="32" y="20" width="42" height="21"/>
+                        <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                        <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
+                        <nil key="highlightedColor"/>
+                    </label>
+                    <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Text Field" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="e3Z-I8-UUD">
+                        <rect key="frame" x="10" y="66" width="86" height="30"/>
+                        <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                        <textInputTraits key="textInputTraits"/>
+                    </textField>
+                </subviews>
+                <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
+            </view>
+            <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+            <constraints>
+                <constraint firstAttribute="trailing" secondItem="e3Z-I8-UUD" secondAttribute="trailing" constant="10" id="3Ze-uu-LRf"/>
+                <constraint firstItem="e3Z-I8-UUD" firstAttribute="leading" secondItem="WMC-IY-wTX" secondAttribute="leading" constant="10" id="9id-q3-IrL"/>
+                <constraint firstAttribute="bottom" secondItem="e3Z-I8-UUD" secondAttribute="bottom" constant="10" id="h3t-tL-YUP"/>
+            </constraints>
+            <size key="customSize" width="150" height="106"/>
+        </collectionViewCell>
+    </objects>
+    <simulatedMetricsContainer key="defaultSimulatedMetrics">
+        <simulatedStatusBarMetrics key="statusBar"/>
+        <simulatedOrientationMetrics key="orientation"/>
+        <simulatedScreenMetrics key="destination" type="retina4"/>
+    </simulatedMetricsContainer>
+</document>
diff --git a/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/ThirdViewController.swift b/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/ThirdViewController.swift
new file mode 100644
index 00000000..8ad027bc
--- /dev/null
+++ b/TPKeyboardAvoidingSwiftSample/TPKeyboardAvoidingSwiftSample/ThirdViewController.swift
@@ -0,0 +1,34 @@
+//
+//  ThirdViewController.swift
+//  TPKeyboardAvoidingSwiftSample
+//
+//  Created by Manuele Mion on 25/02/15.
+//  Copyright (c) 2015 TPKeyboardAvoiding. All rights reserved.
+//
+
+import UIKit
+import Foundation
+
+class ThirdViewController: UICollectionViewController {
+    
+    override func viewDidLoad() {
+        let nib = UINib(nibName: "ThirdCollectionViewCell", bundle: nil)
+        self.collectionView?.registerNib(nib, forCellWithReuseIdentifier: "cell")
+    }
+    
+    // MARK: UICollectionViewDataSource
+    
+    override func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int {
+        return 1
+    }
+    
+    override func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
+        return 30
+    }
+    
+    override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
+        let cell = collectionView.dequeueReusableCellWithReuseIdentifier("cell", forIndexPath: indexPath) as UICollectionViewCell
+        return cell
+    }
+        
+}
\ No newline at end of file