From bf3e85c17c1c712a984104ec26dcc0e2f789d252 Mon Sep 17 00:00:00 2001 From: Justin Ackermann Date: Tue, 1 Sep 2020 23:16:53 -0400 Subject: [PATCH 1/4] Update to Swift 5 --- .../TwicketSegmentedControl.podspec | 137 ++++++++++++++++++ .../TwicketSegmentedControl.swift | 7 +- .../project.pbxproj | 34 ++++- .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../TwicketSegmentedControl.xcscheme | 6 +- .../AppIcon.appiconset/Contents.json | 84 +++++++---- 6 files changed, 235 insertions(+), 41 deletions(-) create mode 100644 TwicketSegmentedControl/TwicketSegmentedControl.podspec create mode 100644 TwicketSegmentedControlDemo/TwicketSegmentedControlDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/TwicketSegmentedControl/TwicketSegmentedControl.podspec b/TwicketSegmentedControl/TwicketSegmentedControl.podspec new file mode 100644 index 0000000..53f8ea4 --- /dev/null +++ b/TwicketSegmentedControl/TwicketSegmentedControl.podspec @@ -0,0 +1,137 @@ +# +# Be sure to run `pod spec lint TwicketSegmentedControl.podspec' to ensure this is a +# valid spec and to remove all comments including this before submitting the spec. +# +# To learn more about Podspec attributes see https://guides.cocoapods.org/syntax/podspec.html +# To see working Podspecs in the CocoaPods repo see https://github.com/CocoaPods/Specs/ +# + +Pod::Spec.new do |spec| + + # ――― Spec Metadata ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― # + # + # These will help people to find your library, and whilst it + # can feel like a chore to fill in it's definitely to your advantage. The + # summary should be tweet-length, and the description more in depth. + # + + spec.name = "TwicketSegmentedControl" + spec.version = "0.0.1" + spec.summary = "A short description of TwicketSegmentedControl." + + # This description is used to generate tags and improve search results. + # * Think: What does it do? Why did you write it? What is the focus? + # * Try to keep it short, snappy and to the point. + # * Write the description between the DESC delimiters below. + # * Finally, don't worry about the indent, CocoaPods strips it! + spec.description = <<-DESC + DESC + + spec.homepage = "http://EXAMPLE/TwicketSegmentedControl" + # spec.screenshots = "www.example.com/screenshots_1.gif", "www.example.com/screenshots_2.gif" + + + # ――― Spec License ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― # + # + # Licensing your code is important. See https://choosealicense.com for more info. + # CocoaPods will detect a license file if there is a named LICENSE* + # Popular ones are 'MIT', 'BSD' and 'Apache License, Version 2.0'. + # + + spec.license = "MIT (example)" + # spec.license = { :type => "MIT", :file => "FILE_LICENSE" } + + + # ――― Author Metadata ――――――――――――――――――――――――――――――――――――――――――――――――――――――――― # + # + # Specify the authors of the library, with email addresses. Email addresses + # of the authors are extracted from the SCM log. E.g. $ git log. CocoaPods also + # accepts just a name if you'd rather not provide an email address. + # + # Specify a social_media_url where others can refer to, for example a twitter + # profile URL. + # + + spec.author = { "Justin Ackermann" => "justinackermann@yahoo.com" } + # Or just: spec.author = "Justin Ackermann" + # spec.authors = { "Justin Ackermann" => "justinackermann@yahoo.com" } + # spec.social_media_url = "https://twitter.com/Justin Ackermann" + + # ――― Platform Specifics ――――――――――――――――――――――――――――――――――――――――――――――――――――――― # + # + # If this Pod runs only on iOS or OS X, then specify the platform and + # the deployment target. You can optionally include the target after the platform. + # + + # spec.platform = :ios + # spec.platform = :ios, "5.0" + + # When using multiple platforms + # spec.ios.deployment_target = "5.0" + # spec.osx.deployment_target = "10.7" + # spec.watchos.deployment_target = "2.0" + # spec.tvos.deployment_target = "9.0" + + + # ――― Source Location ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― # + # + # Specify the location from where the source should be retrieved. + # Supports git, hg, bzr, svn and HTTP. + # + + spec.source = { :git => "http://EXAMPLE/TwicketSegmentedControl.git", :tag => "#{spec.version}" } + + + # ――― Source Code ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― # + # + # CocoaPods is smart about how it includes source code. For source files + # giving a folder will include any swift, h, m, mm, c & cpp files. + # For header files it will include any header in the folder. + # Not including the public_header_files will make all headers public. + # + + spec.source_files = "Classes", "Classes/**/*.{h,m}" + spec.exclude_files = "Classes/Exclude" + + # spec.public_header_files = "Classes/**/*.h" + + + # ――― Resources ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― # + # + # A list of resources included with the Pod. These are copied into the + # target bundle with a build phase script. Anything else will be cleaned. + # You can preserve files from being cleaned, please don't preserve + # non-essential files like tests, examples and documentation. + # + + # spec.resource = "icon.png" + # spec.resources = "Resources/*.png" + + # spec.preserve_paths = "FilesToSave", "MoreFilesToSave" + + + # ――― Project Linking ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― # + # + # Link your library with frameworks, or libraries. Libraries do not include + # the lib prefix of their name. + # + + # spec.framework = "SomeFramework" + # spec.frameworks = "SomeFramework", "AnotherFramework" + + # spec.library = "iconv" + # spec.libraries = "iconv", "xml2" + + + # ――― Project Settings ――――――――――――――――――――――――――――――――――――――――――――――――――――――――― # + # + # If your library depends on compiler flags you can set them in the xcconfig hash + # where they will only apply to your library. If you depend on other Podspecs + # you can include multiple dependencies to ensure it works. + + # spec.requires_arc = true + + # spec.xcconfig = { "HEADER_SEARCH_PATHS" => "$(SDKROOT)/usr/include/libxml2" } + # spec.dependency "JSONKit", "~> 1.4" + +end diff --git a/TwicketSegmentedControl/TwicketSegmentedControl.swift b/TwicketSegmentedControl/TwicketSegmentedControl.swift index 030f3b2..b27dcb6 100644 --- a/TwicketSegmentedControl/TwicketSegmentedControl.swift +++ b/TwicketSegmentedControl/TwicketSegmentedControl.swift @@ -13,7 +13,7 @@ public protocol TwicketSegmentedControlDelegate: class { } open class TwicketSegmentedControl: UIControl { - open static let height: CGFloat = Constants.height + Constants.topBottomMargin * 2 + public static let height: CGFloat = Constants.height + Constants.topBottomMargin * 2 private struct Constants { static let height: CGFloat = 30 @@ -88,7 +88,7 @@ open class TwicketSegmentedControl: UIControl { } } - open var font: UIFont = UIFont.systemFont(ofSize: 15, weight: UIFontWeightMedium) { + open var font: UIFont = UIFont.systemFont(ofSize: 15, weight: UIFont.Weight.medium) { didSet { updateLabelsFont(with: font) } @@ -254,6 +254,9 @@ open class TwicketSegmentedControl: UIControl { let location = panGesture.location(in: self) sliderView.center.x = location.x - correction case .possible: () + @unknown default: + print("unknown gesture") + // NOTE: Idk what to do here, just updating swift versioning } } diff --git a/TwicketSegmentedControlDemo/TwicketSegmentedControlDemo.xcodeproj/project.pbxproj b/TwicketSegmentedControlDemo/TwicketSegmentedControlDemo.xcodeproj/project.pbxproj index 73b188e..a157ee6 100644 --- a/TwicketSegmentedControlDemo/TwicketSegmentedControlDemo.xcodeproj/project.pbxproj +++ b/TwicketSegmentedControlDemo/TwicketSegmentedControlDemo.xcodeproj/project.pbxproj @@ -181,7 +181,7 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0800; - LastUpgradeCheck = 0800; + LastUpgradeCheck = 1150; ORGANIZATIONNAME = "Pol Quintana"; TargetAttributes = { C18581821D8D7220001A9A00 = { @@ -192,14 +192,14 @@ C185819C1D8D7237001A9A00 = { CreatedOnToolsVersion = 8.0; DevelopmentTeam = TT6EHSB5EG; - LastSwiftMigration = 0800; + LastSwiftMigration = 1150; ProvisioningStyle = Automatic; }; }; }; buildConfigurationList = C185817E1D8D7220001A9A00 /* Build configuration list for PBXProject "TwicketSegmentedControlDemo" */; compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; + developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( en, @@ -295,15 +295,24 @@ 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_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_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_SUSPICIOUS_MOVES = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; @@ -332,6 +341,7 @@ SDKROOT = iphoneos; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; @@ -345,15 +355,24 @@ 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_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_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_SUSPICIOUS_MOVES = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; @@ -374,6 +393,7 @@ MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; }; @@ -389,7 +409,7 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "Pol-Quintana.TwicketSegmentedControlDemo"; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 5.0; }; name = Debug; }; @@ -403,7 +423,7 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "Pol-Quintana.TwicketSegmentedControlDemo"; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 5.0; }; name = Release; }; @@ -426,7 +446,7 @@ PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 5.0; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; @@ -450,7 +470,7 @@ PRODUCT_BUNDLE_IDENTIFIER = "Pol-Quintana.TwicketSegmentedControl"; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 5.0; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; diff --git a/TwicketSegmentedControlDemo/TwicketSegmentedControlDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/TwicketSegmentedControlDemo/TwicketSegmentedControlDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/TwicketSegmentedControlDemo/TwicketSegmentedControlDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/TwicketSegmentedControlDemo/TwicketSegmentedControlDemo.xcodeproj/xcshareddata/xcschemes/TwicketSegmentedControl.xcscheme b/TwicketSegmentedControlDemo/TwicketSegmentedControlDemo.xcodeproj/xcshareddata/xcschemes/TwicketSegmentedControl.xcscheme index db97b44..9344de1 100644 --- a/TwicketSegmentedControlDemo/TwicketSegmentedControlDemo.xcodeproj/xcshareddata/xcschemes/TwicketSegmentedControl.xcscheme +++ b/TwicketSegmentedControlDemo/TwicketSegmentedControlDemo.xcodeproj/xcshareddata/xcschemes/TwicketSegmentedControl.xcscheme @@ -1,6 +1,6 @@ - - - - Date: Tue, 1 Sep 2020 23:26:48 -0400 Subject: [PATCH 2/4] Added Podspec --- TwicketSegmentedControl.podspec | 18 +-- .../TwicketSegmentedControl.podspec | 137 ------------------ .../project.pbxproj | 4 + 3 files changed, 13 insertions(+), 146 deletions(-) delete mode 100644 TwicketSegmentedControl/TwicketSegmentedControl.podspec diff --git a/TwicketSegmentedControl.podspec b/TwicketSegmentedControl.podspec index 2c8a7bc..f281512 100644 --- a/TwicketSegmentedControl.podspec +++ b/TwicketSegmentedControl.podspec @@ -1,12 +1,12 @@ Pod::Spec.new do |s| - s.name = 'TwicketSegmentedControl' - s.version = '0.1.2' + s.name = 'TwicketSegmentedControl' + s.version = '0.1.3' - s.author = { 'Pol Quintana' => 'pol.quintana1@gmail.com' } - s.homepage = 'https://github.com/twicketapp/TwicketSegmentedControl' - s.license = { :type => 'MIT', :file => 'LICENSE' } - s.platform = :ios, '9.0' - s.source = { :git => 'https://github.com/twicketapp/TwicketSegmentedControl.git', :tag => s.version.to_s } - s.summary = 'Custom UISegmentedControl replacement for iOS, written in Swift' - s.source_files = 'TwicketSegmentedControl/*.swift' + s.author = { 'Pol Quintana' => 'pol.quintana1@gmail.com' } + s.homepage = 'https://github.com/twicketapp/TwicketSegmentedControl' + s.license = { :type => 'MIT', :file => 'LICENSE' } + s.platform = :ios, '9.0' + s.source = { :git => 'https://github.com/justinackermann/TwicketSegmentedControl.git', :tag => s.version.to_s } + s.summary = 'Custom UISegmentedControl replacement for iOS, written in Swift' + s.source_files = 'TwicketSegmentedControl/*.swift' end diff --git a/TwicketSegmentedControl/TwicketSegmentedControl.podspec b/TwicketSegmentedControl/TwicketSegmentedControl.podspec deleted file mode 100644 index 53f8ea4..0000000 --- a/TwicketSegmentedControl/TwicketSegmentedControl.podspec +++ /dev/null @@ -1,137 +0,0 @@ -# -# Be sure to run `pod spec lint TwicketSegmentedControl.podspec' to ensure this is a -# valid spec and to remove all comments including this before submitting the spec. -# -# To learn more about Podspec attributes see https://guides.cocoapods.org/syntax/podspec.html -# To see working Podspecs in the CocoaPods repo see https://github.com/CocoaPods/Specs/ -# - -Pod::Spec.new do |spec| - - # ――― Spec Metadata ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― # - # - # These will help people to find your library, and whilst it - # can feel like a chore to fill in it's definitely to your advantage. The - # summary should be tweet-length, and the description more in depth. - # - - spec.name = "TwicketSegmentedControl" - spec.version = "0.0.1" - spec.summary = "A short description of TwicketSegmentedControl." - - # This description is used to generate tags and improve search results. - # * Think: What does it do? Why did you write it? What is the focus? - # * Try to keep it short, snappy and to the point. - # * Write the description between the DESC delimiters below. - # * Finally, don't worry about the indent, CocoaPods strips it! - spec.description = <<-DESC - DESC - - spec.homepage = "http://EXAMPLE/TwicketSegmentedControl" - # spec.screenshots = "www.example.com/screenshots_1.gif", "www.example.com/screenshots_2.gif" - - - # ――― Spec License ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― # - # - # Licensing your code is important. See https://choosealicense.com for more info. - # CocoaPods will detect a license file if there is a named LICENSE* - # Popular ones are 'MIT', 'BSD' and 'Apache License, Version 2.0'. - # - - spec.license = "MIT (example)" - # spec.license = { :type => "MIT", :file => "FILE_LICENSE" } - - - # ――― Author Metadata ――――――――――――――――――――――――――――――――――――――――――――――――――――――――― # - # - # Specify the authors of the library, with email addresses. Email addresses - # of the authors are extracted from the SCM log. E.g. $ git log. CocoaPods also - # accepts just a name if you'd rather not provide an email address. - # - # Specify a social_media_url where others can refer to, for example a twitter - # profile URL. - # - - spec.author = { "Justin Ackermann" => "justinackermann@yahoo.com" } - # Or just: spec.author = "Justin Ackermann" - # spec.authors = { "Justin Ackermann" => "justinackermann@yahoo.com" } - # spec.social_media_url = "https://twitter.com/Justin Ackermann" - - # ――― Platform Specifics ――――――――――――――――――――――――――――――――――――――――――――――――――――――― # - # - # If this Pod runs only on iOS or OS X, then specify the platform and - # the deployment target. You can optionally include the target after the platform. - # - - # spec.platform = :ios - # spec.platform = :ios, "5.0" - - # When using multiple platforms - # spec.ios.deployment_target = "5.0" - # spec.osx.deployment_target = "10.7" - # spec.watchos.deployment_target = "2.0" - # spec.tvos.deployment_target = "9.0" - - - # ――― Source Location ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― # - # - # Specify the location from where the source should be retrieved. - # Supports git, hg, bzr, svn and HTTP. - # - - spec.source = { :git => "http://EXAMPLE/TwicketSegmentedControl.git", :tag => "#{spec.version}" } - - - # ――― Source Code ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― # - # - # CocoaPods is smart about how it includes source code. For source files - # giving a folder will include any swift, h, m, mm, c & cpp files. - # For header files it will include any header in the folder. - # Not including the public_header_files will make all headers public. - # - - spec.source_files = "Classes", "Classes/**/*.{h,m}" - spec.exclude_files = "Classes/Exclude" - - # spec.public_header_files = "Classes/**/*.h" - - - # ――― Resources ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― # - # - # A list of resources included with the Pod. These are copied into the - # target bundle with a build phase script. Anything else will be cleaned. - # You can preserve files from being cleaned, please don't preserve - # non-essential files like tests, examples and documentation. - # - - # spec.resource = "icon.png" - # spec.resources = "Resources/*.png" - - # spec.preserve_paths = "FilesToSave", "MoreFilesToSave" - - - # ――― Project Linking ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― # - # - # Link your library with frameworks, or libraries. Libraries do not include - # the lib prefix of their name. - # - - # spec.framework = "SomeFramework" - # spec.frameworks = "SomeFramework", "AnotherFramework" - - # spec.library = "iconv" - # spec.libraries = "iconv", "xml2" - - - # ――― Project Settings ――――――――――――――――――――――――――――――――――――――――――――――――――――――――― # - # - # If your library depends on compiler flags you can set them in the xcconfig hash - # where they will only apply to your library. If you depend on other Podspecs - # you can include multiple dependencies to ensure it works. - - # spec.requires_arc = true - - # spec.xcconfig = { "HEADER_SEARCH_PATHS" => "$(SDKROOT)/usr/include/libxml2" } - # spec.dependency "JSONKit", "~> 1.4" - -end diff --git a/TwicketSegmentedControlDemo/TwicketSegmentedControlDemo.xcodeproj/project.pbxproj b/TwicketSegmentedControlDemo/TwicketSegmentedControlDemo.xcodeproj/project.pbxproj index a157ee6..9cdafd1 100644 --- a/TwicketSegmentedControlDemo/TwicketSegmentedControlDemo.xcodeproj/project.pbxproj +++ b/TwicketSegmentedControlDemo/TwicketSegmentedControlDemo.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + 51D48E2424FF47F3009EF5A6 /* TwicketSegmentedControl.podspec in Resources */ = {isa = PBXBuildFile; fileRef = 51D48E2324FF47F2009EF5A6 /* TwicketSegmentedControl.podspec */; }; C18581871D8D7220001A9A00 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = C18581861D8D7220001A9A00 /* AppDelegate.swift */; }; C18581891D8D7220001A9A00 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C18581881D8D7220001A9A00 /* ViewController.swift */; }; C185818C1D8D7220001A9A00 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C185818A1D8D7220001A9A00 /* Main.storyboard */; }; @@ -45,6 +46,7 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 51D48E2324FF47F2009EF5A6 /* TwicketSegmentedControl.podspec */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = TwicketSegmentedControl.podspec; path = ../TwicketSegmentedControl.podspec; sourceTree = ""; }; C18581831D8D7220001A9A00 /* TwicketSegmentedControlDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TwicketSegmentedControlDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; C18581861D8D7220001A9A00 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; C18581881D8D7220001A9A00 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; @@ -113,6 +115,7 @@ C185819E1D8D7237001A9A00 /* TwicketSegmentedControl */ = { isa = PBXGroup; children = ( + 51D48E2324FF47F2009EF5A6 /* TwicketSegmentedControl.podspec */, C18581AC1D8D7265001A9A00 /* Palette.swift */, C18581AB1D8D7265001A9A00 /* TwicketSegmentedControl.swift */, C18581AA1D8D7265001A9A00 /* UIViewShadowExtension.swift */, @@ -224,6 +227,7 @@ C18581911D8D7220001A9A00 /* LaunchScreen.storyboard in Resources */, C185818E1D8D7220001A9A00 /* Assets.xcassets in Resources */, C185818C1D8D7220001A9A00 /* Main.storyboard in Resources */, + 51D48E2424FF47F3009EF5A6 /* TwicketSegmentedControl.podspec in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; From 0760f3f93bfbfd5e528228d7592d42f9c8ad5250 Mon Sep 17 00:00:00 2001 From: Justin Ackermann Date: Tue, 1 Sep 2020 23:35:27 -0400 Subject: [PATCH 3/4] Update Podspec --- TwicketSegmentedControl.podspec | 6 +++--- .../TwicketSegmentedControlDemo.xcodeproj/project.pbxproj | 4 ++-- .../xcshareddata/xcschemes/TwicketSegmentedControl.xcscheme | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/TwicketSegmentedControl.podspec b/TwicketSegmentedControl.podspec index f281512..a3d11c2 100644 --- a/TwicketSegmentedControl.podspec +++ b/TwicketSegmentedControl.podspec @@ -1,12 +1,12 @@ Pod::Spec.new do |s| s.name = 'TwicketSegmentedControl' - s.version = '0.1.3' + s.version = '0.1.2' s.author = { 'Pol Quintana' => 'pol.quintana1@gmail.com' } s.homepage = 'https://github.com/twicketapp/TwicketSegmentedControl' s.license = { :type => 'MIT', :file => 'LICENSE' } - s.platform = :ios, '9.0' - s.source = { :git => 'https://github.com/justinackermann/TwicketSegmentedControl.git', :tag => s.version.to_s } + s.platform = :ios, '10.0' + s.source = { :git => 'https://github.com/twicketapp/TwicketSegmentedControl.git', :tag => s.version.to_s } s.summary = 'Custom UISegmentedControl replacement for iOS, written in Swift' s.source_files = 'TwicketSegmentedControl/*.swift' end diff --git a/TwicketSegmentedControlDemo/TwicketSegmentedControlDemo.xcodeproj/project.pbxproj b/TwicketSegmentedControlDemo/TwicketSegmentedControlDemo.xcodeproj/project.pbxproj index 9cdafd1..c6fdf20 100644 --- a/TwicketSegmentedControlDemo/TwicketSegmentedControlDemo.xcodeproj/project.pbxproj +++ b/TwicketSegmentedControlDemo/TwicketSegmentedControlDemo.xcodeproj/project.pbxproj @@ -339,7 +339,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -393,7 +393,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; diff --git a/TwicketSegmentedControlDemo/TwicketSegmentedControlDemo.xcodeproj/xcshareddata/xcschemes/TwicketSegmentedControl.xcscheme b/TwicketSegmentedControlDemo/TwicketSegmentedControlDemo.xcodeproj/xcshareddata/xcschemes/TwicketSegmentedControl.xcscheme index 9344de1..dae4e52 100644 --- a/TwicketSegmentedControlDemo/TwicketSegmentedControlDemo.xcodeproj/xcshareddata/xcschemes/TwicketSegmentedControl.xcscheme +++ b/TwicketSegmentedControlDemo/TwicketSegmentedControlDemo.xcodeproj/xcshareddata/xcschemes/TwicketSegmentedControl.xcscheme @@ -31,7 +31,7 @@ Date: Tue, 1 Sep 2020 23:45:10 -0400 Subject: [PATCH 4/4] Update Podspec --- TwicketSegmentedControlDemo/Podfile | 18 + TwicketSegmentedControlDemo/Podfile.lock | 21 + .../TwicketSegmentedControl.podspec.json | 21 + .../Pods/Manifest.lock | 21 + .../Pods/Pods.xcodeproj/project.pbxproj | 770 ++++++++++++++++++ .../Pods-TwicketSegmentedControl-Info.plist | 26 + ...SegmentedControl-acknowledgements.markdown | 29 + ...ketSegmentedControl-acknowledgements.plist | 61 ++ .../Pods-TwicketSegmentedControl-dummy.m | 5 + .../Pods-TwicketSegmentedControl-umbrella.h | 16 + ...ods-TwicketSegmentedControl.debug.xcconfig | 11 + .../Pods-TwicketSegmentedControl.modulemap | 6 + ...s-TwicketSegmentedControl.release.xcconfig | 11 + ...ods-TwicketSegmentedControlDemo-Info.plist | 26 + ...entedControlDemo-acknowledgements.markdown | 29 + ...egmentedControlDemo-acknowledgements.plist | 61 ++ .../Pods-TwicketSegmentedControlDemo-dummy.m | 5 + ...-TwicketSegmentedControlDemo-frameworks.sh | 207 +++++ ...ods-TwicketSegmentedControlDemo-umbrella.h | 16 + ...TwicketSegmentedControlDemo.debug.xcconfig | 12 + ...Pods-TwicketSegmentedControlDemo.modulemap | 6 + ...icketSegmentedControlDemo.release.xcconfig | 12 + .../TwicketSegmentedControl-Info.plist | 26 + .../TwicketSegmentedControl-dummy.m | 5 + .../TwicketSegmentedControl-prefix.pch | 12 + .../TwicketSegmentedControl-umbrella.h | 16 + .../TwicketSegmentedControl.debug.xcconfig | 10 + .../TwicketSegmentedControl.modulemap | 6 + .../TwicketSegmentedControl.release.xcconfig | 10 + .../Pods/TwicketSegmentedControl/LICENSE | 22 + .../Pods/TwicketSegmentedControl/README.md | 87 ++ .../TwicketSegmentedControl/Palette.swift | 28 + .../TwicketSegmentedControl.swift | 297 +++++++ .../UIViewShadowExtension.swift | 22 + .../TwicketSegmentedControl.podspec | 0 .../project.pbxproj | 110 ++- .../contents.xcworkspacedata | 10 + 37 files changed, 2050 insertions(+), 1 deletion(-) create mode 100644 TwicketSegmentedControlDemo/Podfile create mode 100644 TwicketSegmentedControlDemo/Podfile.lock create mode 100644 TwicketSegmentedControlDemo/Pods/Local Podspecs/TwicketSegmentedControl.podspec.json create mode 100644 TwicketSegmentedControlDemo/Pods/Manifest.lock create mode 100644 TwicketSegmentedControlDemo/Pods/Pods.xcodeproj/project.pbxproj create mode 100644 TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControl/Pods-TwicketSegmentedControl-Info.plist create mode 100644 TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControl/Pods-TwicketSegmentedControl-acknowledgements.markdown create mode 100644 TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControl/Pods-TwicketSegmentedControl-acknowledgements.plist create mode 100644 TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControl/Pods-TwicketSegmentedControl-dummy.m create mode 100644 TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControl/Pods-TwicketSegmentedControl-umbrella.h create mode 100644 TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControl/Pods-TwicketSegmentedControl.debug.xcconfig create mode 100644 TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControl/Pods-TwicketSegmentedControl.modulemap create mode 100644 TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControl/Pods-TwicketSegmentedControl.release.xcconfig create mode 100644 TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControlDemo/Pods-TwicketSegmentedControlDemo-Info.plist create mode 100644 TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControlDemo/Pods-TwicketSegmentedControlDemo-acknowledgements.markdown create mode 100644 TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControlDemo/Pods-TwicketSegmentedControlDemo-acknowledgements.plist create mode 100644 TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControlDemo/Pods-TwicketSegmentedControlDemo-dummy.m create mode 100755 TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControlDemo/Pods-TwicketSegmentedControlDemo-frameworks.sh create mode 100644 TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControlDemo/Pods-TwicketSegmentedControlDemo-umbrella.h create mode 100644 TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControlDemo/Pods-TwicketSegmentedControlDemo.debug.xcconfig create mode 100644 TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControlDemo/Pods-TwicketSegmentedControlDemo.modulemap create mode 100644 TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControlDemo/Pods-TwicketSegmentedControlDemo.release.xcconfig create mode 100644 TwicketSegmentedControlDemo/Pods/Target Support Files/TwicketSegmentedControl/TwicketSegmentedControl-Info.plist create mode 100644 TwicketSegmentedControlDemo/Pods/Target Support Files/TwicketSegmentedControl/TwicketSegmentedControl-dummy.m create mode 100644 TwicketSegmentedControlDemo/Pods/Target Support Files/TwicketSegmentedControl/TwicketSegmentedControl-prefix.pch create mode 100644 TwicketSegmentedControlDemo/Pods/Target Support Files/TwicketSegmentedControl/TwicketSegmentedControl-umbrella.h create mode 100644 TwicketSegmentedControlDemo/Pods/Target Support Files/TwicketSegmentedControl/TwicketSegmentedControl.debug.xcconfig create mode 100644 TwicketSegmentedControlDemo/Pods/Target Support Files/TwicketSegmentedControl/TwicketSegmentedControl.modulemap create mode 100644 TwicketSegmentedControlDemo/Pods/Target Support Files/TwicketSegmentedControl/TwicketSegmentedControl.release.xcconfig create mode 100644 TwicketSegmentedControlDemo/Pods/TwicketSegmentedControl/LICENSE create mode 100644 TwicketSegmentedControlDemo/Pods/TwicketSegmentedControl/README.md create mode 100644 TwicketSegmentedControlDemo/Pods/TwicketSegmentedControl/TwicketSegmentedControl/Palette.swift create mode 100644 TwicketSegmentedControlDemo/Pods/TwicketSegmentedControl/TwicketSegmentedControl/TwicketSegmentedControl.swift create mode 100644 TwicketSegmentedControlDemo/Pods/TwicketSegmentedControl/TwicketSegmentedControl/UIViewShadowExtension.swift rename TwicketSegmentedControl.podspec => TwicketSegmentedControlDemo/TwicketSegmentedControl.podspec (100%) create mode 100644 TwicketSegmentedControlDemo/TwicketSegmentedControlDemo.xcworkspace/contents.xcworkspacedata diff --git a/TwicketSegmentedControlDemo/Podfile b/TwicketSegmentedControlDemo/Podfile new file mode 100644 index 0000000..bcfbe3d --- /dev/null +++ b/TwicketSegmentedControlDemo/Podfile @@ -0,0 +1,18 @@ +# Uncomment the next line to define a global platform for your project +platform :ios, '10.0' + +target 'TwicketSegmentedControl' do + # Comment the next line if you don't want to use dynamic frameworks + use_frameworks! + + # Pods for TwicketSegmentedControl + pod 'TwicketSegmentedControl', :git => 'https://github.com/justinackermann/TwicketSegmentedControl.git' +end + +target 'TwicketSegmentedControlDemo' do + # Comment the next line if you don't want to use dynamic frameworks + use_frameworks! + + # Pods for TwicketSegmentedControlDemo + +end diff --git a/TwicketSegmentedControlDemo/Podfile.lock b/TwicketSegmentedControlDemo/Podfile.lock new file mode 100644 index 0000000..729228e --- /dev/null +++ b/TwicketSegmentedControlDemo/Podfile.lock @@ -0,0 +1,21 @@ +PODS: + - TwicketSegmentedControl (0.1.2) + +DEPENDENCIES: + - TwicketSegmentedControl (from `https://github.com/justinackermann/TwicketSegmentedControl.git`) + +EXTERNAL SOURCES: + TwicketSegmentedControl: + :git: https://github.com/justinackermann/TwicketSegmentedControl.git + +CHECKOUT OPTIONS: + TwicketSegmentedControl: + :commit: 3a5b403c5ff00a889aa7cd5eabd3cf9f4843cff6 + :git: https://github.com/justinackermann/TwicketSegmentedControl.git + +SPEC CHECKSUMS: + TwicketSegmentedControl: edb198a2314c219f9a26b9cfa121f6848f54a85a + +PODFILE CHECKSUM: 607325b0ba9545c353876e6c0a7abcd7489e7d90 + +COCOAPODS: 1.9.1 diff --git a/TwicketSegmentedControlDemo/Pods/Local Podspecs/TwicketSegmentedControl.podspec.json b/TwicketSegmentedControlDemo/Pods/Local Podspecs/TwicketSegmentedControl.podspec.json new file mode 100644 index 0000000..c2dda38 --- /dev/null +++ b/TwicketSegmentedControlDemo/Pods/Local Podspecs/TwicketSegmentedControl.podspec.json @@ -0,0 +1,21 @@ +{ + "name": "TwicketSegmentedControl", + "version": "0.1.2", + "authors": { + "Pol Quintana": "pol.quintana1@gmail.com" + }, + "homepage": "https://github.com/twicketapp/TwicketSegmentedControl", + "license": { + "type": "MIT", + "file": "LICENSE" + }, + "platforms": { + "ios": "9.0" + }, + "source": { + "git": "https://github.com/twicketapp/TwicketSegmentedControl.git", + "tag": "0.1.2" + }, + "summary": "Custom UISegmentedControl replacement for iOS, written in Swift", + "source_files": "TwicketSegmentedControl/*.swift" +} diff --git a/TwicketSegmentedControlDemo/Pods/Manifest.lock b/TwicketSegmentedControlDemo/Pods/Manifest.lock new file mode 100644 index 0000000..729228e --- /dev/null +++ b/TwicketSegmentedControlDemo/Pods/Manifest.lock @@ -0,0 +1,21 @@ +PODS: + - TwicketSegmentedControl (0.1.2) + +DEPENDENCIES: + - TwicketSegmentedControl (from `https://github.com/justinackermann/TwicketSegmentedControl.git`) + +EXTERNAL SOURCES: + TwicketSegmentedControl: + :git: https://github.com/justinackermann/TwicketSegmentedControl.git + +CHECKOUT OPTIONS: + TwicketSegmentedControl: + :commit: 3a5b403c5ff00a889aa7cd5eabd3cf9f4843cff6 + :git: https://github.com/justinackermann/TwicketSegmentedControl.git + +SPEC CHECKSUMS: + TwicketSegmentedControl: edb198a2314c219f9a26b9cfa121f6848f54a85a + +PODFILE CHECKSUM: 607325b0ba9545c353876e6c0a7abcd7489e7d90 + +COCOAPODS: 1.9.1 diff --git a/TwicketSegmentedControlDemo/Pods/Pods.xcodeproj/project.pbxproj b/TwicketSegmentedControlDemo/Pods/Pods.xcodeproj/project.pbxproj new file mode 100644 index 0000000..13b4b3d --- /dev/null +++ b/TwicketSegmentedControlDemo/Pods/Pods.xcodeproj/project.pbxproj @@ -0,0 +1,770 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 0151FE4F64BF7DDF1CE62ABB1DE74944 /* Pods-TwicketSegmentedControl-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 55072C2A9CBB5D5F6143C9552F6B38DA /* Pods-TwicketSegmentedControl-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 10975B49FFEE3F58230F4D417F9252D3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3212113385A8FBBDB272BD23C409FF61 /* Foundation.framework */; }; + 13DED82AA3631DE5394EB6D58F118DB6 /* TwicketSegmentedControl-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 47F2602764B0856BCA197EC903FBB89D /* TwicketSegmentedControl-dummy.m */; }; + 2724BCEC3162B5FA170A1D44A8835917 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3212113385A8FBBDB272BD23C409FF61 /* Foundation.framework */; }; + 2E718BD5A1688F41CE3A008CFDA45EE4 /* UIViewShadowExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = B927D41641DA5276DF70EA31ECA18C79 /* UIViewShadowExtension.swift */; }; + 775114EFD6F962855DB3E529ADB9F824 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3212113385A8FBBDB272BD23C409FF61 /* Foundation.framework */; }; + A18B5A678CED81E8C488E7780DCCF1BB /* TwicketSegmentedControl-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = ABE07331313A6683B240A99B2AD61C68 /* TwicketSegmentedControl-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A9F7C6DCD507FE966CCD7710D67CC492 /* Pods-TwicketSegmentedControl-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = E6940964D77F0C591716A07478CEB4C9 /* Pods-TwicketSegmentedControl-dummy.m */; }; + B49B1E7A13DFD6BBEFA57A4C35B7DC10 /* Pods-TwicketSegmentedControlDemo-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 03A6895C752AEB4C7EB49A934623CAF7 /* Pods-TwicketSegmentedControlDemo-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B9B974BDC95E9A7FFA307DED9DB847EF /* Pods-TwicketSegmentedControlDemo-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 64CFE69794662C21459689846396B61E /* Pods-TwicketSegmentedControlDemo-dummy.m */; }; + C308032C6B14272888A5F83B10ECE197 /* TwicketSegmentedControl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7446E7C12402DB3C25B41C8E88429D6B /* TwicketSegmentedControl.swift */; }; + CD1AA6780E80DB4CC5F649B3F788BB11 /* Palette.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8F77E963E9F4AF3934356D1932752F1 /* Palette.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 1610AA037AB3D4848344D569DA8495AA /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = CFB2ED6ED3288C867A5E28B9785E41B5; + remoteInfo = TwicketSegmentedControl; + }; + 5C8965FCD62EEC664D28A6EA63D77639 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = CFB2ED6ED3288C867A5E28B9785E41B5; + remoteInfo = TwicketSegmentedControl; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 02B9A5B1B1CDAF5DE22C404354678092 /* Pods-TwicketSegmentedControlDemo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-TwicketSegmentedControlDemo.release.xcconfig"; sourceTree = ""; }; + 03A6895C752AEB4C7EB49A934623CAF7 /* Pods-TwicketSegmentedControlDemo-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-TwicketSegmentedControlDemo-umbrella.h"; sourceTree = ""; }; + 0784089C1081253F833D938CE050A6BE /* Pods-TwicketSegmentedControl.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-TwicketSegmentedControl.modulemap"; sourceTree = ""; }; + 18976F4D9561882EEE1049A4B1B0E474 /* TwicketSegmentedControl-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "TwicketSegmentedControl-prefix.pch"; sourceTree = ""; }; + 1F268D13FA88445940D09532A781613B /* Pods_TwicketSegmentedControlDemo.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_TwicketSegmentedControlDemo.framework; path = "Pods-TwicketSegmentedControlDemo.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + 2A7A8F8188A1B9870BF7CA44E22D8638 /* TwicketSegmentedControl.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = TwicketSegmentedControl.modulemap; sourceTree = ""; }; + 2ECFA0BE8285562093F81033DCDD1A0F /* Pods-TwicketSegmentedControlDemo-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-TwicketSegmentedControlDemo-Info.plist"; sourceTree = ""; }; + 3212113385A8FBBDB272BD23C409FF61 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + 3827167BEBD69C7FD155A04A02CF1EA0 /* Pods_TwicketSegmentedControl.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_TwicketSegmentedControl.framework; path = "Pods-TwicketSegmentedControl.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + 416404C0F1767B5D780E0CB4F472E7B7 /* TwicketSegmentedControl-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "TwicketSegmentedControl-Info.plist"; sourceTree = ""; }; + 47DC12741AA18164A960AA5116027460 /* Pods-TwicketSegmentedControlDemo-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-TwicketSegmentedControlDemo-acknowledgements.markdown"; sourceTree = ""; }; + 47F2602764B0856BCA197EC903FBB89D /* TwicketSegmentedControl-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "TwicketSegmentedControl-dummy.m"; sourceTree = ""; }; + 4CD3347DAF8523C8FACED91D0BFCB2AD /* Pods-TwicketSegmentedControl-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-TwicketSegmentedControl-Info.plist"; sourceTree = ""; }; + 4E400C08F8E7DC59718AFFB9D8E00BB7 /* TwicketSegmentedControl.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = TwicketSegmentedControl.debug.xcconfig; sourceTree = ""; }; + 54967429CF7833CDB381319787D5C1B1 /* Pods-TwicketSegmentedControlDemo.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-TwicketSegmentedControlDemo.modulemap"; sourceTree = ""; }; + 55072C2A9CBB5D5F6143C9552F6B38DA /* Pods-TwicketSegmentedControl-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-TwicketSegmentedControl-umbrella.h"; sourceTree = ""; }; + 60D09ED4264C9DF1B58169104A4826A3 /* TwicketSegmentedControl.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = TwicketSegmentedControl.release.xcconfig; sourceTree = ""; }; + 645A55EB1BAC3A6685A7D67D8DA0E971 /* Pods-TwicketSegmentedControl-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-TwicketSegmentedControl-acknowledgements.markdown"; sourceTree = ""; }; + 64CFE69794662C21459689846396B61E /* Pods-TwicketSegmentedControlDemo-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-TwicketSegmentedControlDemo-dummy.m"; sourceTree = ""; }; + 69EFCB093CDBEF3E6BD7F33D91CAFACD /* Pods-TwicketSegmentedControl.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-TwicketSegmentedControl.release.xcconfig"; sourceTree = ""; }; + 7446E7C12402DB3C25B41C8E88429D6B /* TwicketSegmentedControl.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TwicketSegmentedControl.swift; path = TwicketSegmentedControl/TwicketSegmentedControl.swift; sourceTree = ""; }; + 977B02C25640803F422C1FAE54C719CD /* Pods-TwicketSegmentedControlDemo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-TwicketSegmentedControlDemo.debug.xcconfig"; sourceTree = ""; }; + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 9D9FBEDD3F58ED6E143BA53843BCA123 /* Pods-TwicketSegmentedControlDemo-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-TwicketSegmentedControlDemo-frameworks.sh"; sourceTree = ""; }; + ABE07331313A6683B240A99B2AD61C68 /* TwicketSegmentedControl-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "TwicketSegmentedControl-umbrella.h"; sourceTree = ""; }; + B4CCB598DBBBFFCD82E05A27B9A6F4E2 /* Pods-TwicketSegmentedControl-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-TwicketSegmentedControl-acknowledgements.plist"; sourceTree = ""; }; + B927D41641DA5276DF70EA31ECA18C79 /* UIViewShadowExtension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = UIViewShadowExtension.swift; path = TwicketSegmentedControl/UIViewShadowExtension.swift; sourceTree = ""; }; + BEDCA0F83965174199BD5ECDBBE9203E /* TwicketSegmentedControl.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = TwicketSegmentedControl.framework; path = TwicketSegmentedControl.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D5059F5D438DA5461BFAE0D767E342D1 /* Pods-TwicketSegmentedControlDemo-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-TwicketSegmentedControlDemo-acknowledgements.plist"; sourceTree = ""; }; + E45CE3E1B7BD5563DF84771C032955CE /* Pods-TwicketSegmentedControl.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-TwicketSegmentedControl.debug.xcconfig"; sourceTree = ""; }; + E6940964D77F0C591716A07478CEB4C9 /* Pods-TwicketSegmentedControl-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-TwicketSegmentedControl-dummy.m"; sourceTree = ""; }; + E8F77E963E9F4AF3934356D1932752F1 /* Palette.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Palette.swift; path = TwicketSegmentedControl/Palette.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 1799525DF52FB871E7DD42F737AA8C46 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 775114EFD6F962855DB3E529ADB9F824 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 63EC01648AAB56DF149C2CD1136CF8E1 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 2724BCEC3162B5FA170A1D44A8835917 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E61F6B884C300156B7D2C552CEDAB53E /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 10975B49FFEE3F58230F4D417F9252D3 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 22B793D3AEEFE1A2AD8E08781C893A4F /* Support Files */ = { + isa = PBXGroup; + children = ( + 2A7A8F8188A1B9870BF7CA44E22D8638 /* TwicketSegmentedControl.modulemap */, + 47F2602764B0856BCA197EC903FBB89D /* TwicketSegmentedControl-dummy.m */, + 416404C0F1767B5D780E0CB4F472E7B7 /* TwicketSegmentedControl-Info.plist */, + 18976F4D9561882EEE1049A4B1B0E474 /* TwicketSegmentedControl-prefix.pch */, + ABE07331313A6683B240A99B2AD61C68 /* TwicketSegmentedControl-umbrella.h */, + 4E400C08F8E7DC59718AFFB9D8E00BB7 /* TwicketSegmentedControl.debug.xcconfig */, + 60D09ED4264C9DF1B58169104A4826A3 /* TwicketSegmentedControl.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/TwicketSegmentedControl"; + sourceTree = ""; + }; + 284C97C97252F63E09A09622B0980581 /* Pods-TwicketSegmentedControlDemo */ = { + isa = PBXGroup; + children = ( + 54967429CF7833CDB381319787D5C1B1 /* Pods-TwicketSegmentedControlDemo.modulemap */, + 47DC12741AA18164A960AA5116027460 /* Pods-TwicketSegmentedControlDemo-acknowledgements.markdown */, + D5059F5D438DA5461BFAE0D767E342D1 /* Pods-TwicketSegmentedControlDemo-acknowledgements.plist */, + 64CFE69794662C21459689846396B61E /* Pods-TwicketSegmentedControlDemo-dummy.m */, + 9D9FBEDD3F58ED6E143BA53843BCA123 /* Pods-TwicketSegmentedControlDemo-frameworks.sh */, + 2ECFA0BE8285562093F81033DCDD1A0F /* Pods-TwicketSegmentedControlDemo-Info.plist */, + 03A6895C752AEB4C7EB49A934623CAF7 /* Pods-TwicketSegmentedControlDemo-umbrella.h */, + 977B02C25640803F422C1FAE54C719CD /* Pods-TwicketSegmentedControlDemo.debug.xcconfig */, + 02B9A5B1B1CDAF5DE22C404354678092 /* Pods-TwicketSegmentedControlDemo.release.xcconfig */, + ); + name = "Pods-TwicketSegmentedControlDemo"; + path = "Target Support Files/Pods-TwicketSegmentedControlDemo"; + sourceTree = ""; + }; + 5755BD025FF075FFFF4B4F338FE21AA1 /* TwicketSegmentedControl */ = { + isa = PBXGroup; + children = ( + E8F77E963E9F4AF3934356D1932752F1 /* Palette.swift */, + 7446E7C12402DB3C25B41C8E88429D6B /* TwicketSegmentedControl.swift */, + B927D41641DA5276DF70EA31ECA18C79 /* UIViewShadowExtension.swift */, + 22B793D3AEEFE1A2AD8E08781C893A4F /* Support Files */, + ); + name = TwicketSegmentedControl; + path = TwicketSegmentedControl; + sourceTree = ""; + }; + 84CF46086363D083D95BA0B23A43BDA1 /* Pods-TwicketSegmentedControl */ = { + isa = PBXGroup; + children = ( + 0784089C1081253F833D938CE050A6BE /* Pods-TwicketSegmentedControl.modulemap */, + 645A55EB1BAC3A6685A7D67D8DA0E971 /* Pods-TwicketSegmentedControl-acknowledgements.markdown */, + B4CCB598DBBBFFCD82E05A27B9A6F4E2 /* Pods-TwicketSegmentedControl-acknowledgements.plist */, + E6940964D77F0C591716A07478CEB4C9 /* Pods-TwicketSegmentedControl-dummy.m */, + 4CD3347DAF8523C8FACED91D0BFCB2AD /* Pods-TwicketSegmentedControl-Info.plist */, + 55072C2A9CBB5D5F6143C9552F6B38DA /* Pods-TwicketSegmentedControl-umbrella.h */, + E45CE3E1B7BD5563DF84771C032955CE /* Pods-TwicketSegmentedControl.debug.xcconfig */, + 69EFCB093CDBEF3E6BD7F33D91CAFACD /* Pods-TwicketSegmentedControl.release.xcconfig */, + ); + name = "Pods-TwicketSegmentedControl"; + path = "Target Support Files/Pods-TwicketSegmentedControl"; + sourceTree = ""; + }; + 96D965A79DB97154C60E9BA42AB99646 /* Products */ = { + isa = PBXGroup; + children = ( + 3827167BEBD69C7FD155A04A02CF1EA0 /* Pods_TwicketSegmentedControl.framework */, + 1F268D13FA88445940D09532A781613B /* Pods_TwicketSegmentedControlDemo.framework */, + BEDCA0F83965174199BD5ECDBBE9203E /* TwicketSegmentedControl.framework */, + ); + name = Products; + sourceTree = ""; + }; + C0834CEBB1379A84116EF29F93051C60 /* iOS */ = { + isa = PBXGroup; + children = ( + 3212113385A8FBBDB272BD23C409FF61 /* Foundation.framework */, + ); + name = iOS; + sourceTree = ""; + }; + CD67B1ECDEA80D0A0E417A40032B0D35 /* Pods */ = { + isa = PBXGroup; + children = ( + 5755BD025FF075FFFF4B4F338FE21AA1 /* TwicketSegmentedControl */, + ); + name = Pods; + sourceTree = ""; + }; + CF1408CF629C7361332E53B88F7BD30C = { + isa = PBXGroup; + children = ( + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, + D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */, + CD67B1ECDEA80D0A0E417A40032B0D35 /* Pods */, + 96D965A79DB97154C60E9BA42AB99646 /* Products */, + DF8A7B120CFCDFCE44C27199E98B495C /* Targets Support Files */, + ); + sourceTree = ""; + }; + D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */ = { + isa = PBXGroup; + children = ( + C0834CEBB1379A84116EF29F93051C60 /* iOS */, + ); + name = Frameworks; + sourceTree = ""; + }; + DF8A7B120CFCDFCE44C27199E98B495C /* Targets Support Files */ = { + isa = PBXGroup; + children = ( + 84CF46086363D083D95BA0B23A43BDA1 /* Pods-TwicketSegmentedControl */, + 284C97C97252F63E09A09622B0980581 /* Pods-TwicketSegmentedControlDemo */, + ); + name = "Targets Support Files"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 3B2E17F8EFD7EFC954F82A28E29A77B7 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + B49B1E7A13DFD6BBEFA57A4C35B7DC10 /* Pods-TwicketSegmentedControlDemo-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 5CBB2DDD52A06F51F509560643CEB0F6 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + A18B5A678CED81E8C488E7780DCCF1BB /* TwicketSegmentedControl-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F005725B41B2E2BE98B126C3E3EC3A9C /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 0151FE4F64BF7DDF1CE62ABB1DE74944 /* Pods-TwicketSegmentedControl-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 3F981587920A2391D2D457E4AB68B49B /* Pods-TwicketSegmentedControlDemo */ = { + isa = PBXNativeTarget; + buildConfigurationList = 7ADA552E6842C32DAB430ABA048B4157 /* Build configuration list for PBXNativeTarget "Pods-TwicketSegmentedControlDemo" */; + buildPhases = ( + 3B2E17F8EFD7EFC954F82A28E29A77B7 /* Headers */, + 6AE0934EDC7FEFB1C3495832EF3F9AB1 /* Sources */, + 63EC01648AAB56DF149C2CD1136CF8E1 /* Frameworks */, + EDB33C7E30FB827BBFA238A4BDB6A91D /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 272D0283297D9DD0D53D9ED4F87DD3FA /* PBXTargetDependency */, + ); + name = "Pods-TwicketSegmentedControlDemo"; + productName = "Pods-TwicketSegmentedControlDemo"; + productReference = 1F268D13FA88445940D09532A781613B /* Pods_TwicketSegmentedControlDemo.framework */; + productType = "com.apple.product-type.framework"; + }; + 8DBDFDD6E72050E47D01E77AC136D612 /* Pods-TwicketSegmentedControl */ = { + isa = PBXNativeTarget; + buildConfigurationList = 15260A71DC5FC4CC835166D401CB3FAF /* Build configuration list for PBXNativeTarget "Pods-TwicketSegmentedControl" */; + buildPhases = ( + F005725B41B2E2BE98B126C3E3EC3A9C /* Headers */, + AE6749E1D7FF75CBB38CB9BDB8914716 /* Sources */, + E61F6B884C300156B7D2C552CEDAB53E /* Frameworks */, + 082CCB39A954EE85C56EEC9ACF491E0D /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 43FA655DDAE7A9A8C398DF7BD757FD66 /* PBXTargetDependency */, + ); + name = "Pods-TwicketSegmentedControl"; + productName = "Pods-TwicketSegmentedControl"; + productReference = 3827167BEBD69C7FD155A04A02CF1EA0 /* Pods_TwicketSegmentedControl.framework */; + productType = "com.apple.product-type.framework"; + }; + CFB2ED6ED3288C867A5E28B9785E41B5 /* TwicketSegmentedControl */ = { + isa = PBXNativeTarget; + buildConfigurationList = 4E6EE62DF967A8DFDBA76F70D74E7B13 /* Build configuration list for PBXNativeTarget "TwicketSegmentedControl" */; + buildPhases = ( + 5CBB2DDD52A06F51F509560643CEB0F6 /* Headers */, + 49F5B79D477E9C63AFC246E18101C823 /* Sources */, + 1799525DF52FB871E7DD42F737AA8C46 /* Frameworks */, + 96EB9B24EE05779AB80A0A59B123785D /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = TwicketSegmentedControl; + productName = TwicketSegmentedControl; + productReference = BEDCA0F83965174199BD5ECDBBE9203E /* TwicketSegmentedControl.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + BFDFE7DC352907FC980B868725387E98 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1100; + LastUpgradeCheck = 1100; + }; + buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = CF1408CF629C7361332E53B88F7BD30C; + productRefGroup = 96D965A79DB97154C60E9BA42AB99646 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 8DBDFDD6E72050E47D01E77AC136D612 /* Pods-TwicketSegmentedControl */, + 3F981587920A2391D2D457E4AB68B49B /* Pods-TwicketSegmentedControlDemo */, + CFB2ED6ED3288C867A5E28B9785E41B5 /* TwicketSegmentedControl */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 082CCB39A954EE85C56EEC9ACF491E0D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 96EB9B24EE05779AB80A0A59B123785D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + EDB33C7E30FB827BBFA238A4BDB6A91D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 49F5B79D477E9C63AFC246E18101C823 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + CD1AA6780E80DB4CC5F649B3F788BB11 /* Palette.swift in Sources */, + 13DED82AA3631DE5394EB6D58F118DB6 /* TwicketSegmentedControl-dummy.m in Sources */, + C308032C6B14272888A5F83B10ECE197 /* TwicketSegmentedControl.swift in Sources */, + 2E718BD5A1688F41CE3A008CFDA45EE4 /* UIViewShadowExtension.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6AE0934EDC7FEFB1C3495832EF3F9AB1 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + B9B974BDC95E9A7FFA307DED9DB847EF /* Pods-TwicketSegmentedControlDemo-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + AE6749E1D7FF75CBB38CB9BDB8914716 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A9F7C6DCD507FE966CCD7710D67CC492 /* Pods-TwicketSegmentedControl-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 272D0283297D9DD0D53D9ED4F87DD3FA /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = TwicketSegmentedControl; + target = CFB2ED6ED3288C867A5E28B9785E41B5 /* TwicketSegmentedControl */; + targetProxy = 5C8965FCD62EEC664D28A6EA63D77639 /* PBXContainerItemProxy */; + }; + 43FA655DDAE7A9A8C398DF7BD757FD66 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = TwicketSegmentedControl; + target = CFB2ED6ED3288C867A5E28B9785E41B5 /* TwicketSegmentedControl */; + targetProxy = 1610AA037AB3D4848344D569DA8495AA /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 00881451A1F32D2602F51DA9F6897A60 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = E45CE3E1B7BD5563DF84771C032955CE /* Pods-TwicketSegmentedControl.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-TwicketSegmentedControl/Pods-TwicketSegmentedControl-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-TwicketSegmentedControl/Pods-TwicketSegmentedControl.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 196DFA3E4A09A28224918543529A1885 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = 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_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_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_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_DEBUG=1", + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_INSTALLED_PRODUCT = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Debug; + }; + 4D55581621F2631BD649CAEE42F2DDE6 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 4E400C08F8E7DC59718AFFB9D8E00BB7 /* TwicketSegmentedControl.debug.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/TwicketSegmentedControl/TwicketSegmentedControl-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/TwicketSegmentedControl/TwicketSegmentedControl-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/TwicketSegmentedControl/TwicketSegmentedControl.modulemap"; + PRODUCT_MODULE_NAME = TwicketSegmentedControl; + PRODUCT_NAME = TwicketSegmentedControl; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 76C2D1F93B93051D57B47C83CFB31E90 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 60D09ED4264C9DF1B58169104A4826A3 /* TwicketSegmentedControl.release.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/TwicketSegmentedControl/TwicketSegmentedControl-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/TwicketSegmentedControl/TwicketSegmentedControl-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/TwicketSegmentedControl/TwicketSegmentedControl.modulemap"; + PRODUCT_MODULE_NAME = TwicketSegmentedControl; + PRODUCT_NAME = TwicketSegmentedControl; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 8F846A8695F958CAC345FE64F193E097 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 977B02C25640803F422C1FAE54C719CD /* Pods-TwicketSegmentedControlDemo.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-TwicketSegmentedControlDemo/Pods-TwicketSegmentedControlDemo-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-TwicketSegmentedControlDemo/Pods-TwicketSegmentedControlDemo.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + B01D14FDC83DCF9D4BE53066BEA96D05 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = 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_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_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_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_RELEASE=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_INSTALLED_PRODUCT = NO; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Release; + }; + C53FEBE5179080BDAC008B9AB86250A1 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 02B9A5B1B1CDAF5DE22C404354678092 /* Pods-TwicketSegmentedControlDemo.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-TwicketSegmentedControlDemo/Pods-TwicketSegmentedControlDemo-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-TwicketSegmentedControlDemo/Pods-TwicketSegmentedControlDemo.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + CC1475E628BDDEACA192E2CE04A0E276 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 69EFCB093CDBEF3E6BD7F33D91CAFACD /* Pods-TwicketSegmentedControl.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-TwicketSegmentedControl/Pods-TwicketSegmentedControl-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-TwicketSegmentedControl/Pods-TwicketSegmentedControl.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 15260A71DC5FC4CC835166D401CB3FAF /* Build configuration list for PBXNativeTarget "Pods-TwicketSegmentedControl" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 00881451A1F32D2602F51DA9F6897A60 /* Debug */, + CC1475E628BDDEACA192E2CE04A0E276 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 196DFA3E4A09A28224918543529A1885 /* Debug */, + B01D14FDC83DCF9D4BE53066BEA96D05 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 4E6EE62DF967A8DFDBA76F70D74E7B13 /* Build configuration list for PBXNativeTarget "TwicketSegmentedControl" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4D55581621F2631BD649CAEE42F2DDE6 /* Debug */, + 76C2D1F93B93051D57B47C83CFB31E90 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 7ADA552E6842C32DAB430ABA048B4157 /* Build configuration list for PBXNativeTarget "Pods-TwicketSegmentedControlDemo" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 8F846A8695F958CAC345FE64F193E097 /* Debug */, + C53FEBE5179080BDAC008B9AB86250A1 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */; +} diff --git a/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControl/Pods-TwicketSegmentedControl-Info.plist b/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControl/Pods-TwicketSegmentedControl-Info.plist new file mode 100644 index 0000000..2243fe6 --- /dev/null +++ b/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControl/Pods-TwicketSegmentedControl-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControl/Pods-TwicketSegmentedControl-acknowledgements.markdown b/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControl/Pods-TwicketSegmentedControl-acknowledgements.markdown new file mode 100644 index 0000000..3fda8bb --- /dev/null +++ b/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControl/Pods-TwicketSegmentedControl-acknowledgements.markdown @@ -0,0 +1,29 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## TwicketSegmentedControl + +The MIT License (MIT) + +Copyright (c) 2015 Pol Quintana + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +Generated by CocoaPods - https://cocoapods.org diff --git a/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControl/Pods-TwicketSegmentedControl-acknowledgements.plist b/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControl/Pods-TwicketSegmentedControl-acknowledgements.plist new file mode 100644 index 0000000..ffd5981 --- /dev/null +++ b/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControl/Pods-TwicketSegmentedControl-acknowledgements.plist @@ -0,0 +1,61 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + The MIT License (MIT) + +Copyright (c) 2015 Pol Quintana + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + + License + MIT + Title + TwicketSegmentedControl + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControl/Pods-TwicketSegmentedControl-dummy.m b/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControl/Pods-TwicketSegmentedControl-dummy.m new file mode 100644 index 0000000..7283521 --- /dev/null +++ b/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControl/Pods-TwicketSegmentedControl-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_TwicketSegmentedControl : NSObject +@end +@implementation PodsDummy_Pods_TwicketSegmentedControl +@end diff --git a/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControl/Pods-TwicketSegmentedControl-umbrella.h b/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControl/Pods-TwicketSegmentedControl-umbrella.h new file mode 100644 index 0000000..79e7e5a --- /dev/null +++ b/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControl/Pods-TwicketSegmentedControl-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_TwicketSegmentedControlVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_TwicketSegmentedControlVersionString[]; + diff --git a/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControl/Pods-TwicketSegmentedControl.debug.xcconfig b/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControl/Pods-TwicketSegmentedControl.debug.xcconfig new file mode 100644 index 0000000..8fbbdf9 --- /dev/null +++ b/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControl/Pods-TwicketSegmentedControl.debug.xcconfig @@ -0,0 +1,11 @@ +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/TwicketSegmentedControl" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/TwicketSegmentedControl/TwicketSegmentedControl.framework/Headers" +LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' '@executable_path/../../Frameworks' +OTHER_LDFLAGS = $(inherited) -framework "TwicketSegmentedControl" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControl/Pods-TwicketSegmentedControl.modulemap b/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControl/Pods-TwicketSegmentedControl.modulemap new file mode 100644 index 0000000..4bc1518 --- /dev/null +++ b/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControl/Pods-TwicketSegmentedControl.modulemap @@ -0,0 +1,6 @@ +framework module Pods_TwicketSegmentedControl { + umbrella header "Pods-TwicketSegmentedControl-umbrella.h" + + export * + module * { export * } +} diff --git a/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControl/Pods-TwicketSegmentedControl.release.xcconfig b/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControl/Pods-TwicketSegmentedControl.release.xcconfig new file mode 100644 index 0000000..8fbbdf9 --- /dev/null +++ b/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControl/Pods-TwicketSegmentedControl.release.xcconfig @@ -0,0 +1,11 @@ +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/TwicketSegmentedControl" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/TwicketSegmentedControl/TwicketSegmentedControl.framework/Headers" +LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' '@executable_path/../../Frameworks' +OTHER_LDFLAGS = $(inherited) -framework "TwicketSegmentedControl" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControlDemo/Pods-TwicketSegmentedControlDemo-Info.plist b/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControlDemo/Pods-TwicketSegmentedControlDemo-Info.plist new file mode 100644 index 0000000..2243fe6 --- /dev/null +++ b/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControlDemo/Pods-TwicketSegmentedControlDemo-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControlDemo/Pods-TwicketSegmentedControlDemo-acknowledgements.markdown b/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControlDemo/Pods-TwicketSegmentedControlDemo-acknowledgements.markdown new file mode 100644 index 0000000..3fda8bb --- /dev/null +++ b/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControlDemo/Pods-TwicketSegmentedControlDemo-acknowledgements.markdown @@ -0,0 +1,29 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## TwicketSegmentedControl + +The MIT License (MIT) + +Copyright (c) 2015 Pol Quintana + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +Generated by CocoaPods - https://cocoapods.org diff --git a/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControlDemo/Pods-TwicketSegmentedControlDemo-acknowledgements.plist b/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControlDemo/Pods-TwicketSegmentedControlDemo-acknowledgements.plist new file mode 100644 index 0000000..ffd5981 --- /dev/null +++ b/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControlDemo/Pods-TwicketSegmentedControlDemo-acknowledgements.plist @@ -0,0 +1,61 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + The MIT License (MIT) + +Copyright (c) 2015 Pol Quintana + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + + License + MIT + Title + TwicketSegmentedControl + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControlDemo/Pods-TwicketSegmentedControlDemo-dummy.m b/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControlDemo/Pods-TwicketSegmentedControlDemo-dummy.m new file mode 100644 index 0000000..1f25a85 --- /dev/null +++ b/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControlDemo/Pods-TwicketSegmentedControlDemo-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_TwicketSegmentedControlDemo : NSObject +@end +@implementation PodsDummy_Pods_TwicketSegmentedControlDemo +@end diff --git a/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControlDemo/Pods-TwicketSegmentedControlDemo-frameworks.sh b/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControlDemo/Pods-TwicketSegmentedControlDemo-frameworks.sh new file mode 100755 index 0000000..06656b0 --- /dev/null +++ b/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControlDemo/Pods-TwicketSegmentedControlDemo-frameworks.sh @@ -0,0 +1,207 @@ +#!/bin/sh +set -e +set -u +set -o pipefail + +function on_error { + echo "$(realpath -mq "${0}"):$1: error: Unexpected failure" +} +trap 'on_error $LINENO' ERR + +if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then + # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy + # frameworks to, so exit 0 (signalling the script phase was successful). + exit 0 +fi + +echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" +mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + +COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}" +SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" + +# Used as a return value for each invocation of `strip_invalid_archs` function. +STRIP_BINARY_RETVAL=0 + +# This protects against multiple targets copying the same framework dependency at the same time. The solution +# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html +RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") + +# Copies and strips a vendored framework +install_framework() +{ + if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then + local source="${BUILT_PRODUCTS_DIR}/$1" + elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then + local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" + elif [ -r "$1" ]; then + local source="$1" + fi + + local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + + if [ -L "${source}" ]; then + echo "Symlinked..." + source="$(readlink "${source}")" + fi + + # Use filter instead of exclude so missing patterns don't throw errors. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" + + local basename + basename="$(basename -s .framework "$1")" + binary="${destination}/${basename}.framework/${basename}" + + if ! [ -r "$binary" ]; then + binary="${destination}/${basename}" + elif [ -L "${binary}" ]; then + echo "Destination binary is symlinked..." + dirname="$(dirname "${binary}")" + binary="${dirname}/$(readlink "${binary}")" + fi + + # Strip invalid architectures so "fat" simulator / device frameworks work on device + if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then + strip_invalid_archs "$binary" + fi + + # Resign the code if required by the build settings to avoid unstable apps + code_sign_if_enabled "${destination}/$(basename "$1")" + + # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. + if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then + local swift_runtime_libs + swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u) + for lib in $swift_runtime_libs; do + echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" + rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" + code_sign_if_enabled "${destination}/${lib}" + done + fi +} + +# Copies and strips a vendored dSYM +install_dsym() { + local source="$1" + warn_missing_arch=${2:-true} + if [ -r "$source" ]; then + # Copy the dSYM into the targets temp dir. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}" + + local basename + basename="$(basename -s .dSYM "$source")" + binary_name="$(ls "$source/Contents/Resources/DWARF")" + binary="${DERIVED_FILES_DIR}/${basename}.dSYM/Contents/Resources/DWARF/${binary_name}" + + # Strip invalid architectures so "fat" simulator / device frameworks work on device + if [[ "$(file "$binary")" == *"Mach-O "*"dSYM companion"* ]]; then + strip_invalid_archs "$binary" "$warn_missing_arch" + fi + + if [[ $STRIP_BINARY_RETVAL == 1 ]]; then + # Move the stripped file into its final destination. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.dSYM" "${DWARF_DSYM_FOLDER_PATH}" + else + # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. + touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.dSYM" + fi + fi +} + +# Copies the bcsymbolmap files of a vendored framework +install_bcsymbolmap() { + local bcsymbolmap_path="$1" + local destination="${BUILT_PRODUCTS_DIR}" + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}" +} + +# Signs a framework with the provided identity +code_sign_if_enabled() { + if [ -n "${EXPANDED_CODE_SIGN_IDENTITY:-}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then + # Use the current code_sign_identity + echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" + local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" + + if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then + code_sign_cmd="$code_sign_cmd &" + fi + echo "$code_sign_cmd" + eval "$code_sign_cmd" + fi +} + +# Strip invalid architectures +strip_invalid_archs() { + binary="$1" + warn_missing_arch=${2:-true} + # Get architectures for current target binary + binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" + # Intersect them with the architectures we are building for + intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" + # If there are no archs supported by this binary then warn the user + if [[ -z "$intersected_archs" ]]; then + if [[ "$warn_missing_arch" == "true" ]]; then + echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." + fi + STRIP_BINARY_RETVAL=0 + return + fi + stripped="" + for arch in $binary_archs; do + if ! [[ "${ARCHS}" == *"$arch"* ]]; then + # Strip non-valid architectures in-place + lipo -remove "$arch" -output "$binary" "$binary" + stripped="$stripped $arch" + fi + done + if [[ "$stripped" ]]; then + echo "Stripped $binary of architectures:$stripped" + fi + STRIP_BINARY_RETVAL=1 +} + +install_artifact() { + artifact="$1" + base="$(basename "$artifact")" + case $base in + *.framework) + install_framework "$artifact" + ;; + *.dSYM) + # Suppress arch warnings since XCFrameworks will include many dSYM files + install_dsym "$artifact" "false" + ;; + *.bcsymbolmap) + install_bcsymbolmap "$artifact" + ;; + *) + echo "error: Unrecognized artifact "$artifact"" + ;; + esac +} + +copy_artifacts() { + file_list="$1" + while read artifact; do + install_artifact "$artifact" + done <$file_list +} + +ARTIFACT_LIST_FILE="${BUILT_PRODUCTS_DIR}/cocoapods-artifacts-${CONFIGURATION}.txt" +if [ -r "${ARTIFACT_LIST_FILE}" ]; then + copy_artifacts "${ARTIFACT_LIST_FILE}" +fi + +if [[ "$CONFIGURATION" == "Debug" ]]; then + install_framework "${BUILT_PRODUCTS_DIR}/TwicketSegmentedControl/TwicketSegmentedControl.framework" +fi +if [[ "$CONFIGURATION" == "Release" ]]; then + install_framework "${BUILT_PRODUCTS_DIR}/TwicketSegmentedControl/TwicketSegmentedControl.framework" +fi +if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then + wait +fi diff --git a/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControlDemo/Pods-TwicketSegmentedControlDemo-umbrella.h b/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControlDemo/Pods-TwicketSegmentedControlDemo-umbrella.h new file mode 100644 index 0000000..f306787 --- /dev/null +++ b/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControlDemo/Pods-TwicketSegmentedControlDemo-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_TwicketSegmentedControlDemoVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_TwicketSegmentedControlDemoVersionString[]; + diff --git a/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControlDemo/Pods-TwicketSegmentedControlDemo.debug.xcconfig b/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControlDemo/Pods-TwicketSegmentedControlDemo.debug.xcconfig new file mode 100644 index 0000000..d981ed2 --- /dev/null +++ b/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControlDemo/Pods-TwicketSegmentedControlDemo.debug.xcconfig @@ -0,0 +1,12 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/TwicketSegmentedControl" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/TwicketSegmentedControl/TwicketSegmentedControl.framework/Headers" +LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +OTHER_LDFLAGS = $(inherited) -framework "TwicketSegmentedControl" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControlDemo/Pods-TwicketSegmentedControlDemo.modulemap b/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControlDemo/Pods-TwicketSegmentedControlDemo.modulemap new file mode 100644 index 0000000..0da2302 --- /dev/null +++ b/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControlDemo/Pods-TwicketSegmentedControlDemo.modulemap @@ -0,0 +1,6 @@ +framework module Pods_TwicketSegmentedControlDemo { + umbrella header "Pods-TwicketSegmentedControlDemo-umbrella.h" + + export * + module * { export * } +} diff --git a/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControlDemo/Pods-TwicketSegmentedControlDemo.release.xcconfig b/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControlDemo/Pods-TwicketSegmentedControlDemo.release.xcconfig new file mode 100644 index 0000000..d981ed2 --- /dev/null +++ b/TwicketSegmentedControlDemo/Pods/Target Support Files/Pods-TwicketSegmentedControlDemo/Pods-TwicketSegmentedControlDemo.release.xcconfig @@ -0,0 +1,12 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/TwicketSegmentedControl" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/TwicketSegmentedControl/TwicketSegmentedControl.framework/Headers" +LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +OTHER_LDFLAGS = $(inherited) -framework "TwicketSegmentedControl" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/TwicketSegmentedControlDemo/Pods/Target Support Files/TwicketSegmentedControl/TwicketSegmentedControl-Info.plist b/TwicketSegmentedControlDemo/Pods/Target Support Files/TwicketSegmentedControl/TwicketSegmentedControl-Info.plist new file mode 100644 index 0000000..7c241fa --- /dev/null +++ b/TwicketSegmentedControlDemo/Pods/Target Support Files/TwicketSegmentedControl/TwicketSegmentedControl-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 0.1.2 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/TwicketSegmentedControlDemo/Pods/Target Support Files/TwicketSegmentedControl/TwicketSegmentedControl-dummy.m b/TwicketSegmentedControlDemo/Pods/Target Support Files/TwicketSegmentedControl/TwicketSegmentedControl-dummy.m new file mode 100644 index 0000000..5cbaf9f --- /dev/null +++ b/TwicketSegmentedControlDemo/Pods/Target Support Files/TwicketSegmentedControl/TwicketSegmentedControl-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_TwicketSegmentedControl : NSObject +@end +@implementation PodsDummy_TwicketSegmentedControl +@end diff --git a/TwicketSegmentedControlDemo/Pods/Target Support Files/TwicketSegmentedControl/TwicketSegmentedControl-prefix.pch b/TwicketSegmentedControlDemo/Pods/Target Support Files/TwicketSegmentedControl/TwicketSegmentedControl-prefix.pch new file mode 100644 index 0000000..beb2a24 --- /dev/null +++ b/TwicketSegmentedControlDemo/Pods/Target Support Files/TwicketSegmentedControl/TwicketSegmentedControl-prefix.pch @@ -0,0 +1,12 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + diff --git a/TwicketSegmentedControlDemo/Pods/Target Support Files/TwicketSegmentedControl/TwicketSegmentedControl-umbrella.h b/TwicketSegmentedControlDemo/Pods/Target Support Files/TwicketSegmentedControl/TwicketSegmentedControl-umbrella.h new file mode 100644 index 0000000..76b938c --- /dev/null +++ b/TwicketSegmentedControlDemo/Pods/Target Support Files/TwicketSegmentedControl/TwicketSegmentedControl-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double TwicketSegmentedControlVersionNumber; +FOUNDATION_EXPORT const unsigned char TwicketSegmentedControlVersionString[]; + diff --git a/TwicketSegmentedControlDemo/Pods/Target Support Files/TwicketSegmentedControl/TwicketSegmentedControl.debug.xcconfig b/TwicketSegmentedControlDemo/Pods/Target Support Files/TwicketSegmentedControl/TwicketSegmentedControl.debug.xcconfig new file mode 100644 index 0000000..26e63ca --- /dev/null +++ b/TwicketSegmentedControlDemo/Pods/Target Support Files/TwicketSegmentedControl/TwicketSegmentedControl.debug.xcconfig @@ -0,0 +1,10 @@ +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/TwicketSegmentedControl +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/TwicketSegmentedControl +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/TwicketSegmentedControlDemo/Pods/Target Support Files/TwicketSegmentedControl/TwicketSegmentedControl.modulemap b/TwicketSegmentedControlDemo/Pods/Target Support Files/TwicketSegmentedControl/TwicketSegmentedControl.modulemap new file mode 100644 index 0000000..ced376f --- /dev/null +++ b/TwicketSegmentedControlDemo/Pods/Target Support Files/TwicketSegmentedControl/TwicketSegmentedControl.modulemap @@ -0,0 +1,6 @@ +framework module TwicketSegmentedControl { + umbrella header "TwicketSegmentedControl-umbrella.h" + + export * + module * { export * } +} diff --git a/TwicketSegmentedControlDemo/Pods/Target Support Files/TwicketSegmentedControl/TwicketSegmentedControl.release.xcconfig b/TwicketSegmentedControlDemo/Pods/Target Support Files/TwicketSegmentedControl/TwicketSegmentedControl.release.xcconfig new file mode 100644 index 0000000..26e63ca --- /dev/null +++ b/TwicketSegmentedControlDemo/Pods/Target Support Files/TwicketSegmentedControl/TwicketSegmentedControl.release.xcconfig @@ -0,0 +1,10 @@ +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/TwicketSegmentedControl +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/TwicketSegmentedControl +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/TwicketSegmentedControlDemo/Pods/TwicketSegmentedControl/LICENSE b/TwicketSegmentedControlDemo/Pods/TwicketSegmentedControl/LICENSE new file mode 100644 index 0000000..876a211 --- /dev/null +++ b/TwicketSegmentedControlDemo/Pods/TwicketSegmentedControl/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2015 Pol Quintana + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/TwicketSegmentedControlDemo/Pods/TwicketSegmentedControl/README.md b/TwicketSegmentedControlDemo/Pods/TwicketSegmentedControl/README.md new file mode 100644 index 0000000..edd56bc --- /dev/null +++ b/TwicketSegmentedControlDemo/Pods/TwicketSegmentedControl/README.md @@ -0,0 +1,87 @@ +

