From d0d824a7d2834284daf134b8a2827f264193f223 Mon Sep 17 00:00:00 2001 From: Yoel Jimenez del Valle Date: Fri, 25 Oct 2019 17:29:56 -0400 Subject: [PATCH 1/4] swift 5 update --- Example/Pods/Pods.xcodeproj/project.pbxproj | 38 ++++++++++++++++--- .../project.pbxproj | 31 ++++++++++++--- .../RSFloatInputView-Example.xcscheme | 24 +++++------- Example/RSFloatInputView/AppDelegate.swift | 2 +- .../Classes/RSFloatInputView.swift | 8 ++-- 5 files changed, 74 insertions(+), 29 deletions(-) diff --git a/Example/Pods/Pods.xcodeproj/project.pbxproj b/Example/Pods/Pods.xcodeproj/project.pbxproj index 916c6e6..cd448af 100644 --- a/Example/Pods/Pods.xcodeproj/project.pbxproj +++ b/Example/Pods/Pods.xcodeproj/project.pbxproj @@ -247,19 +247,20 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0730; - LastUpgradeCheck = 0700; + LastUpgradeCheck = 1110; TargetAttributes = { A39C9458A888EA9318C897957AA8CA2A = { - LastSwiftMigration = 0940; + LastSwiftMigration = 1110; }; }; }; buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; + developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( en, + Base, ); mainGroup = 7DB346D0F39D3F0E887471402A8071AB; productRefGroup = A0825D08739628209A28C7938F957018 /* Products */; @@ -330,7 +331,7 @@ SKIP_INSTALL = YES; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_SWIFT3_OBJC_INFERENCE = On; - SWIFT_VERSION = 4.0; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -412,25 +413,38 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CODE_SIGNING_REQUIRED = NO; COPY_PHASE_STRIP = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( "POD_CONFIGURATION_DEBUG=1", @@ -478,7 +492,7 @@ SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_SWIFT3_OBJC_INFERENCE = On; - SWIFT_VERSION = 4.0; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -489,24 +503,37 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CODE_SIGNING_REQUIRED = NO; COPY_PHASE_STRIP = YES; ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; GCC_PREPROCESSOR_DEFINITIONS = ( "POD_CONFIGURATION_RELEASE=1", "$(inherited)", @@ -520,6 +547,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 9.0; PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; STRIP_INSTALLED_PRODUCT = NO; + SWIFT_COMPILATION_MODE = wholemodule; SYMROOT = "${SRCROOT}/../build"; VALIDATE_PRODUCT = YES; }; diff --git a/Example/RSFloatInputView.xcodeproj/project.pbxproj b/Example/RSFloatInputView.xcodeproj/project.pbxproj index 1449b5b..ec3b4a1 100644 --- a/Example/RSFloatInputView.xcodeproj/project.pbxproj +++ b/Example/RSFloatInputView.xcodeproj/project.pbxproj @@ -146,18 +146,19 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0720; - LastUpgradeCheck = 0820; + LastUpgradeCheck = 1110; ORGANIZATIONNAME = CocoaPods; TargetAttributes = { 607FACCF1AFB9204008FA782 = { CreatedOnToolsVersion = 6.3.1; - LastSwiftMigration = 0820; + DevelopmentTeam = 425PPMA85P; + LastSwiftMigration = 1110; }; }; }; buildConfigurationList = 607FACCB1AFB9204008FA782 /* Build configuration list for PBXProject "RSFloatInputView" */; compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; + developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( en, @@ -271,18 +272,27 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; @@ -318,18 +328,27 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; @@ -360,12 +379,13 @@ buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + DEVELOPMENT_TEAM = 425PPMA85P; INFOPLIST_FILE = RSFloatInputView/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; MODULE_NAME = ExampleApp; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 4.0; + SWIFT_VERSION = 5.0; }; name = Debug; }; @@ -375,12 +395,13 @@ buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + DEVELOPMENT_TEAM = 425PPMA85P; INFOPLIST_FILE = RSFloatInputView/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; MODULE_NAME = ExampleApp; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 4.0; + SWIFT_VERSION = 5.0; }; name = Release; }; diff --git a/Example/RSFloatInputView.xcodeproj/xcshareddata/xcschemes/RSFloatInputView-Example.xcscheme b/Example/RSFloatInputView.xcodeproj/xcshareddata/xcschemes/RSFloatInputView-Example.xcscheme index a620ab1..0d58356 100644 --- a/Example/RSFloatInputView.xcodeproj/xcshareddata/xcschemes/RSFloatInputView-Example.xcscheme +++ b/Example/RSFloatInputView.xcodeproj/xcshareddata/xcschemes/RSFloatInputView-Example.xcscheme @@ -1,6 +1,6 @@ + + + + @@ -53,17 +62,6 @@ - - - - - - - - Bool { + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { RSFloatInputView.stringTransformer = { orginal in // Transform the place holder string configured in XIB with your own way. diff --git a/RSFloatInputView/Classes/RSFloatInputView.swift b/RSFloatInputView/Classes/RSFloatInputView.swift index 4e4a512..65e3a69 100644 --- a/RSFloatInputView/Classes/RSFloatInputView.swift +++ b/RSFloatInputView/Classes/RSFloatInputView.swift @@ -2,11 +2,11 @@ import UIKit import CoreText open class RSFloatInputView: UIView { - open static var stringTransformer: ((String) -> String?)! = { + public static var stringTransformer: ((String) -> String?)! = { orginal in return orginal } - open static var instanceTransformer: ((RSFloatInputView) -> Void)! = { + public static var instanceTransformer: ((RSFloatInputView) -> Void)! = { orginal in } @@ -111,7 +111,7 @@ open class RSFloatInputView: UIView { state = .float CATransaction.begin() CATransaction.setAnimationDuration(animationDuration) - CATransaction.setAnimationTimingFunction(CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseOut)) + CATransaction.setAnimationTimingFunction(CAMediaTimingFunction(name: CAMediaTimingFunctionName.easeOut)) placeHolderLabel.foregroundColor = floatPlaceHolderColor.cgColor placeHolderLabel.fontSize = floatPlaceHolderFontSize layout() @@ -131,7 +131,7 @@ open class RSFloatInputView: UIView { state = .idle CATransaction.begin() CATransaction.setAnimationDuration(animationDuration) - CATransaction.setAnimationTimingFunction(CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseOut)) + CATransaction.setAnimationTimingFunction(CAMediaTimingFunction(name: CAMediaTimingFunctionName.easeOut)) placeHolderLabel.foregroundColor = idlePlaceHolderColor.cgColor placeHolderLabel.fontSize = idlePlaceHolderFontSize layout() From 07896bb7d7fb200803ddc9aa58760ba497f922a9 Mon Sep 17 00:00:00 2001 From: Yoel Jimenez del Valle Date: Fri, 25 Oct 2019 17:53:07 -0400 Subject: [PATCH 2/4] update swift 5 --- Example/RSFloatInputView.xcodeproj/project.pbxproj | 6 ++++-- README.md | 4 ++-- RSFloatInputView.podspec | 4 ++-- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/Example/RSFloatInputView.xcodeproj/project.pbxproj b/Example/RSFloatInputView.xcodeproj/project.pbxproj index ec3b4a1..5f6a06b 100644 --- a/Example/RSFloatInputView.xcodeproj/project.pbxproj +++ b/Example/RSFloatInputView.xcodeproj/project.pbxproj @@ -316,7 +316,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -365,7 +365,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; @@ -381,6 +381,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; DEVELOPMENT_TEAM = 425PPMA85P; INFOPLIST_FILE = RSFloatInputView/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; MODULE_NAME = ExampleApp; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.$(PRODUCT_NAME:rfc1034identifier)"; @@ -397,6 +398,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; DEVELOPMENT_TEAM = 425PPMA85P; INFOPLIST_FILE = RSFloatInputView/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; MODULE_NAME = ExampleApp; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.$(PRODUCT_NAME:rfc1034identifier)"; diff --git a/README.md b/README.md index 6c53fea..0f437ec 100644 --- a/README.md +++ b/README.md @@ -51,8 +51,8 @@ func application(_ application: UIApplication, didFinishLaunchingWithOptions lau ``` ## Requirements -* iOS 8.0 -* Swift 4.1 +* iOS 12 +* Swift 5 ## Installation diff --git a/RSFloatInputView.podspec b/RSFloatInputView.podspec index d9ea1a3..e2e19ae 100644 --- a/RSFloatInputView.podspec +++ b/RSFloatInputView.podspec @@ -37,10 +37,10 @@ Features: s.source = { :git => 'https://github.com/roytornado/RSFloatInputView.git', :tag => s.version.to_s } # s.social_media_url = 'https://twitter.com/' - s.ios.deployment_target = '8.0' + s.ios.deployment_target = '12.0' s.source_files = 'RSFloatInputView/Classes/**/*' - s.swift_version = '4.1' + s.swift_version = '5' # s.resource_bundles = { # 'RSFloatInputView' => ['RSFloatInputView/Assets/*.png'] From 213d5cafb098f6e79c97d13602bcdbac0932b7ab Mon Sep 17 00:00:00 2001 From: Yoel Jimenez del Valle Date: Sat, 26 Oct 2019 09:20:41 -0400 Subject: [PATCH 3/4] update textfield textColor to adopt DarkMode on iOS 13 --- RSFloatInputView/Classes/RSFloatInputView.swift | 3 +++ 1 file changed, 3 insertions(+) diff --git a/RSFloatInputView/Classes/RSFloatInputView.swift b/RSFloatInputView/Classes/RSFloatInputView.swift index 65e3a69..fa93b1f 100644 --- a/RSFloatInputView/Classes/RSFloatInputView.swift +++ b/RSFloatInputView/Classes/RSFloatInputView.swift @@ -62,6 +62,9 @@ open class RSFloatInputView: UIView { layer.addSublayer(placeHolderLabel) addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(focus))) textField.addTarget(self, action: #selector(editingDidEnd), for: .editingDidEnd) + if #available(iOS 13.0, *) { + textField.textColor = .label + } if applyTransform { RSFloatInputView.instanceTransformer(self) } configFontsAndColors() changeToIdle(animated: false) From 91da09d6298c36a0fa4610af4a916004826ac6e5 Mon Sep 17 00:00:00 2001 From: Yoel Jimenez del Valle Date: Sat, 26 Oct 2019 10:27:11 -0400 Subject: [PATCH 4/4] redeem update --- README.md | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/README.md b/README.md index 0f437ec..3d322fe 100644 --- a/README.md +++ b/README.md @@ -5,13 +5,7 @@ [![Platform](https://img.shields.io/cocoapods/p/RSFloatInputView.svg?style=flat)](http://cocoapods.org/pods/RSFloatInputView) ## Features -* Smooth animation using CoreText -* Support optional left icon -* Support optional seperator -* Configurable padding, size, fonts and colors -* Ready for multi styles -* Ready for string localization -* Configurable in interface builder +* fork from RSFloatInputView to update to swift 5 and remove the nasty warnings on xcode 11 ## Demo