From 7773b51e60ead8b43141948d2b9fa280f262cdc3 Mon Sep 17 00:00:00 2001 From: cafedeichi Date: Mon, 17 Aug 2020 09:15:42 +0900 Subject: [PATCH 1/6] fix: Compatible for Swift 5 --- ScrollPager.xcodeproj/project.pbxproj | 49 ++++++++++++------- .../xcschemes/ScrollPager.xcscheme | 24 ++++----- .../xcschemes/ScrollPagerTests.xcscheme | 6 +-- ScrollPager/Source/ScrollPager.swift | 4 +- 4 files changed, 43 insertions(+), 40 deletions(-) diff --git a/ScrollPager.xcodeproj/project.pbxproj b/ScrollPager.xcodeproj/project.pbxproj index 384c7f3..8f87c86 100644 --- a/ScrollPager.xcodeproj/project.pbxproj +++ b/ScrollPager.xcodeproj/project.pbxproj @@ -169,12 +169,11 @@ attributes = { LastSwiftMigration = 0700; LastSwiftUpdateCheck = 0700; - LastUpgradeCheck = 0800; + LastUpgradeCheck = 1160; ORGANIZATIONNAME = "Aryan Ghassemi"; TargetAttributes = { 15F9717A1A9A86E400169B7E = { CreatedOnToolsVersion = 6.1.1; - DevelopmentTeam = 24FGDP9KJW; LastSwiftMigration = 0800; }; 15F9718F1A9A86E400169B7E = { @@ -186,7 +185,7 @@ }; buildConfigurationList = 15F971761A9A86E400169B7E /* Build configuration list for PBXProject "ScrollPager" */; compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; + developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( en, @@ -276,18 +275,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; @@ -310,11 +318,12 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.1; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; @@ -323,18 +332,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; @@ -350,10 +368,11 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.1; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; }; @@ -363,12 +382,11 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - DEVELOPMENT_TEAM = 24FGDP9KJW; + DEVELOPMENT_TEAM = ""; INFOPLIST_FILE = ScrollPager/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "com.aryaxt.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; }; name = Debug; }; @@ -376,12 +394,11 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - DEVELOPMENT_TEAM = 24FGDP9KJW; + DEVELOPMENT_TEAM = ""; INFOPLIST_FILE = ScrollPager/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "com.aryaxt.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; }; name = Release; }; @@ -389,10 +406,8 @@ isa = XCBuildConfiguration; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + DEVELOPMENT_TEAM = ""; GCC_PREPROCESSOR_DEFINITIONS = ( "DEBUG=1", "$(inherited)", @@ -401,7 +416,6 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "com.aryaxt.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ScrollPager.app/ScrollPager"; }; name = Debug; @@ -410,15 +424,12 @@ isa = XCBuildConfiguration; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + DEVELOPMENT_TEAM = ""; INFOPLIST_FILE = ScrollPagerTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "com.aryaxt.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ScrollPager.app/ScrollPager"; }; name = Release; diff --git a/ScrollPager.xcodeproj/xcshareddata/xcschemes/ScrollPager.xcscheme b/ScrollPager.xcodeproj/xcshareddata/xcschemes/ScrollPager.xcscheme index 19cd6ca..6b53db4 100644 --- a/ScrollPager.xcodeproj/xcshareddata/xcschemes/ScrollPager.xcscheme +++ b/ScrollPager.xcodeproj/xcshareddata/xcschemes/ScrollPager.xcscheme @@ -1,6 +1,6 @@ + + + + @@ -53,17 +62,6 @@ - - - - - - - - - - - - Date: Mon, 17 Aug 2020 22:46:13 +0900 Subject: [PATCH 2/6] fix: Problem with orientation change. --- ScrollPager/Source/ScrollPager.swift | 35 ++++++++++++++++------------ 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/ScrollPager/Source/ScrollPager.swift b/ScrollPager/Source/ScrollPager.swift index 3aff5aa..1e627d1 100644 --- a/ScrollPager/Source/ScrollPager.swift +++ b/ScrollPager/Source/ScrollPager.swift @@ -243,9 +243,14 @@ import UIKit if let scrollView = scrollView { scrollView.contentSize = CGSize(width: scrollView.frame.size.width * CGFloat(buttons.count), height: scrollView.frame.size.height) + let viewWidth = scrollView.frame.size.width + let viewHeight = scrollView.frame.size.height + for i in 0.. 0.5 { - page = page + CGFloat(1) - } - - if Int(page) != selectedIndex { - setSelectedIndex(index: Int(page), animated: true, moveScrollView: false) - delegate?.scrollPager?(scrollPager: self, changedIndex: Int(page)) - } - } - } + if page.truncatingRemainder(dividingBy: 1) > 0.5 { + page = page + CGFloat(1) + } + + if Int(page) != selectedIndex { + setSelectedIndex(index: Int(page), animated: true, moveScrollView: false) + delegate?.scrollPager?(scrollPager: self, changedIndex: Int(page)) + } + } + } + } From 23d40927fa26bc82adb4fa288df8e3792657a351 Mon Sep 17 00:00:00 2001 From: cafedeichi Date: Mon, 17 Aug 2020 22:49:35 +0900 Subject: [PATCH 3/6] fix: Updated podspec. --- ScrollPager.podspec | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ScrollPager.podspec b/ScrollPager.podspec index 0cb08ad..42d5a1e 100644 --- a/ScrollPager.podspec +++ b/ScrollPager.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'ScrollPager' - s.version = '0.9' + s.version = '0.10' s.summary = 'A fully featured scroll pager similar to the one in flipboard, fully configurable through storyboard' s.homepage = 'https://github.com/aryaxt/ScrollPager' s.license = { @@ -8,8 +8,8 @@ Pod::Spec.new do |s| :file => 'License.txt' } s.author = {'Aryan Ghassemi' => 'https://github.com/aryaxt/ScrollPager'} - s.source = {:git => 'https://github.com/aryaxt/ScrollPager.git', :tag => '0.9'} - s.platform = :ios, '8.0' + s.source = {:git => 'https://github.com/aryaxt/ScrollPager.git', :tag => '0.10'} + s.platform = :ios, '9.0' s.source_files = 'ScrollPager/Source/*.{swift}' s.framework = 'Foundation', 'UIKit' s.requires_arc = true From 759014f83eb1999db27bbfb180439ab5053941fc Mon Sep 17 00:00:00 2001 From: cafedeichi Date: Mon, 17 Aug 2020 22:57:24 +0900 Subject: [PATCH 4/6] fix: Updated travis.yml --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 0baaec9..036421f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,5 @@ language: objective-c -osx_image: xcode8 +osx_image: xcode11.6 script: -- xcodebuild -project ScrollPager.xcodeproj -scheme ScrollPagerTests -destination 'platform=iOS Simulator,name=iPhone 6' test +- xcodebuild -project ScrollPager.xcodeproj -scheme ScrollPagerTests -destination 'platform=iOS Simulator,name=iPhone 11 Pro' test From 078cf753b093690f1f7343ac4219f5b4fc93c7cd Mon Sep 17 00:00:00 2001 From: cafedeichi Date: Mon, 28 Sep 2020 10:57:07 +0900 Subject: [PATCH 5/6] fix: Built on Xcode 12. --- .travis.yml | 2 +- ScrollPager.xcodeproj/project.pbxproj | 4 +++- .../xcshareddata/xcschemes/ScrollPager.xcscheme | 2 +- .../xcshareddata/xcschemes/ScrollPagerTests.xcscheme | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 036421f..da6fe6d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,5 @@ language: objective-c -osx_image: xcode11.6 +osx_image: xcode12.0 script: - xcodebuild -project ScrollPager.xcodeproj -scheme ScrollPagerTests -destination 'platform=iOS Simulator,name=iPhone 11 Pro' test diff --git a/ScrollPager.xcodeproj/project.pbxproj b/ScrollPager.xcodeproj/project.pbxproj index 8f87c86..efcbd18 100644 --- a/ScrollPager.xcodeproj/project.pbxproj +++ b/ScrollPager.xcodeproj/project.pbxproj @@ -169,7 +169,7 @@ attributes = { LastSwiftMigration = 0700; LastSwiftUpdateCheck = 0700; - LastUpgradeCheck = 1160; + LastUpgradeCheck = 1200; ORGANIZATIONNAME = "Aryan Ghassemi"; TargetAttributes = { 15F9717A1A9A86E400169B7E = { @@ -294,6 +294,7 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; @@ -351,6 +352,7 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; diff --git a/ScrollPager.xcodeproj/xcshareddata/xcschemes/ScrollPager.xcscheme b/ScrollPager.xcodeproj/xcshareddata/xcschemes/ScrollPager.xcscheme index 6b53db4..ca57cf3 100644 --- a/ScrollPager.xcodeproj/xcshareddata/xcschemes/ScrollPager.xcscheme +++ b/ScrollPager.xcodeproj/xcshareddata/xcschemes/ScrollPager.xcscheme @@ -1,6 +1,6 @@ Date: Thu, 22 Oct 2020 13:49:49 +0900 Subject: [PATCH 6/6] fix: Insert 'segmentTitles:'. --- ScrollPager/Source/ScrollPager.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ScrollPager/Source/ScrollPager.swift b/ScrollPager/Source/ScrollPager.swift index 1e627d1..0720760 100644 --- a/ScrollPager/Source/ScrollPager.swift +++ b/ScrollPager/Source/ScrollPager.swift @@ -105,7 +105,7 @@ import UIKit private func initialize() { #if TARGET_INTERFACE_BUILDER - addSegmentsWithTitles(["One", "Two", "Three", "Four"]) + addSegmentsWithTitles(segmentTitles: ["One", "Two", "Three", "Four"]) #endif }