+ +# TwicketSegmentedControl +![](https://img.shields.io/badge/Swift-3.0-blue.svg?style=flat) +[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) + +

+ +

+ +Custom UISegmentedControl replacement for iOS, written in Swift, used in the Twicket app. + +It handles the inertia of the movement, so you can “throw” the selector from one side to the other. + +**Take a look at the design by @dsaltaren on [Dribbble](https://dribbble.com/shots/2976216-Twicket-Segmented-Control)** + +### Features: + +- Drag and Tap gesture +- Movement animation +- IB compatible +- Customizable colors + + +### How to use it: +You can either create it using Interface Builder, or by code. + +Whenever the segmented control is instantiated, you'll have to tell it which are going to be the segments it will have: + +```swift + let titles = ["First", "Second", "Third"] + segmentedControl.setSegmentItems(titles) +``` +Every time you use this function, the control is redrawn. + +If you want to manually move to an index: + +```swift + segmentedControl.move(to: 2) +``` +Keep in mind that the first segment index is `0` + +To listen to changes on the selected index you just need to set yourself as delegate: + +```swift + segmentedControl.delegate = self +``` + +And you'll get notified with the following interface: + +```swift + func didSelect(_ segmentIndex: Int) +``` + +One last thing to mention, even if you set a different outer frame, its contentView height will always be `40`. + + +### Customization: + +You can customize the segmented control through the following properties: + +__defaultTextColor__: UIColor - Text color for unselected segments + +__highlightTextColor__: UIColor - Text color for selected segment + +__segmentsBackgroundColor__: UIColor - Background color for unselected segments + +__sliderBackgroundColor__: UIColor - Background color for selected segment + +__isSliderShadowHidden__: Bool - Boolean to decide if the slider should have shadow + +### Installation: +#### • CocoaPods + +``` +use_frameworks! + +pod 'TwicketSegmentedControl' +``` +#### • Carthage + +``` +github "twicketapp/TwicketSegmentedControl" +``` +#### • Manually + +To manually add `TwicketSegmentedControl` to your project you just need to copy the `Source` folder files. diff --git a/TwicketSegmentedControlDemo/Pods/TwicketSegmentedControl/TwicketSegmentedControl/Palette.swift b/TwicketSegmentedControlDemo/Pods/TwicketSegmentedControl/TwicketSegmentedControl/Palette.swift new file mode 100644 index 0000000..5f8845e --- /dev/null +++ b/TwicketSegmentedControlDemo/Pods/TwicketSegmentedControl/TwicketSegmentedControl/Palette.swift @@ -0,0 +1,28 @@ +// +// Palette.swift +// TwicketSegmentedControlDemo +// +// Created by Pol Quintana on 17/09/16. +// Copyright © 2016 Pol Quintana. All rights reserved. +// + +import UIKit + +struct Palette { + static let defaultTextColor = Palette.colorFromRGB(9, green: 26, blue: 51, alpha: 0.4) + static let highlightTextColor = UIColor.white + static let segmentedControlBackgroundColor = Palette.colorFromRGB(237, green: 242, blue: 247, alpha: 0.7) + static let sliderColor = Palette.colorFromRGB(44, green: 131, blue: 255) + + static func colorFromRGB(_ red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat = 1.0) -> UIColor { + func amount(_ amount: CGFloat, with alpha: CGFloat) -> CGFloat { + return (1 - alpha) * 255 + alpha * amount + } + + let red = amount(red, with: alpha)/255 + let green = amount(green, with: alpha)/255 + let blue = amount(blue, with: alpha)/255 + return UIColor(red: red, green: green, blue: blue, alpha: 1) + } + +} diff --git a/TwicketSegmentedControlDemo/Pods/TwicketSegmentedControl/TwicketSegmentedControl/TwicketSegmentedControl.swift b/TwicketSegmentedControlDemo/Pods/TwicketSegmentedControl/TwicketSegmentedControl/TwicketSegmentedControl.swift new file mode 100644 index 0000000..030f3b2 --- /dev/null +++ b/TwicketSegmentedControlDemo/Pods/TwicketSegmentedControl/TwicketSegmentedControl/TwicketSegmentedControl.swift @@ -0,0 +1,297 @@ +// +// TwicketSegmentedControl.swift +// TwicketSegmentedControlDemo +// +// Created by Pol Quintana on 7/11/15. +// Copyright © 2015 Pol Quintana. All rights reserved. +// + +import UIKit + +public protocol TwicketSegmentedControlDelegate: class { + func didSelect(_ segmentIndex: Int) +} + +open class TwicketSegmentedControl: UIControl { + open static let height: CGFloat = Constants.height + Constants.topBottomMargin * 2 + + private struct Constants { + static let height: CGFloat = 30 + static let topBottomMargin: CGFloat = 5 + static let leadingTrailingMargin: CGFloat = 10 + } + + class SliderView: UIView { + // MARK: - Properties + fileprivate let sliderMaskView = UIView() + + var cornerRadius: CGFloat! { + didSet { + layer.cornerRadius = cornerRadius + sliderMaskView.layer.cornerRadius = cornerRadius + } + } + + override var frame: CGRect { + didSet { + sliderMaskView.frame = frame + } + } + + override var center: CGPoint { + didSet { + sliderMaskView.center = center + } + } + + init() { + super.init(frame: .zero) + setup() + } + + required init?(coder aDecoder: NSCoder) { + super.init(coder: aDecoder) + setup() + } + + private func setup() { + layer.masksToBounds = true + sliderMaskView.backgroundColor = .black + sliderMaskView.addShadow(with: .black) + } + } + + open weak var delegate: TwicketSegmentedControlDelegate? + + open var defaultTextColor: UIColor = Palette.defaultTextColor { + didSet { + updateLabelsColor(with: defaultTextColor, selected: false) + } + } + + open var highlightTextColor: UIColor = Palette.highlightTextColor { + didSet { + updateLabelsColor(with: highlightTextColor, selected: true) + } + } + + open var segmentsBackgroundColor: UIColor = Palette.segmentedControlBackgroundColor { + didSet { + backgroundView.backgroundColor = segmentsBackgroundColor + } + } + + open var sliderBackgroundColor: UIColor = Palette.sliderColor { + didSet { + selectedContainerView.backgroundColor = sliderBackgroundColor + if !isSliderShadowHidden { selectedContainerView.addShadow(with: sliderBackgroundColor) } + } + } + + open var font: UIFont = UIFont.systemFont(ofSize: 15, weight: UIFontWeightMedium) { + didSet { + updateLabelsFont(with: font) + } + } + + open var isSliderShadowHidden: Bool = false { + didSet { + updateShadow(with: sliderBackgroundColor, hidden: isSliderShadowHidden) + } + } + + private(set) open var selectedSegmentIndex: Int = 0 + + private var segments: [String] = [] + + private var numberOfSegments: Int { + return segments.count + } + + private var segmentWidth: CGFloat { + return self.backgroundView.frame.width / CGFloat(numberOfSegments) + } + + private var correction: CGFloat = 0 + + private lazy var containerView: UIView = UIView() + private lazy var backgroundView: UIView = UIView() + private lazy var selectedContainerView: UIView = UIView() + private lazy var sliderView: SliderView = SliderView() + + public override init(frame: CGRect) { + super.init(frame: frame) + setup() + } + + public required init?(coder aDecoder: NSCoder) { + super.init(coder: aDecoder) + setup() + } + + // MARK: Setup + + private func setup() { + addSubview(containerView) + containerView.addSubview(backgroundView) + containerView.addSubview(selectedContainerView) + containerView.addSubview(sliderView) + + selectedContainerView.layer.mask = sliderView.sliderMaskView.layer + addTapGesture() + addDragGesture() + } + + open func setSegmentItems(_ segments: [String]) { + guard !segments.isEmpty else { fatalError("Segments array cannot be empty") } + + self.segments = segments + configureViews() + + clearLabels() + + for (index, title) in segments.enumerated() { + let baseLabel = createLabel(with: title, at: index, selected: false) + let selectedLabel = createLabel(with: title, at: index, selected: true) + backgroundView.addSubview(baseLabel) + selectedContainerView.addSubview(selectedLabel) + } + + setupAutoresizingMasks() + } + + private func configureViews() { + containerView.frame = CGRect(x: Constants.leadingTrailingMargin, + y: Constants.topBottomMargin, + width: bounds.width - Constants.leadingTrailingMargin * 2, + height: Constants.height) + let frame = containerView.bounds + backgroundView.frame = frame + selectedContainerView.frame = frame + sliderView.frame = CGRect(x: 0, y: 0, width: segmentWidth, height: backgroundView.frame.height) + + let cornerRadius = backgroundView.frame.height / 2 + [backgroundView, selectedContainerView].forEach { $0.layer.cornerRadius = cornerRadius } + sliderView.cornerRadius = cornerRadius + + backgroundColor = .white + backgroundView.backgroundColor = segmentsBackgroundColor + selectedContainerView.backgroundColor = sliderBackgroundColor + + if !isSliderShadowHidden { + selectedContainerView.addShadow(with: sliderBackgroundColor) + } + } + + private func setupAutoresizingMasks() { + containerView.autoresizingMask = [.flexibleWidth] + backgroundView.autoresizingMask = [.flexibleWidth] + selectedContainerView.autoresizingMask = [.flexibleWidth] + sliderView.autoresizingMask = [.flexibleLeftMargin, .flexibleRightMargin, .flexibleWidth] + } + + private func updateShadow(with color: UIColor, hidden: Bool) { + if hidden { + selectedContainerView.removeShadow() + sliderView.sliderMaskView.removeShadow() + } else { + selectedContainerView.addShadow(with: sliderBackgroundColor) + sliderView.sliderMaskView.addShadow(with: .black) + } + } + + // MARK: Labels + + private func clearLabels() { + backgroundView.subviews.forEach { $0.removeFromSuperview() } + selectedContainerView.subviews.forEach { $0.removeFromSuperview() } + } + + private func createLabel(with text: String, at index: Int, selected: Bool) -> UILabel { + let rect = CGRect(x: CGFloat(index) * segmentWidth, y: 0, width: segmentWidth, height: backgroundView.frame.height) + let label = UILabel(frame: rect) + label.text = text + label.textAlignment = .center + label.textColor = selected ? highlightTextColor : defaultTextColor + label.font = font + label.autoresizingMask = [.flexibleLeftMargin, .flexibleRightMargin, .flexibleWidth] + return label + } + + private func updateLabelsColor(with color: UIColor, selected: Bool) { + let containerView = selected ? selectedContainerView : backgroundView + containerView.subviews.forEach { ($0 as? UILabel)?.textColor = color } + } + + private func updateLabelsFont(with font: UIFont) { + selectedContainerView.subviews.forEach { ($0 as? UILabel)?.font = font } + backgroundView.subviews.forEach { ($0 as? UILabel)?.font = font } + } + + // MARK: Tap gestures + + private func addTapGesture() { + let tap = UITapGestureRecognizer(target: self, action: #selector(didTap)) + addGestureRecognizer(tap) + } + + private func addDragGesture() { + let drag = UIPanGestureRecognizer(target: self, action: #selector(didPan)) + sliderView.addGestureRecognizer(drag) + } + + @objc private func didTap(tapGesture: UITapGestureRecognizer) { + moveToNearestPoint(basedOn: tapGesture) + } + + @objc private func didPan(panGesture: UIPanGestureRecognizer) { + switch panGesture.state { + case .cancelled, .ended, .failed: + moveToNearestPoint(basedOn: panGesture, velocity: panGesture.velocity(in: sliderView)) + case .began: + correction = panGesture.location(in: sliderView).x - sliderView.frame.width/2 + case .changed: + let location = panGesture.location(in: self) + sliderView.center.x = location.x - correction + case .possible: () + } + } + + // MARK: Slider position + + private func moveToNearestPoint(basedOn gesture: UIGestureRecognizer, velocity: CGPoint? = nil) { + var location = gesture.location(in: self) + if let velocity = velocity { + let offset = velocity.x / 12 + location.x += offset + } + let index = segmentIndex(for: location) + move(to: index) + delegate?.didSelect(index) + } + + open func move(to index: Int) { + let correctOffset = center(at: index) + animate(to: correctOffset) + + selectedSegmentIndex = index + } + + private func segmentIndex(for point: CGPoint) -> Int { + var index = Int(point.x / sliderView.frame.width) + if index < 0 { index = 0 } + if index > numberOfSegments - 1 { index = numberOfSegments - 1 } + return index + } + + private func center(at index: Int) -> CGFloat { + let xOffset = CGFloat(index) * sliderView.frame.width + sliderView.frame.width / 2 + return xOffset + } + + private func animate(to position: CGFloat) { + UIView.animate(withDuration: 0.2) { + self.sliderView.center.x = position + } + } +} diff --git a/TwicketSegmentedControlDemo/Pods/TwicketSegmentedControl/TwicketSegmentedControl/UIViewShadowExtension.swift b/TwicketSegmentedControlDemo/Pods/TwicketSegmentedControl/TwicketSegmentedControl/UIViewShadowExtension.swift new file mode 100644 index 0000000..caf1e66 --- /dev/null +++ b/TwicketSegmentedControlDemo/Pods/TwicketSegmentedControl/TwicketSegmentedControl/UIViewShadowExtension.swift @@ -0,0 +1,22 @@ +// +// UIViewShadowExtension.swift +// TwicketSegmentedControlDemo +// +// Created by Pol Quintana on 17/09/16. +// Copyright © 2016 Pol Quintana. All rights reserved. +// + +import UIKit + +extension UIView { + func addShadow(with color: UIColor) { + layer.shadowColor = color.cgColor + layer.shadowRadius = 8 + layer.shadowOpacity = 0.7 + layer.shadowOffset = CGSize(width: 0, height: 5) + } + + func removeShadow() { + layer.shadowOpacity = 0 + } +} diff --git a/TwicketSegmentedControl.podspec b/TwicketSegmentedControlDemo/TwicketSegmentedControl.podspec similarity index 100% rename from TwicketSegmentedControl.podspec rename to TwicketSegmentedControlDemo/TwicketSegmentedControl.podspec diff --git a/TwicketSegmentedControlDemo/TwicketSegmentedControlDemo.xcodeproj/project.pbxproj b/TwicketSegmentedControlDemo/TwicketSegmentedControlDemo.xcodeproj/project.pbxproj index c6fdf20..524d82d 100644 --- a/TwicketSegmentedControlDemo/TwicketSegmentedControlDemo.xcodeproj/project.pbxproj +++ b/TwicketSegmentedControlDemo/TwicketSegmentedControlDemo.xcodeproj/project.pbxproj @@ -8,6 +8,8 @@ /* Begin PBXBuildFile section */ 51D48E2424FF47F3009EF5A6 /* TwicketSegmentedControl.podspec in Resources */ = {isa = PBXBuildFile; fileRef = 51D48E2324FF47F2009EF5A6 /* TwicketSegmentedControl.podspec */; }; + 51D48E2624FF4B3E009EF5A6 /* Podfile in Resources */ = {isa = PBXBuildFile; fileRef = 51D48E2524FF4B3E009EF5A6 /* Podfile */; }; + 8B246693B3FEE7EC713CDB0B /* Pods_TwicketSegmentedControl.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 95D966ACB168ADB920D6F0CB /* Pods_TwicketSegmentedControl.framework */; }; C18581871D8D7220001A9A00 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = C18581861D8D7220001A9A00 /* AppDelegate.swift */; }; C18581891D8D7220001A9A00 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C18581881D8D7220001A9A00 /* ViewController.swift */; }; C185818C1D8D7220001A9A00 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C185818A1D8D7220001A9A00 /* Main.storyboard */; }; @@ -19,6 +21,7 @@ C18581AD1D8D7265001A9A00 /* UIViewShadowExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = C18581AA1D8D7265001A9A00 /* UIViewShadowExtension.swift */; }; C18581AE1D8D7265001A9A00 /* TwicketSegmentedControl.swift in Sources */ = {isa = PBXBuildFile; fileRef = C18581AB1D8D7265001A9A00 /* TwicketSegmentedControl.swift */; }; C18581AF1D8D7265001A9A00 /* Palette.swift in Sources */ = {isa = PBXBuildFile; fileRef = C18581AC1D8D7265001A9A00 /* Palette.swift */; }; + D2DE149B58C73F4AAE2480BC /* Pods_TwicketSegmentedControlDemo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B04EEF09DD801059213071C0 /* Pods_TwicketSegmentedControlDemo.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -46,7 +49,13 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 2ED6A73D2394301C0E3EBE6C /* Pods-TwicketSegmentedControl.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-TwicketSegmentedControl.debug.xcconfig"; path = "Target Support Files/Pods-TwicketSegmentedControl/Pods-TwicketSegmentedControl.debug.xcconfig"; sourceTree = ""; }; + 344346750D4185E448C46E42 /* Pods-TwicketSegmentedControl.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-TwicketSegmentedControl.release.xcconfig"; path = "Target Support Files/Pods-TwicketSegmentedControl/Pods-TwicketSegmentedControl.release.xcconfig"; sourceTree = ""; }; 51D48E2324FF47F2009EF5A6 /* TwicketSegmentedControl.podspec */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = TwicketSegmentedControl.podspec; path = ../TwicketSegmentedControl.podspec; sourceTree = ""; }; + 51D48E2524FF4B3E009EF5A6 /* Podfile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Podfile; sourceTree = SOURCE_ROOT; }; + 6D3FD666DCFC0B1DC6B6884F /* Pods-TwicketSegmentedControlDemo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-TwicketSegmentedControlDemo.release.xcconfig"; path = "Target Support Files/Pods-TwicketSegmentedControlDemo/Pods-TwicketSegmentedControlDemo.release.xcconfig"; sourceTree = ""; }; + 95D966ACB168ADB920D6F0CB /* Pods_TwicketSegmentedControl.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_TwicketSegmentedControl.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + B04EEF09DD801059213071C0 /* Pods_TwicketSegmentedControlDemo.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_TwicketSegmentedControlDemo.framework; sourceTree = BUILT_PRODUCTS_DIR; }; C18581831D8D7220001A9A00 /* TwicketSegmentedControlDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TwicketSegmentedControlDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; C18581861D8D7220001A9A00 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; C18581881D8D7220001A9A00 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; @@ -60,6 +69,7 @@ C18581AA1D8D7265001A9A00 /* UIViewShadowExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIViewShadowExtension.swift; sourceTree = ""; }; C18581AB1D8D7265001A9A00 /* TwicketSegmentedControl.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TwicketSegmentedControl.swift; sourceTree = ""; }; C18581AC1D8D7265001A9A00 /* Palette.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Palette.swift; sourceTree = ""; }; + D33EB3D4CF3910F1C28ACBB8 /* Pods-TwicketSegmentedControlDemo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-TwicketSegmentedControlDemo.debug.xcconfig"; path = "Target Support Files/Pods-TwicketSegmentedControlDemo/Pods-TwicketSegmentedControlDemo.debug.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -68,6 +78,7 @@ buildActionMask = 2147483647; files = ( C18581A41D8D7237001A9A00 /* TwicketSegmentedControl.framework in Frameworks */, + D2DE149B58C73F4AAE2480BC /* Pods_TwicketSegmentedControlDemo.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -75,18 +86,32 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 8B246693B3FEE7EC713CDB0B /* Pods_TwicketSegmentedControl.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + A5ECF06D0A64E3F9D3D24CF5 /* Pods */ = { + isa = PBXGroup; + children = ( + 2ED6A73D2394301C0E3EBE6C /* Pods-TwicketSegmentedControl.debug.xcconfig */, + 344346750D4185E448C46E42 /* Pods-TwicketSegmentedControl.release.xcconfig */, + D33EB3D4CF3910F1C28ACBB8 /* Pods-TwicketSegmentedControlDemo.debug.xcconfig */, + 6D3FD666DCFC0B1DC6B6884F /* Pods-TwicketSegmentedControlDemo.release.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; C185817A1D8D7220001A9A00 = { isa = PBXGroup; children = ( C18581851D8D7220001A9A00 /* TwicketSegmentedControlDemo */, C185819E1D8D7237001A9A00 /* TwicketSegmentedControl */, C18581841D8D7220001A9A00 /* Products */, + A5ECF06D0A64E3F9D3D24CF5 /* Pods */, + FF0490FD0F569E6CB0750F8E /* Frameworks */, ); sourceTree = ""; }; @@ -102,6 +127,8 @@ C18581851D8D7220001A9A00 /* TwicketSegmentedControlDemo */ = { isa = PBXGroup; children = ( + 51D48E2524FF4B3E009EF5A6 /* Podfile */, + 51D48E2324FF47F2009EF5A6 /* TwicketSegmentedControl.podspec */, C18581861D8D7220001A9A00 /* AppDelegate.swift */, C18581881D8D7220001A9A00 /* ViewController.swift */, C185818A1D8D7220001A9A00 /* Main.storyboard */, @@ -115,7 +142,6 @@ C185819E1D8D7237001A9A00 /* TwicketSegmentedControl */ = { isa = PBXGroup; children = ( - 51D48E2324FF47F2009EF5A6 /* TwicketSegmentedControl.podspec */, C18581AC1D8D7265001A9A00 /* Palette.swift */, C18581AB1D8D7265001A9A00 /* TwicketSegmentedControl.swift */, C18581AA1D8D7265001A9A00 /* UIViewShadowExtension.swift */, @@ -126,6 +152,15 @@ path = ../TwicketSegmentedControl; sourceTree = ""; }; + FF0490FD0F569E6CB0750F8E /* Frameworks */ = { + isa = PBXGroup; + children = ( + 95D966ACB168ADB920D6F0CB /* Pods_TwicketSegmentedControl.framework */, + B04EEF09DD801059213071C0 /* Pods_TwicketSegmentedControlDemo.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ @@ -144,10 +179,12 @@ isa = PBXNativeTarget; buildConfigurationList = C18581951D8D7220001A9A00 /* Build configuration list for PBXNativeTarget "TwicketSegmentedControlDemo" */; buildPhases = ( + 1BE1753FF65A4BC8EBE63E76 /* [CP] Check Pods Manifest.lock */, C185817F1D8D7220001A9A00 /* Sources */, C18581801D8D7220001A9A00 /* Frameworks */, C18581811D8D7220001A9A00 /* Resources */, C18581A91D8D7237001A9A00 /* Embed Frameworks */, + A8BEFEA17574E5A78D134B95 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -163,6 +200,7 @@ isa = PBXNativeTarget; buildConfigurationList = C18581A61D8D7237001A9A00 /* Build configuration list for PBXNativeTarget "TwicketSegmentedControl" */; buildPhases = ( + 39BB04B215B02EF940E3BB3C /* [CP] Check Pods Manifest.lock */, C18581981D8D7237001A9A00 /* Sources */, C18581991D8D7237001A9A00 /* Frameworks */, C185819A1D8D7237001A9A00 /* Headers */, @@ -224,6 +262,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 51D48E2624FF4B3E009EF5A6 /* Podfile in Resources */, C18581911D8D7220001A9A00 /* LaunchScreen.storyboard in Resources */, C185818E1D8D7220001A9A00 /* Assets.xcassets in Resources */, C185818C1D8D7220001A9A00 /* Main.storyboard in Resources */, @@ -240,6 +279,71 @@ }; /* End PBXResourcesBuildPhase section */ +/* Begin PBXShellScriptBuildPhase section */ + 1BE1753FF65A4BC8EBE63E76 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-TwicketSegmentedControlDemo-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 39BB04B215B02EF940E3BB3C /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-TwicketSegmentedControl-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + A8BEFEA17574E5A78D134B95 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-TwicketSegmentedControlDemo/Pods-TwicketSegmentedControlDemo-frameworks.sh", + "${BUILT_PRODUCTS_DIR}/TwicketSegmentedControl/TwicketSegmentedControl.framework", + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/TwicketSegmentedControl.framework", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-TwicketSegmentedControlDemo/Pods-TwicketSegmentedControlDemo-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + /* Begin PBXSourcesBuildPhase section */ C185817F1D8D7220001A9A00 /* Sources */ = { isa = PBXSourcesBuildPhase; @@ -405,6 +509,7 @@ }; C18581961D8D7220001A9A00 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = D33EB3D4CF3910F1C28ACBB8 /* Pods-TwicketSegmentedControlDemo.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; @@ -419,6 +524,7 @@ }; C18581971D8D7220001A9A00 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 6D3FD666DCFC0B1DC6B6884F /* Pods-TwicketSegmentedControlDemo.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; @@ -433,6 +539,7 @@ }; C18581A71D8D7237001A9A00 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 2ED6A73D2394301C0E3EBE6C /* Pods-TwicketSegmentedControl.debug.xcconfig */; buildSettings = { CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = ""; @@ -458,6 +565,7 @@ }; C18581A81D8D7237001A9A00 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 344346750D4185E448C46E42 /* Pods-TwicketSegmentedControl.release.xcconfig */; buildSettings = { CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = ""; diff --git a/TwicketSegmentedControlDemo/TwicketSegmentedControlDemo.xcworkspace/contents.xcworkspacedata b/TwicketSegmentedControlDemo/TwicketSegmentedControlDemo.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..c7457f4 --- /dev/null +++ b/TwicketSegmentedControlDemo/TwicketSegmentedControlDemo.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + +