├── .gitignore ├── .travis.yml ├── Example ├── LLSegmentBar.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ └── contents.xcworkspacedata │ └── xcshareddata │ │ └── xcschemes │ │ └── LLSegmentBar-Example.xcscheme ├── LLSegmentBar.xcworkspace │ └── contents.xcworkspacedata ├── LLSegmentBar │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Images.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Contents.json │ │ └── navigationbar_bg_64.imageset │ │ │ ├── Contents.json │ │ │ └── navigationbar_bg_64@2x.png │ ├── LLAppDelegate.h │ ├── LLAppDelegate.m │ ├── LLOneViewController.h │ ├── LLOneViewController.m │ ├── LLSegmentBar-Info.plist │ ├── LLSegmentBar-Prefix.pch │ ├── LLTwoViewController.h │ ├── LLTwoViewController.m │ ├── LLViewController.h │ ├── LLViewController.m │ ├── en.lproj │ │ └── InfoPlist.strings │ └── main.m ├── Podfile ├── Podfile.lock ├── Pods │ ├── Local Podspecs │ │ └── LLSegmentBar.podspec.json │ ├── Manifest.lock │ ├── Pods.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ └── contents.xcworkspacedata │ └── Target Support Files │ │ ├── LLSegmentBar │ │ ├── Info.plist │ │ ├── LLSegmentBar-dummy.m │ │ ├── LLSegmentBar-prefix.pch │ │ ├── LLSegmentBar-umbrella.h │ │ ├── LLSegmentBar.modulemap │ │ └── LLSegmentBar.xcconfig │ │ ├── Pods-LLSegmentBar_Example │ │ ├── Info.plist │ │ ├── Pods-LLSegmentBar_Example-acknowledgements.markdown │ │ ├── Pods-LLSegmentBar_Example-acknowledgements.plist │ │ ├── Pods-LLSegmentBar_Example-dummy.m │ │ ├── Pods-LLSegmentBar_Example-frameworks.sh │ │ ├── Pods-LLSegmentBar_Example-resources.sh │ │ ├── Pods-LLSegmentBar_Example-umbrella.h │ │ ├── Pods-LLSegmentBar_Example.debug.xcconfig │ │ ├── Pods-LLSegmentBar_Example.modulemap │ │ └── Pods-LLSegmentBar_Example.release.xcconfig │ │ └── Pods-LLSegmentBar_Tests │ │ ├── Info.plist │ │ ├── Pods-LLSegmentBar_Tests-acknowledgements.markdown │ │ ├── Pods-LLSegmentBar_Tests-acknowledgements.plist │ │ ├── Pods-LLSegmentBar_Tests-dummy.m │ │ ├── Pods-LLSegmentBar_Tests-frameworks.sh │ │ ├── Pods-LLSegmentBar_Tests-resources.sh │ │ ├── Pods-LLSegmentBar_Tests-umbrella.h │ │ ├── Pods-LLSegmentBar_Tests.debug.xcconfig │ │ ├── Pods-LLSegmentBar_Tests.modulemap │ │ └── Pods-LLSegmentBar_Tests.release.xcconfig └── Tests │ ├── Tests-Info.plist │ ├── Tests-Prefix.pch │ ├── Tests.m │ └── en.lproj │ └── InfoPlist.strings ├── LICENSE ├── LLSegmentBar.gif ├── LLSegmentBar.podspec ├── LLSegmentBar ├── Assets │ └── .gitkeep └── Classes │ ├── .gitkeep │ ├── LLSegmentBar.h │ ├── LLSegmentBar.m │ ├── LLSegmentBarConfig.h │ ├── LLSegmentBarConfig.m │ ├── LLSegmentBarVC.h │ ├── LLSegmentBarVC.m │ ├── UIView+LLSegmentBar.h │ └── UIView+LLSegmentBar.m ├── README.md └── _Pods.xcodeproj /.gitignore: -------------------------------------------------------------------------------- 1 | <<<<<<< HEAD 2 | # OS X 3 | .DS_Store 4 | 5 | # Xcode 6 | build/ 7 | ======= 8 | # Xcode 9 | # 10 | # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore 11 | 12 | ## Build generated 13 | build/ 14 | DerivedData/ 15 | 16 | ## Various settings 17 | >>>>>>> 7e4ce6d648fefc09a01461c8ab0accfc77553327 18 | *.pbxuser 19 | !default.pbxuser 20 | *.mode1v3 21 | !default.mode1v3 22 | *.mode2v3 23 | !default.mode2v3 24 | *.perspectivev3 25 | !default.perspectivev3 26 | xcuserdata/ 27 | <<<<<<< HEAD 28 | *.xccheckout 29 | profile 30 | *.moved-aside 31 | DerivedData 32 | *.hmap 33 | *.ipa 34 | 35 | # Bundler 36 | .bundle 37 | 38 | Carthage 39 | # We recommend against adding the Pods directory to your .gitignore. However 40 | # you should judge for yourself, the pros and cons are mentioned at: 41 | # http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control 42 | # 43 | # Note: if you ignore the Pods directory, make sure to uncomment 44 | # `pod install` in .travis.yml 45 | # 46 | # Pods/ 47 | ======= 48 | 49 | ## Other 50 | *.moved-aside 51 | *.xccheckout 52 | *.xcscmblueprint 53 | 54 | ## Obj-C/Swift specific 55 | *.hmap 56 | *.ipa 57 | *.dSYM.zip 58 | *.dSYM 59 | 60 | # CocoaPods 61 | # 62 | # We recommend against adding the Pods directory to your .gitignore. However 63 | # you should judge for yourself, the pros and cons are mentioned at: 64 | # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control 65 | # 66 | # Pods/ 67 | 68 | # Carthage 69 | # 70 | # Add this line if you want to avoid checking in source code from Carthage dependencies. 71 | # Carthage/Checkouts 72 | 73 | Carthage/Build 74 | 75 | # fastlane 76 | # 77 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the 78 | # screenshots whenever they are needed. 79 | # For more information about the recommended setup visit: 80 | # https://docs.fastlane.tools/best-practices/source-control/#source-control 81 | 82 | fastlane/report.xml 83 | fastlane/Preview.html 84 | fastlane/screenshots 85 | fastlane/test_output 86 | 87 | # Code Injection 88 | # 89 | # After new code Injection tools there's a generated folder /iOSInjectionProject 90 | # https://github.com/johnno1962/injectionforxcode 91 | 92 | iOSInjectionProject/ 93 | >>>>>>> 7e4ce6d648fefc09a01461c8ab0accfc77553327 94 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | # references: 2 | # * http://www.objc.io/issue-6/travis-ci.html 3 | # * https://github.com/supermarin/xcpretty#usage 4 | 5 | osx_image: xcode7.3 6 | language: objective-c 7 | # cache: cocoapods 8 | # podfile: Example/Podfile 9 | # before_install: 10 | # - gem install cocoapods # Since Travis is not always on latest version 11 | # - pod install --project-directory=Example 12 | script: 13 | - set -o pipefail && xcodebuild test -workspace Example/LLSegmentBar.xcworkspace -scheme LLSegmentBar-Example -sdk iphonesimulator9.3 ONLY_ACTIVE_ARCH=NO | xcpretty 14 | - pod lib lint 15 | -------------------------------------------------------------------------------- /Example/LLSegmentBar.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 6003F58E195388D20070C39A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F58D195388D20070C39A /* Foundation.framework */; }; 11 | 6003F590195388D20070C39A /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F58F195388D20070C39A /* CoreGraphics.framework */; }; 12 | 6003F592195388D20070C39A /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F591195388D20070C39A /* UIKit.framework */; }; 13 | 6003F598195388D20070C39A /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 6003F596195388D20070C39A /* InfoPlist.strings */; }; 14 | 6003F59A195388D20070C39A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 6003F599195388D20070C39A /* main.m */; }; 15 | 6003F59E195388D20070C39A /* LLAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 6003F59D195388D20070C39A /* LLAppDelegate.m */; }; 16 | 6003F5A7195388D20070C39A /* LLViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6003F5A6195388D20070C39A /* LLViewController.m */; }; 17 | 6003F5A9195388D20070C39A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 6003F5A8195388D20070C39A /* Images.xcassets */; }; 18 | 6003F5B0195388D20070C39A /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F5AF195388D20070C39A /* XCTest.framework */; }; 19 | 6003F5B1195388D20070C39A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F58D195388D20070C39A /* Foundation.framework */; }; 20 | 6003F5B2195388D20070C39A /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F591195388D20070C39A /* UIKit.framework */; }; 21 | 6003F5BA195388D20070C39A /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 6003F5B8195388D20070C39A /* InfoPlist.strings */; }; 22 | 6003F5BC195388D20070C39A /* Tests.m in Sources */ = {isa = PBXBuildFile; fileRef = 6003F5BB195388D20070C39A /* Tests.m */; }; 23 | 71719F9F1E33DC2100824A3D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 71719F9D1E33DC2100824A3D /* LaunchScreen.storyboard */; }; 24 | 783A37C98E732772E058B8AE /* Pods_LLSegmentBar_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4AC9673CED259327E7B9E65A /* Pods_LLSegmentBar_Tests.framework */; }; 25 | 873B8AEB1B1F5CCA007FD442 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 873B8AEA1B1F5CCA007FD442 /* Main.storyboard */; }; 26 | C883C52116D5859AF5DA32BE /* Pods_LLSegmentBar_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 81F35A85E977635ACAAC54FA /* Pods_LLSegmentBar_Example.framework */; }; 27 | D20EDEDE1EFAB236000099E2 /* LLOneViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D20EDEDD1EFAB236000099E2 /* LLOneViewController.m */; }; 28 | D20EDEE11EFAB33B000099E2 /* LLTwoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D20EDEE01EFAB33B000099E2 /* LLTwoViewController.m */; }; 29 | /* End PBXBuildFile section */ 30 | 31 | /* Begin PBXContainerItemProxy section */ 32 | 6003F5B3195388D20070C39A /* PBXContainerItemProxy */ = { 33 | isa = PBXContainerItemProxy; 34 | containerPortal = 6003F582195388D10070C39A /* Project object */; 35 | proxyType = 1; 36 | remoteGlobalIDString = 6003F589195388D20070C39A; 37 | remoteInfo = LLSegmentBar; 38 | }; 39 | /* End PBXContainerItemProxy section */ 40 | 41 | /* Begin PBXFileReference section */ 42 | 1F1308CDC2724A72FAC9CB98 /* Pods-LLSegmentBar_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LLSegmentBar_Tests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-LLSegmentBar_Tests/Pods-LLSegmentBar_Tests.debug.xcconfig"; sourceTree = ""; }; 43 | 4AC9673CED259327E7B9E65A /* Pods_LLSegmentBar_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LLSegmentBar_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 44 | 6003F58A195388D20070C39A /* LLSegmentBar_Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = LLSegmentBar_Example.app; sourceTree = BUILT_PRODUCTS_DIR; }; 45 | 6003F58D195388D20070C39A /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 46 | 6003F58F195388D20070C39A /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; 47 | 6003F591195388D20070C39A /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; 48 | 6003F595195388D20070C39A /* LLSegmentBar-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "LLSegmentBar-Info.plist"; sourceTree = ""; }; 49 | 6003F597195388D20070C39A /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 50 | 6003F599195388D20070C39A /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 51 | 6003F59B195388D20070C39A /* LLSegmentBar-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "LLSegmentBar-Prefix.pch"; sourceTree = ""; }; 52 | 6003F59C195388D20070C39A /* LLAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LLAppDelegate.h; sourceTree = ""; }; 53 | 6003F59D195388D20070C39A /* LLAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LLAppDelegate.m; sourceTree = ""; }; 54 | 6003F5A5195388D20070C39A /* LLViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LLViewController.h; sourceTree = ""; }; 55 | 6003F5A6195388D20070C39A /* LLViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LLViewController.m; sourceTree = ""; }; 56 | 6003F5A8195388D20070C39A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; 57 | 6003F5AE195388D20070C39A /* LLSegmentBar_Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LLSegmentBar_Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 58 | 6003F5AF195388D20070C39A /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; 59 | 6003F5B7195388D20070C39A /* Tests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Tests-Info.plist"; sourceTree = ""; }; 60 | 6003F5B9195388D20070C39A /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 61 | 6003F5BB195388D20070C39A /* Tests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Tests.m; sourceTree = ""; }; 62 | 606FC2411953D9B200FFA9A0 /* Tests-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Tests-Prefix.pch"; sourceTree = ""; }; 63 | 71719F9E1E33DC2100824A3D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 64 | 81F35A85E977635ACAAC54FA /* Pods_LLSegmentBar_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LLSegmentBar_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 65 | 858BE33B7A2854BDE10581CD /* Pods-LLSegmentBar_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LLSegmentBar_Example.debug.xcconfig"; path = "Pods/Target Support Files/Pods-LLSegmentBar_Example/Pods-LLSegmentBar_Example.debug.xcconfig"; sourceTree = ""; }; 66 | 873B8AEA1B1F5CCA007FD442 /* Main.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = Main.storyboard; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 67 | 9036A19D9527F1BE330D8A7C /* Pods-LLSegmentBar_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LLSegmentBar_Example.release.xcconfig"; path = "Pods/Target Support Files/Pods-LLSegmentBar_Example/Pods-LLSegmentBar_Example.release.xcconfig"; sourceTree = ""; }; 68 | A740A37370484401816B1141 /* LLSegmentBar.podspec */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = LLSegmentBar.podspec; path = ../LLSegmentBar.podspec; sourceTree = ""; }; 69 | AC44E06F6BB0A87E8DCE1B3D /* Pods-LLSegmentBar_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LLSegmentBar_Tests.release.xcconfig"; path = "Pods/Target Support Files/Pods-LLSegmentBar_Tests/Pods-LLSegmentBar_Tests.release.xcconfig"; sourceTree = ""; }; 70 | B456960D6F1024F274C5E7DB /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; name = README.md; path = ../README.md; sourceTree = ""; }; 71 | D20EDEDC1EFAB236000099E2 /* LLOneViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LLOneViewController.h; sourceTree = ""; }; 72 | D20EDEDD1EFAB236000099E2 /* LLOneViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LLOneViewController.m; sourceTree = ""; }; 73 | D20EDEDF1EFAB33B000099E2 /* LLTwoViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LLTwoViewController.h; sourceTree = ""; }; 74 | D20EDEE01EFAB33B000099E2 /* LLTwoViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LLTwoViewController.m; sourceTree = ""; }; 75 | D6D8CB3BBBD6C5251F14B0BB /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = LICENSE; path = ../LICENSE; sourceTree = ""; }; 76 | /* End PBXFileReference section */ 77 | 78 | /* Begin PBXFrameworksBuildPhase section */ 79 | 6003F587195388D20070C39A /* Frameworks */ = { 80 | isa = PBXFrameworksBuildPhase; 81 | buildActionMask = 2147483647; 82 | files = ( 83 | 6003F590195388D20070C39A /* CoreGraphics.framework in Frameworks */, 84 | 6003F592195388D20070C39A /* UIKit.framework in Frameworks */, 85 | 6003F58E195388D20070C39A /* Foundation.framework in Frameworks */, 86 | C883C52116D5859AF5DA32BE /* Pods_LLSegmentBar_Example.framework in Frameworks */, 87 | ); 88 | runOnlyForDeploymentPostprocessing = 0; 89 | }; 90 | 6003F5AB195388D20070C39A /* Frameworks */ = { 91 | isa = PBXFrameworksBuildPhase; 92 | buildActionMask = 2147483647; 93 | files = ( 94 | 6003F5B0195388D20070C39A /* XCTest.framework in Frameworks */, 95 | 6003F5B2195388D20070C39A /* UIKit.framework in Frameworks */, 96 | 6003F5B1195388D20070C39A /* Foundation.framework in Frameworks */, 97 | 783A37C98E732772E058B8AE /* Pods_LLSegmentBar_Tests.framework in Frameworks */, 98 | ); 99 | runOnlyForDeploymentPostprocessing = 0; 100 | }; 101 | /* End PBXFrameworksBuildPhase section */ 102 | 103 | /* Begin PBXGroup section */ 104 | 6003F581195388D10070C39A = { 105 | isa = PBXGroup; 106 | children = ( 107 | 60FF7A9C1954A5C5007DD14C /* Podspec Metadata */, 108 | 6003F593195388D20070C39A /* Example for LLSegmentBar */, 109 | 6003F5B5195388D20070C39A /* Tests */, 110 | 6003F58C195388D20070C39A /* Frameworks */, 111 | 6003F58B195388D20070C39A /* Products */, 112 | BE27AAE3E30DC56AE3512EDC /* Pods */, 113 | ); 114 | sourceTree = ""; 115 | }; 116 | 6003F58B195388D20070C39A /* Products */ = { 117 | isa = PBXGroup; 118 | children = ( 119 | 6003F58A195388D20070C39A /* LLSegmentBar_Example.app */, 120 | 6003F5AE195388D20070C39A /* LLSegmentBar_Tests.xctest */, 121 | ); 122 | name = Products; 123 | sourceTree = ""; 124 | }; 125 | 6003F58C195388D20070C39A /* Frameworks */ = { 126 | isa = PBXGroup; 127 | children = ( 128 | 6003F58D195388D20070C39A /* Foundation.framework */, 129 | 6003F58F195388D20070C39A /* CoreGraphics.framework */, 130 | 6003F591195388D20070C39A /* UIKit.framework */, 131 | 6003F5AF195388D20070C39A /* XCTest.framework */, 132 | 81F35A85E977635ACAAC54FA /* Pods_LLSegmentBar_Example.framework */, 133 | 4AC9673CED259327E7B9E65A /* Pods_LLSegmentBar_Tests.framework */, 134 | ); 135 | name = Frameworks; 136 | sourceTree = ""; 137 | }; 138 | 6003F593195388D20070C39A /* Example for LLSegmentBar */ = { 139 | isa = PBXGroup; 140 | children = ( 141 | 6003F59C195388D20070C39A /* LLAppDelegate.h */, 142 | 6003F59D195388D20070C39A /* LLAppDelegate.m */, 143 | 873B8AEA1B1F5CCA007FD442 /* Main.storyboard */, 144 | 6003F5A5195388D20070C39A /* LLViewController.h */, 145 | 6003F5A6195388D20070C39A /* LLViewController.m */, 146 | D20EDEDC1EFAB236000099E2 /* LLOneViewController.h */, 147 | D20EDEDD1EFAB236000099E2 /* LLOneViewController.m */, 148 | D20EDEDF1EFAB33B000099E2 /* LLTwoViewController.h */, 149 | D20EDEE01EFAB33B000099E2 /* LLTwoViewController.m */, 150 | 71719F9D1E33DC2100824A3D /* LaunchScreen.storyboard */, 151 | 6003F5A8195388D20070C39A /* Images.xcassets */, 152 | 6003F594195388D20070C39A /* Supporting Files */, 153 | ); 154 | name = "Example for LLSegmentBar"; 155 | path = LLSegmentBar; 156 | sourceTree = ""; 157 | }; 158 | 6003F594195388D20070C39A /* Supporting Files */ = { 159 | isa = PBXGroup; 160 | children = ( 161 | 6003F595195388D20070C39A /* LLSegmentBar-Info.plist */, 162 | 6003F596195388D20070C39A /* InfoPlist.strings */, 163 | 6003F599195388D20070C39A /* main.m */, 164 | 6003F59B195388D20070C39A /* LLSegmentBar-Prefix.pch */, 165 | ); 166 | name = "Supporting Files"; 167 | sourceTree = ""; 168 | }; 169 | 6003F5B5195388D20070C39A /* Tests */ = { 170 | isa = PBXGroup; 171 | children = ( 172 | 6003F5BB195388D20070C39A /* Tests.m */, 173 | 6003F5B6195388D20070C39A /* Supporting Files */, 174 | ); 175 | path = Tests; 176 | sourceTree = ""; 177 | }; 178 | 6003F5B6195388D20070C39A /* Supporting Files */ = { 179 | isa = PBXGroup; 180 | children = ( 181 | 6003F5B7195388D20070C39A /* Tests-Info.plist */, 182 | 6003F5B8195388D20070C39A /* InfoPlist.strings */, 183 | 606FC2411953D9B200FFA9A0 /* Tests-Prefix.pch */, 184 | ); 185 | name = "Supporting Files"; 186 | sourceTree = ""; 187 | }; 188 | 60FF7A9C1954A5C5007DD14C /* Podspec Metadata */ = { 189 | isa = PBXGroup; 190 | children = ( 191 | A740A37370484401816B1141 /* LLSegmentBar.podspec */, 192 | B456960D6F1024F274C5E7DB /* README.md */, 193 | D6D8CB3BBBD6C5251F14B0BB /* LICENSE */, 194 | ); 195 | name = "Podspec Metadata"; 196 | sourceTree = ""; 197 | }; 198 | BE27AAE3E30DC56AE3512EDC /* Pods */ = { 199 | isa = PBXGroup; 200 | children = ( 201 | 858BE33B7A2854BDE10581CD /* Pods-LLSegmentBar_Example.debug.xcconfig */, 202 | 9036A19D9527F1BE330D8A7C /* Pods-LLSegmentBar_Example.release.xcconfig */, 203 | 1F1308CDC2724A72FAC9CB98 /* Pods-LLSegmentBar_Tests.debug.xcconfig */, 204 | AC44E06F6BB0A87E8DCE1B3D /* Pods-LLSegmentBar_Tests.release.xcconfig */, 205 | ); 206 | name = Pods; 207 | sourceTree = ""; 208 | }; 209 | /* End PBXGroup section */ 210 | 211 | /* Begin PBXNativeTarget section */ 212 | 6003F589195388D20070C39A /* LLSegmentBar_Example */ = { 213 | isa = PBXNativeTarget; 214 | buildConfigurationList = 6003F5BF195388D20070C39A /* Build configuration list for PBXNativeTarget "LLSegmentBar_Example" */; 215 | buildPhases = ( 216 | B1AA43B66C5D41C2C5EE6B3D /* [CP] Check Pods Manifest.lock */, 217 | 6003F586195388D20070C39A /* Sources */, 218 | 6003F587195388D20070C39A /* Frameworks */, 219 | 6003F588195388D20070C39A /* Resources */, 220 | 511EFFD163813227B217E7F6 /* [CP] Embed Pods Frameworks */, 221 | B37DFD20E3C962B122E1B482 /* [CP] Copy Pods Resources */, 222 | ); 223 | buildRules = ( 224 | ); 225 | dependencies = ( 226 | ); 227 | name = LLSegmentBar_Example; 228 | productName = LLSegmentBar; 229 | productReference = 6003F58A195388D20070C39A /* LLSegmentBar_Example.app */; 230 | productType = "com.apple.product-type.application"; 231 | }; 232 | 6003F5AD195388D20070C39A /* LLSegmentBar_Tests */ = { 233 | isa = PBXNativeTarget; 234 | buildConfigurationList = 6003F5C2195388D20070C39A /* Build configuration list for PBXNativeTarget "LLSegmentBar_Tests" */; 235 | buildPhases = ( 236 | DA8F05ECA104BA66A17F1860 /* [CP] Check Pods Manifest.lock */, 237 | 6003F5AA195388D20070C39A /* Sources */, 238 | 6003F5AB195388D20070C39A /* Frameworks */, 239 | 6003F5AC195388D20070C39A /* Resources */, 240 | 45742CE37EB9ED377E66B488 /* [CP] Embed Pods Frameworks */, 241 | 1CCD850404D174E7D12F24A1 /* [CP] Copy Pods Resources */, 242 | ); 243 | buildRules = ( 244 | ); 245 | dependencies = ( 246 | 6003F5B4195388D20070C39A /* PBXTargetDependency */, 247 | ); 248 | name = LLSegmentBar_Tests; 249 | productName = LLSegmentBarTests; 250 | productReference = 6003F5AE195388D20070C39A /* LLSegmentBar_Tests.xctest */; 251 | productType = "com.apple.product-type.bundle.unit-test"; 252 | }; 253 | /* End PBXNativeTarget section */ 254 | 255 | /* Begin PBXProject section */ 256 | 6003F582195388D10070C39A /* Project object */ = { 257 | isa = PBXProject; 258 | attributes = { 259 | CLASSPREFIX = LL; 260 | LastUpgradeCheck = 0830; 261 | ORGANIZATIONNAME = "416997919@qq.com"; 262 | TargetAttributes = { 263 | 6003F5AD195388D20070C39A = { 264 | TestTargetID = 6003F589195388D20070C39A; 265 | }; 266 | }; 267 | }; 268 | buildConfigurationList = 6003F585195388D10070C39A /* Build configuration list for PBXProject "LLSegmentBar" */; 269 | compatibilityVersion = "Xcode 3.2"; 270 | developmentRegion = English; 271 | hasScannedForEncodings = 0; 272 | knownRegions = ( 273 | en, 274 | Base, 275 | ); 276 | mainGroup = 6003F581195388D10070C39A; 277 | productRefGroup = 6003F58B195388D20070C39A /* Products */; 278 | projectDirPath = ""; 279 | projectRoot = ""; 280 | targets = ( 281 | 6003F589195388D20070C39A /* LLSegmentBar_Example */, 282 | 6003F5AD195388D20070C39A /* LLSegmentBar_Tests */, 283 | ); 284 | }; 285 | /* End PBXProject section */ 286 | 287 | /* Begin PBXResourcesBuildPhase section */ 288 | 6003F588195388D20070C39A /* Resources */ = { 289 | isa = PBXResourcesBuildPhase; 290 | buildActionMask = 2147483647; 291 | files = ( 292 | 873B8AEB1B1F5CCA007FD442 /* Main.storyboard in Resources */, 293 | 71719F9F1E33DC2100824A3D /* LaunchScreen.storyboard in Resources */, 294 | 6003F5A9195388D20070C39A /* Images.xcassets in Resources */, 295 | 6003F598195388D20070C39A /* InfoPlist.strings in Resources */, 296 | ); 297 | runOnlyForDeploymentPostprocessing = 0; 298 | }; 299 | 6003F5AC195388D20070C39A /* Resources */ = { 300 | isa = PBXResourcesBuildPhase; 301 | buildActionMask = 2147483647; 302 | files = ( 303 | 6003F5BA195388D20070C39A /* InfoPlist.strings in Resources */, 304 | ); 305 | runOnlyForDeploymentPostprocessing = 0; 306 | }; 307 | /* End PBXResourcesBuildPhase section */ 308 | 309 | /* Begin PBXShellScriptBuildPhase section */ 310 | 1CCD850404D174E7D12F24A1 /* [CP] Copy Pods Resources */ = { 311 | isa = PBXShellScriptBuildPhase; 312 | buildActionMask = 2147483647; 313 | files = ( 314 | ); 315 | inputPaths = ( 316 | ); 317 | name = "[CP] Copy Pods Resources"; 318 | outputPaths = ( 319 | ); 320 | runOnlyForDeploymentPostprocessing = 0; 321 | shellPath = /bin/sh; 322 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LLSegmentBar_Tests/Pods-LLSegmentBar_Tests-resources.sh\"\n"; 323 | showEnvVarsInLog = 0; 324 | }; 325 | 45742CE37EB9ED377E66B488 /* [CP] Embed Pods Frameworks */ = { 326 | isa = PBXShellScriptBuildPhase; 327 | buildActionMask = 2147483647; 328 | files = ( 329 | ); 330 | inputPaths = ( 331 | ); 332 | name = "[CP] Embed Pods Frameworks"; 333 | outputPaths = ( 334 | ); 335 | runOnlyForDeploymentPostprocessing = 0; 336 | shellPath = /bin/sh; 337 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LLSegmentBar_Tests/Pods-LLSegmentBar_Tests-frameworks.sh\"\n"; 338 | showEnvVarsInLog = 0; 339 | }; 340 | 511EFFD163813227B217E7F6 /* [CP] Embed Pods Frameworks */ = { 341 | isa = PBXShellScriptBuildPhase; 342 | buildActionMask = 2147483647; 343 | files = ( 344 | ); 345 | inputPaths = ( 346 | ); 347 | name = "[CP] Embed Pods Frameworks"; 348 | outputPaths = ( 349 | ); 350 | runOnlyForDeploymentPostprocessing = 0; 351 | shellPath = /bin/sh; 352 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LLSegmentBar_Example/Pods-LLSegmentBar_Example-frameworks.sh\"\n"; 353 | showEnvVarsInLog = 0; 354 | }; 355 | B1AA43B66C5D41C2C5EE6B3D /* [CP] Check Pods Manifest.lock */ = { 356 | isa = PBXShellScriptBuildPhase; 357 | buildActionMask = 2147483647; 358 | files = ( 359 | ); 360 | inputPaths = ( 361 | ); 362 | name = "[CP] Check Pods Manifest.lock"; 363 | outputPaths = ( 364 | ); 365 | runOnlyForDeploymentPostprocessing = 0; 366 | shellPath = /bin/sh; 367 | 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"; 368 | showEnvVarsInLog = 0; 369 | }; 370 | B37DFD20E3C962B122E1B482 /* [CP] Copy Pods Resources */ = { 371 | isa = PBXShellScriptBuildPhase; 372 | buildActionMask = 2147483647; 373 | files = ( 374 | ); 375 | inputPaths = ( 376 | ); 377 | name = "[CP] Copy Pods Resources"; 378 | outputPaths = ( 379 | ); 380 | runOnlyForDeploymentPostprocessing = 0; 381 | shellPath = /bin/sh; 382 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LLSegmentBar_Example/Pods-LLSegmentBar_Example-resources.sh\"\n"; 383 | showEnvVarsInLog = 0; 384 | }; 385 | DA8F05ECA104BA66A17F1860 /* [CP] Check Pods Manifest.lock */ = { 386 | isa = PBXShellScriptBuildPhase; 387 | buildActionMask = 2147483647; 388 | files = ( 389 | ); 390 | inputPaths = ( 391 | ); 392 | name = "[CP] Check Pods Manifest.lock"; 393 | outputPaths = ( 394 | ); 395 | runOnlyForDeploymentPostprocessing = 0; 396 | shellPath = /bin/sh; 397 | 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"; 398 | showEnvVarsInLog = 0; 399 | }; 400 | /* End PBXShellScriptBuildPhase section */ 401 | 402 | /* Begin PBXSourcesBuildPhase section */ 403 | 6003F586195388D20070C39A /* Sources */ = { 404 | isa = PBXSourcesBuildPhase; 405 | buildActionMask = 2147483647; 406 | files = ( 407 | D20EDEDE1EFAB236000099E2 /* LLOneViewController.m in Sources */, 408 | 6003F59E195388D20070C39A /* LLAppDelegate.m in Sources */, 409 | 6003F5A7195388D20070C39A /* LLViewController.m in Sources */, 410 | 6003F59A195388D20070C39A /* main.m in Sources */, 411 | D20EDEE11EFAB33B000099E2 /* LLTwoViewController.m in Sources */, 412 | ); 413 | runOnlyForDeploymentPostprocessing = 0; 414 | }; 415 | 6003F5AA195388D20070C39A /* Sources */ = { 416 | isa = PBXSourcesBuildPhase; 417 | buildActionMask = 2147483647; 418 | files = ( 419 | 6003F5BC195388D20070C39A /* Tests.m in Sources */, 420 | ); 421 | runOnlyForDeploymentPostprocessing = 0; 422 | }; 423 | /* End PBXSourcesBuildPhase section */ 424 | 425 | /* Begin PBXTargetDependency section */ 426 | 6003F5B4195388D20070C39A /* PBXTargetDependency */ = { 427 | isa = PBXTargetDependency; 428 | target = 6003F589195388D20070C39A /* LLSegmentBar_Example */; 429 | targetProxy = 6003F5B3195388D20070C39A /* PBXContainerItemProxy */; 430 | }; 431 | /* End PBXTargetDependency section */ 432 | 433 | /* Begin PBXVariantGroup section */ 434 | 6003F596195388D20070C39A /* InfoPlist.strings */ = { 435 | isa = PBXVariantGroup; 436 | children = ( 437 | 6003F597195388D20070C39A /* en */, 438 | ); 439 | name = InfoPlist.strings; 440 | sourceTree = ""; 441 | }; 442 | 6003F5B8195388D20070C39A /* InfoPlist.strings */ = { 443 | isa = PBXVariantGroup; 444 | children = ( 445 | 6003F5B9195388D20070C39A /* en */, 446 | ); 447 | name = InfoPlist.strings; 448 | sourceTree = ""; 449 | }; 450 | 71719F9D1E33DC2100824A3D /* LaunchScreen.storyboard */ = { 451 | isa = PBXVariantGroup; 452 | children = ( 453 | 71719F9E1E33DC2100824A3D /* Base */, 454 | ); 455 | name = LaunchScreen.storyboard; 456 | sourceTree = ""; 457 | }; 458 | /* End PBXVariantGroup section */ 459 | 460 | /* Begin XCBuildConfiguration section */ 461 | 6003F5BD195388D20070C39A /* Debug */ = { 462 | isa = XCBuildConfiguration; 463 | buildSettings = { 464 | ALWAYS_SEARCH_USER_PATHS = NO; 465 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 466 | CLANG_CXX_LIBRARY = "libc++"; 467 | CLANG_ENABLE_MODULES = YES; 468 | CLANG_ENABLE_OBJC_ARC = YES; 469 | CLANG_WARN_BOOL_CONVERSION = YES; 470 | CLANG_WARN_CONSTANT_CONVERSION = YES; 471 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 472 | CLANG_WARN_EMPTY_BODY = YES; 473 | CLANG_WARN_ENUM_CONVERSION = YES; 474 | CLANG_WARN_INFINITE_RECURSION = YES; 475 | CLANG_WARN_INT_CONVERSION = YES; 476 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 477 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 478 | CLANG_WARN_UNREACHABLE_CODE = YES; 479 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 480 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 481 | COPY_PHASE_STRIP = NO; 482 | ENABLE_STRICT_OBJC_MSGSEND = YES; 483 | ENABLE_TESTABILITY = YES; 484 | GCC_C_LANGUAGE_STANDARD = gnu99; 485 | GCC_DYNAMIC_NO_PIC = NO; 486 | GCC_NO_COMMON_BLOCKS = YES; 487 | GCC_OPTIMIZATION_LEVEL = 0; 488 | GCC_PREPROCESSOR_DEFINITIONS = ( 489 | "DEBUG=1", 490 | "$(inherited)", 491 | ); 492 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 493 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 494 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 495 | GCC_WARN_UNDECLARED_SELECTOR = YES; 496 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 497 | GCC_WARN_UNUSED_FUNCTION = YES; 498 | GCC_WARN_UNUSED_VARIABLE = YES; 499 | IPHONEOS_DEPLOYMENT_TARGET = 8.3; 500 | ONLY_ACTIVE_ARCH = YES; 501 | SDKROOT = iphoneos; 502 | TARGETED_DEVICE_FAMILY = "1,2"; 503 | }; 504 | name = Debug; 505 | }; 506 | 6003F5BE195388D20070C39A /* Release */ = { 507 | isa = XCBuildConfiguration; 508 | buildSettings = { 509 | ALWAYS_SEARCH_USER_PATHS = NO; 510 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 511 | CLANG_CXX_LIBRARY = "libc++"; 512 | CLANG_ENABLE_MODULES = YES; 513 | CLANG_ENABLE_OBJC_ARC = YES; 514 | CLANG_WARN_BOOL_CONVERSION = YES; 515 | CLANG_WARN_CONSTANT_CONVERSION = YES; 516 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 517 | CLANG_WARN_EMPTY_BODY = YES; 518 | CLANG_WARN_ENUM_CONVERSION = YES; 519 | CLANG_WARN_INFINITE_RECURSION = YES; 520 | CLANG_WARN_INT_CONVERSION = YES; 521 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 522 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 523 | CLANG_WARN_UNREACHABLE_CODE = YES; 524 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 525 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 526 | COPY_PHASE_STRIP = YES; 527 | ENABLE_NS_ASSERTIONS = NO; 528 | ENABLE_STRICT_OBJC_MSGSEND = YES; 529 | GCC_C_LANGUAGE_STANDARD = gnu99; 530 | GCC_NO_COMMON_BLOCKS = YES; 531 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 532 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 533 | GCC_WARN_UNDECLARED_SELECTOR = YES; 534 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 535 | GCC_WARN_UNUSED_FUNCTION = YES; 536 | GCC_WARN_UNUSED_VARIABLE = YES; 537 | IPHONEOS_DEPLOYMENT_TARGET = 8.3; 538 | SDKROOT = iphoneos; 539 | TARGETED_DEVICE_FAMILY = "1,2"; 540 | VALIDATE_PRODUCT = YES; 541 | }; 542 | name = Release; 543 | }; 544 | 6003F5C0195388D20070C39A /* Debug */ = { 545 | isa = XCBuildConfiguration; 546 | baseConfigurationReference = 858BE33B7A2854BDE10581CD /* Pods-LLSegmentBar_Example.debug.xcconfig */; 547 | buildSettings = { 548 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 549 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 550 | GCC_PREFIX_HEADER = "LLSegmentBar/LLSegmentBar-Prefix.pch"; 551 | INFOPLIST_FILE = "LLSegmentBar/LLSegmentBar-Info.plist"; 552 | MODULE_NAME = ExampleApp; 553 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier}"; 554 | PRODUCT_NAME = "$(TARGET_NAME)"; 555 | WRAPPER_EXTENSION = app; 556 | }; 557 | name = Debug; 558 | }; 559 | 6003F5C1195388D20070C39A /* Release */ = { 560 | isa = XCBuildConfiguration; 561 | baseConfigurationReference = 9036A19D9527F1BE330D8A7C /* Pods-LLSegmentBar_Example.release.xcconfig */; 562 | buildSettings = { 563 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 564 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 565 | GCC_PREFIX_HEADER = "LLSegmentBar/LLSegmentBar-Prefix.pch"; 566 | INFOPLIST_FILE = "LLSegmentBar/LLSegmentBar-Info.plist"; 567 | MODULE_NAME = ExampleApp; 568 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier}"; 569 | PRODUCT_NAME = "$(TARGET_NAME)"; 570 | WRAPPER_EXTENSION = app; 571 | }; 572 | name = Release; 573 | }; 574 | 6003F5C3195388D20070C39A /* Debug */ = { 575 | isa = XCBuildConfiguration; 576 | baseConfigurationReference = 1F1308CDC2724A72FAC9CB98 /* Pods-LLSegmentBar_Tests.debug.xcconfig */; 577 | buildSettings = { 578 | BUNDLE_LOADER = "$(TEST_HOST)"; 579 | FRAMEWORK_SEARCH_PATHS = ( 580 | "$(SDKROOT)/Developer/Library/Frameworks", 581 | "$(inherited)", 582 | "$(DEVELOPER_FRAMEWORKS_DIR)", 583 | ); 584 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 585 | GCC_PREFIX_HEADER = "Tests/Tests-Prefix.pch"; 586 | GCC_PREPROCESSOR_DEFINITIONS = ( 587 | "DEBUG=1", 588 | "$(inherited)", 589 | ); 590 | INFOPLIST_FILE = "Tests/Tests-Info.plist"; 591 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier}"; 592 | PRODUCT_NAME = "$(TARGET_NAME)"; 593 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LLSegmentBar_Example.app/LLSegmentBar_Example"; 594 | WRAPPER_EXTENSION = xctest; 595 | }; 596 | name = Debug; 597 | }; 598 | 6003F5C4195388D20070C39A /* Release */ = { 599 | isa = XCBuildConfiguration; 600 | baseConfigurationReference = AC44E06F6BB0A87E8DCE1B3D /* Pods-LLSegmentBar_Tests.release.xcconfig */; 601 | buildSettings = { 602 | BUNDLE_LOADER = "$(TEST_HOST)"; 603 | FRAMEWORK_SEARCH_PATHS = ( 604 | "$(SDKROOT)/Developer/Library/Frameworks", 605 | "$(inherited)", 606 | "$(DEVELOPER_FRAMEWORKS_DIR)", 607 | ); 608 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 609 | GCC_PREFIX_HEADER = "Tests/Tests-Prefix.pch"; 610 | INFOPLIST_FILE = "Tests/Tests-Info.plist"; 611 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier}"; 612 | PRODUCT_NAME = "$(TARGET_NAME)"; 613 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LLSegmentBar_Example.app/LLSegmentBar_Example"; 614 | WRAPPER_EXTENSION = xctest; 615 | }; 616 | name = Release; 617 | }; 618 | /* End XCBuildConfiguration section */ 619 | 620 | /* Begin XCConfigurationList section */ 621 | 6003F585195388D10070C39A /* Build configuration list for PBXProject "LLSegmentBar" */ = { 622 | isa = XCConfigurationList; 623 | buildConfigurations = ( 624 | 6003F5BD195388D20070C39A /* Debug */, 625 | 6003F5BE195388D20070C39A /* Release */, 626 | ); 627 | defaultConfigurationIsVisible = 0; 628 | defaultConfigurationName = Release; 629 | }; 630 | 6003F5BF195388D20070C39A /* Build configuration list for PBXNativeTarget "LLSegmentBar_Example" */ = { 631 | isa = XCConfigurationList; 632 | buildConfigurations = ( 633 | 6003F5C0195388D20070C39A /* Debug */, 634 | 6003F5C1195388D20070C39A /* Release */, 635 | ); 636 | defaultConfigurationIsVisible = 0; 637 | defaultConfigurationName = Release; 638 | }; 639 | 6003F5C2195388D20070C39A /* Build configuration list for PBXNativeTarget "LLSegmentBar_Tests" */ = { 640 | isa = XCConfigurationList; 641 | buildConfigurations = ( 642 | 6003F5C3195388D20070C39A /* Debug */, 643 | 6003F5C4195388D20070C39A /* Release */, 644 | ); 645 | defaultConfigurationIsVisible = 0; 646 | defaultConfigurationName = Release; 647 | }; 648 | /* End XCConfigurationList section */ 649 | }; 650 | rootObject = 6003F582195388D10070C39A /* Project object */; 651 | } 652 | -------------------------------------------------------------------------------- /Example/LLSegmentBar.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Example/LLSegmentBar.xcodeproj/xcshareddata/xcschemes/LLSegmentBar-Example.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 33 | 39 | 40 | 41 | 42 | 43 | 49 | 50 | 51 | 52 | 53 | 54 | 64 | 66 | 72 | 73 | 74 | 75 | 76 | 77 | 83 | 85 | 91 | 92 | 93 | 94 | 96 | 97 | 100 | 101 | 102 | -------------------------------------------------------------------------------- /Example/LLSegmentBar.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Example/LLSegmentBar/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Example/LLSegmentBar/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /Example/LLSegmentBar/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "20x20", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "20x20", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "29x29", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "29x29", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "40x40", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "40x40", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "idiom" : "iphone", 35 | "size" : "60x60", 36 | "scale" : "2x" 37 | }, 38 | { 39 | "idiom" : "iphone", 40 | "size" : "60x60", 41 | "scale" : "3x" 42 | }, 43 | { 44 | "idiom" : "ipad", 45 | "size" : "20x20", 46 | "scale" : "1x" 47 | }, 48 | { 49 | "idiom" : "ipad", 50 | "size" : "20x20", 51 | "scale" : "2x" 52 | }, 53 | { 54 | "idiom" : "ipad", 55 | "size" : "29x29", 56 | "scale" : "1x" 57 | }, 58 | { 59 | "idiom" : "ipad", 60 | "size" : "29x29", 61 | "scale" : "2x" 62 | }, 63 | { 64 | "idiom" : "ipad", 65 | "size" : "40x40", 66 | "scale" : "1x" 67 | }, 68 | { 69 | "idiom" : "ipad", 70 | "size" : "40x40", 71 | "scale" : "2x" 72 | }, 73 | { 74 | "idiom" : "ipad", 75 | "size" : "76x76", 76 | "scale" : "1x" 77 | }, 78 | { 79 | "idiom" : "ipad", 80 | "size" : "76x76", 81 | "scale" : "2x" 82 | }, 83 | { 84 | "idiom" : "ipad", 85 | "size" : "83.5x83.5", 86 | "scale" : "2x" 87 | } 88 | ], 89 | "info" : { 90 | "version" : 1, 91 | "author" : "xcode" 92 | } 93 | } 94 | -------------------------------------------------------------------------------- /Example/LLSegmentBar/Images.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Example/LLSegmentBar/Images.xcassets/navigationbar_bg_64.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "navigationbar_bg_64@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Example/LLSegmentBar/Images.xcassets/navigationbar_bg_64.imageset/navigationbar_bg_64@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuniuliuniu/LLSegmentBar/32a17f3173251870a76fc5b5bf6d8c7c5a1a3aec/Example/LLSegmentBar/Images.xcassets/navigationbar_bg_64.imageset/navigationbar_bg_64@2x.png -------------------------------------------------------------------------------- /Example/LLSegmentBar/LLAppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // LLAppDelegate.h 3 | // LLSegmentBar 4 | // 5 | // Created by 416997919@qq.com on 06/03/2017. 6 | // Copyright (c) 2017 416997919@qq.com. All rights reserved. 7 | // 8 | 9 | @import UIKit; 10 | 11 | @interface LLAppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Example/LLSegmentBar/LLAppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // LLAppDelegate.m 3 | // LLSegmentBar 4 | // 5 | // Created by 416997919@qq.com on 06/03/2017. 6 | // Copyright (c) 2017 416997919@qq.com. All rights reserved. 7 | // 8 | 9 | #import "LLAppDelegate.h" 10 | 11 | @implementation LLAppDelegate 12 | 13 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 14 | { 15 | // Override point for customization after application launch. 16 | return YES; 17 | } 18 | 19 | - (void)applicationWillResignActive:(UIApplication *)application 20 | { 21 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 22 | // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. 23 | } 24 | 25 | - (void)applicationDidEnterBackground:(UIApplication *)application 26 | { 27 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 28 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 29 | } 30 | 31 | - (void)applicationWillEnterForeground:(UIApplication *)application 32 | { 33 | // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. 34 | } 35 | 36 | - (void)applicationDidBecomeActive:(UIApplication *)application 37 | { 38 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 39 | } 40 | 41 | - (void)applicationWillTerminate:(UIApplication *)application 42 | { 43 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 44 | } 45 | 46 | @end 47 | -------------------------------------------------------------------------------- /Example/LLSegmentBar/LLOneViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // LLOneViewController.h 3 | // LLSegmentBar 4 | // 5 | // Created by liushaohua on 2017/6/21. 6 | // Copyright © 2017年 416997919@qq.com. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface LLOneViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Example/LLSegmentBar/LLOneViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // LLOneViewController.m 3 | // LLSegmentBar 4 | // 5 | // Created by liushaohua on 2017/6/21. 6 | // Copyright © 2017年 416997919@qq.com. All rights reserved. 7 | // 8 | 9 | #import "LLOneViewController.h" 10 | #import "LLTwoViewController.h" 11 | 12 | 13 | @interface LLOneViewController () 14 | 15 | @end 16 | 17 | @implementation LLOneViewController 18 | 19 | - (void)viewDidLoad { 20 | [super viewDidLoad]; 21 | 22 | 23 | } 24 | 25 | - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 26 | { 27 | LLTwoViewController *twoVC = [LLTwoViewController new]; 28 | 29 | [self.navigationController pushViewController:twoVC animated:YES]; 30 | } 31 | 32 | 33 | 34 | 35 | - (void)didReceiveMemoryWarning { 36 | [super didReceiveMemoryWarning]; 37 | // Dispose of any resources that can be recreated. 38 | } 39 | 40 | /* 41 | #pragma mark - Navigation 42 | 43 | // In a storyboard-based application, you will often want to do a little preparation before navigation 44 | - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 45 | // Get the new view controller using [segue destinationViewController]. 46 | // Pass the selected object to the new view controller. 47 | } 48 | */ 49 | 50 | @end 51 | -------------------------------------------------------------------------------- /Example/LLSegmentBar/LLSegmentBar-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | ${PRODUCT_NAME} 9 | CFBundleExecutable 10 | ${EXECUTABLE_NAME} 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | ${PRODUCT_NAME} 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 1.0 25 | LSRequiresIPhoneOS 26 | 27 | UILaunchStoryboardName 28 | LaunchScreen 29 | UIMainStoryboardFile 30 | Main 31 | UIRequiredDeviceCapabilities 32 | 33 | armv7 34 | 35 | UISupportedInterfaceOrientations 36 | 37 | UIInterfaceOrientationPortrait 38 | UIInterfaceOrientationLandscapeLeft 39 | UIInterfaceOrientationLandscapeRight 40 | 41 | UISupportedInterfaceOrientations~ipad 42 | 43 | UIInterfaceOrientationPortrait 44 | UIInterfaceOrientationPortraitUpsideDown 45 | UIInterfaceOrientationLandscapeLeft 46 | UIInterfaceOrientationLandscapeRight 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /Example/LLSegmentBar/LLSegmentBar-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header 3 | // 4 | // The contents of this file are implicitly included at the beginning of every source file. 5 | // 6 | 7 | #import 8 | 9 | #ifndef __IPHONE_5_0 10 | #warning "This project uses features only available in iOS SDK 5.0 and later." 11 | #endif 12 | 13 | #ifdef __OBJC__ 14 | @import UIKit; 15 | @import Foundation; 16 | #endif 17 | -------------------------------------------------------------------------------- /Example/LLSegmentBar/LLTwoViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // LLTwoViewController.h 3 | // LLSegmentBar 4 | // 5 | // Created by liushaohua on 2017/6/21. 6 | // Copyright © 2017年 416997919@qq.com. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface LLTwoViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Example/LLSegmentBar/LLTwoViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // LLTwoViewController.m 3 | // LLSegmentBar 4 | // 5 | // Created by liushaohua on 2017/6/21. 6 | // Copyright © 2017年 416997919@qq.com. All rights reserved. 7 | // 8 | 9 | #import "LLTwoViewController.h" 10 | #import "LLSegmentBarVC.h" 11 | 12 | 13 | #define random(r, g, b, a) [UIColor colorWithRed:(r)/255.0 green:(g)/255.0 blue:(b)/255.0 alpha:(a)/255.0] 14 | 15 | #define randomColor random(arc4random_uniform(256), arc4random_uniform(256), arc4random_uniform(256), arc4random_uniform(256)) 16 | 17 | 18 | @interface LLTwoViewController () 19 | @property (nonatomic, weak) LLSegmentBarVC *segContentVC; 20 | 21 | @end 22 | 23 | @implementation LLTwoViewController 24 | 25 | // lazy init 26 | - (LLSegmentBarVC *)segContentVC{ 27 | if (!_segContentVC) { 28 | LLSegmentBarVC *contentVC = [[LLSegmentBarVC alloc]init]; 29 | [self addChildViewController:contentVC]; 30 | _segContentVC = contentVC; 31 | } 32 | return _segContentVC; 33 | } 34 | 35 | 36 | - (void)viewDidLoad { 37 | [super viewDidLoad]; 38 | 39 | self.view.backgroundColor = [UIColor whiteColor]; 40 | 41 | self.automaticallyAdjustsScrollViewInsets = NO; 42 | 43 | // 1 设置控制器V的frame 44 | self.segContentVC.view.frame = CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height); 45 | [self.view addSubview:self.segContentVC.view]; 46 | 47 | // 2 控制器数组和标题数组 48 | NSMutableArray *arrM = [NSMutableArray array]; 49 | NSMutableArray *titleArrM = [NSMutableArray arrayWithCapacity:10]; 50 | for (NSInteger i = 0; i < 10; i++) { 51 | UIViewController *VC = [UIViewController new]; 52 | VC.view.backgroundColor = randomColor; 53 | NSString *title = [NSString stringWithFormat:@"title%zd",i]; 54 | [titleArrM addObject:title]; 55 | [arrM addObject:VC]; 56 | } 57 | 58 | // 3 添加 59 | [self.segContentVC setUpWithItems:titleArrM childVCs:arrM]; 60 | 61 | } 62 | 63 | - (void)didReceiveMemoryWarning { 64 | [super didReceiveMemoryWarning]; 65 | // Dispose of any resources that can be recreated. 66 | } 67 | 68 | 69 | @end 70 | -------------------------------------------------------------------------------- /Example/LLSegmentBar/LLViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // LLViewController.h 3 | // LLSegmentBar 4 | // 5 | // Created by 416997919@qq.com on 06/03/2017. 6 | // Copyright (c) 2017 416997919@qq.com. All rights reserved. 7 | // 8 | 9 | @import UIKit; 10 | 11 | @interface LLViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Example/LLSegmentBar/LLViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // LLViewController.m 3 | // LLSegmentBar 4 | // 5 | // Created by 416997919@qq.com on 06/03/2017. 6 | // Copyright (c) 2017 416997919@qq.com. All rights reserved. 7 | // 8 | 9 | #import "LLViewController.h" 10 | #import "LLSegmentBarVC.h" 11 | 12 | #import "LLOneViewController.h" 13 | 14 | 15 | @interface LLViewController () 16 | 17 | 18 | @property (nonatomic,weak) LLSegmentBarVC * segmentVC; 19 | 20 | @end 21 | 22 | @implementation LLViewController 23 | 24 | // lazy init 25 | - (LLSegmentBarVC *)segmentVC{ 26 | if (!_segmentVC) { 27 | LLSegmentBarVC *vc = [[LLSegmentBarVC alloc]init]; 28 | // 添加到到控制器 29 | [self addChildViewController:vc]; 30 | _segmentVC = vc; 31 | } 32 | return _segmentVC; 33 | } 34 | 35 | - (void)viewDidLoad 36 | { 37 | [super viewDidLoad]; 38 | 39 | // 1 设置segmentBar的frame 40 | self.segmentVC.segmentBar.frame = CGRectMake(0, 0, 320, 35); 41 | self.navigationItem.titleView = self.segmentVC.segmentBar; 42 | 43 | // 2 添加控制器的View 44 | self.segmentVC.view.frame = self.view.bounds; 45 | [self.view addSubview:self.segmentVC.view]; 46 | 47 | 48 | NSArray *items = @[@"item-one", @"item-two", @"item-three"]; 49 | LLOneViewController *vc1 = [LLOneViewController new]; 50 | vc1.view.backgroundColor = [UIColor redColor]; 51 | UIViewController *vc2 = [UIViewController new]; 52 | vc2.view.backgroundColor = [UIColor greenColor]; 53 | UIViewController *vc3 = [UIViewController new]; 54 | vc3.view.backgroundColor = [UIColor yellowColor]; 55 | 56 | // 3 添加标题数组和控住器数组 57 | [self.segmentVC setUpWithItems:items childVCs:@[vc1,vc2,vc3]]; 58 | 59 | 60 | // 4 配置基本设置 可采用链式编程模式进行设置 61 | [self.segmentVC.segmentBar updateWithConfig:^(LLSegmentBarConfig *config) { 62 | config.itemNormalColor([UIColor blackColor]).itemSelectColor([UIColor redColor]).indicatorColor([UIColor greenColor]); 63 | }]; 64 | 65 | 66 | [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"navigationbar_bg_64"] forBarMetrics:UIBarMetricsDefault]; 67 | 68 | 69 | } 70 | 71 | - (void)didReceiveMemoryWarning 72 | { 73 | [super didReceiveMemoryWarning]; 74 | // Dispose of any resources that can be recreated. 75 | } 76 | 77 | @end 78 | -------------------------------------------------------------------------------- /Example/LLSegmentBar/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /Example/LLSegmentBar/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // LLSegmentBar 4 | // 5 | // Created by 416997919@qq.com on 06/03/2017. 6 | // Copyright (c) 2017 416997919@qq.com. All rights reserved. 7 | // 8 | 9 | @import UIKit; 10 | #import "LLAppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) 13 | { 14 | @autoreleasepool { 15 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([LLAppDelegate class])); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Example/Podfile: -------------------------------------------------------------------------------- 1 | use_frameworks! 2 | 3 | target 'LLSegmentBar_Example' do 4 | pod 'LLSegmentBar', :path => '../' 5 | 6 | target 'LLSegmentBar_Tests' do 7 | inherit! :search_paths 8 | 9 | 10 | end 11 | end 12 | -------------------------------------------------------------------------------- /Example/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - LLSegmentBar (0.1.0) 3 | 4 | DEPENDENCIES: 5 | - LLSegmentBar (from `../`) 6 | 7 | EXTERNAL SOURCES: 8 | LLSegmentBar: 9 | :path: ../ 10 | 11 | SPEC CHECKSUMS: 12 | LLSegmentBar: 399c17b883d1df3e9ab1fc267d1829d5f5382698 13 | 14 | PODFILE CHECKSUM: 6117ca00f04c84b2dd015ab56bb23a6d7e897fec 15 | 16 | COCOAPODS: 1.2.1 17 | -------------------------------------------------------------------------------- /Example/Pods/Local Podspecs/LLSegmentBar.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "LLSegmentBar", 3 | "version": "0.1.0", 4 | "summary": "A short description of LLSegmentBar.", 5 | "description": "TODO: Add long description of the pod here.", 6 | "homepage": "https://github.com/416997919@qq.com/LLSegmentBar", 7 | "license": { 8 | "type": "MIT", 9 | "file": "LICENSE" 10 | }, 11 | "authors": { 12 | "416997919@qq.com": "416997919@qq.com" 13 | }, 14 | "source": { 15 | "git": "https://github.com/416997919@qq.com/LLSegmentBar.git", 16 | "tag": "0.1.0" 17 | }, 18 | "platforms": { 19 | "ios": "8.0" 20 | }, 21 | "source_files": "LLSegmentBar/Classes/**/*" 22 | } 23 | -------------------------------------------------------------------------------- /Example/Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - LLSegmentBar (0.1.0) 3 | 4 | DEPENDENCIES: 5 | - LLSegmentBar (from `../`) 6 | 7 | EXTERNAL SOURCES: 8 | LLSegmentBar: 9 | :path: ../ 10 | 11 | SPEC CHECKSUMS: 12 | LLSegmentBar: 399c17b883d1df3e9ab1fc267d1829d5f5382698 13 | 14 | PODFILE CHECKSUM: 6117ca00f04c84b2dd015ab56bb23a6d7e897fec 15 | 16 | COCOAPODS: 1.2.1 17 | -------------------------------------------------------------------------------- /Example/Pods/Pods.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 0ABA5F5AA8CB8E52F827E1A2AF563A91 /* Pods-LLSegmentBar_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 25E165BDC98C186DF3BD63B1106177BF /* Pods-LLSegmentBar_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 11 | 1DF3089419B3B54891C85B4D64B0CAA2 /* LLSegmentBar-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = FB0C4B87ED50D4081D889BE8053B4321 /* LLSegmentBar-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 12 | 1E1E09E04E562513D076C38C1E19F175 /* LLSegmentBarVC.h in Headers */ = {isa = PBXBuildFile; fileRef = CC70A5D509730E38D8C1EF3F9BFCBE9F /* LLSegmentBarVC.h */; settings = {ATTRIBUTES = (Public, ); }; }; 13 | 2834BF8F04BD2FB4EB5DCE1EE112D3E1 /* LLSegmentBar.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BB24B61080BBD576E14F9F469F5953F /* LLSegmentBar.m */; }; 14 | 2DED6175C9874A6B105B62A903F318AC /* LLSegmentBarConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E50F9B5946D5944708E761A672A05AA /* LLSegmentBarConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; 15 | 2E23D5141A917FBE68425CF76F165C26 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */; }; 16 | 59F73DA6E100861A3AEE3ED7990E1D14 /* LLSegmentBar.h in Headers */ = {isa = PBXBuildFile; fileRef = 81D554FCEC8C2044961EEB99E27ED080 /* LLSegmentBar.h */; settings = {ATTRIBUTES = (Public, ); }; }; 17 | 757A67A4716CCD6ABAA6298D493B6165 /* LLSegmentBar-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B19FFE61E37778531DE2A9702BE4A84 /* LLSegmentBar-dummy.m */; }; 18 | 773522EEB6E0177D0CFBC5CB1370CE62 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */; }; 19 | 876E86EA10E8563C56FAFE0A03564816 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */; }; 20 | B899044538FEE923F3A9D30642354BE0 /* UIView+LLSegmentBar.m in Sources */ = {isa = PBXBuildFile; fileRef = 30FD6E2B0E9AAC25CEE8BE97CDA49EA3 /* UIView+LLSegmentBar.m */; }; 21 | B908B9B5296ABFC6FDCF0D2BD531E1B2 /* Pods-LLSegmentBar_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 7793DE6F7C78B2B19ED001484ACC6884 /* Pods-LLSegmentBar_Example-dummy.m */; }; 22 | C5E7E960AC84946CFB2062320F83CB78 /* UIView+LLSegmentBar.h in Headers */ = {isa = PBXBuildFile; fileRef = 214C1CACFF9F9CBAEE8AD8B183BBDFE1 /* UIView+LLSegmentBar.h */; settings = {ATTRIBUTES = (Public, ); }; }; 23 | CD67F9F45AE7C7D96466BFB32F7B1597 /* LLSegmentBarVC.m in Sources */ = {isa = PBXBuildFile; fileRef = FD0FD9AA7EC061217D11E511E0B30596 /* LLSegmentBarVC.m */; }; 24 | E2EB1A8D8689A7FCBDB182A4431A0BBD /* Pods-LLSegmentBar_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 2421BB72A7D9796883C0781258002677 /* Pods-LLSegmentBar_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 25 | E61C35473495C907CF88EDBB7B1B9665 /* Pods-LLSegmentBar_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B7BF155F2234F9143FB767A2848E039 /* Pods-LLSegmentBar_Tests-dummy.m */; }; 26 | FBCECEAEE85BFB4ED7690CBC50C0DC0D /* LLSegmentBarConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 99C0F094FA503BCA91AA0DC9195C3261 /* LLSegmentBarConfig.m */; }; 27 | /* End PBXBuildFile section */ 28 | 29 | /* Begin PBXContainerItemProxy section */ 30 | F0DBC18B9BA61077C370AC957DE79308 /* PBXContainerItemProxy */ = { 31 | isa = PBXContainerItemProxy; 32 | containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; 33 | proxyType = 1; 34 | remoteGlobalIDString = 72F1B10A9D9DEB5DF7659DB502938CB1; 35 | remoteInfo = LLSegmentBar; 36 | }; 37 | /* End PBXContainerItemProxy section */ 38 | 39 | /* Begin PBXFileReference section */ 40 | 032CF89A367D86DAB57AF3D4C9752307 /* Pods-LLSegmentBar_Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-LLSegmentBar_Tests-acknowledgements.plist"; sourceTree = ""; }; 41 | 0E590F14392E2B43CC636EBFCED2CF3C /* Pods-LLSegmentBar_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Pods-LLSegmentBar_Example.modulemap"; sourceTree = ""; }; 42 | 1032FB1591962F5E90CE5CA89C6C21C2 /* Pods-LLSegmentBar_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-LLSegmentBar_Example.release.xcconfig"; sourceTree = ""; }; 43 | 214C1CACFF9F9CBAEE8AD8B183BBDFE1 /* UIView+LLSegmentBar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "UIView+LLSegmentBar.h"; sourceTree = ""; }; 44 | 2421BB72A7D9796883C0781258002677 /* Pods-LLSegmentBar_Tests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-LLSegmentBar_Tests-umbrella.h"; sourceTree = ""; }; 45 | 25E165BDC98C186DF3BD63B1106177BF /* Pods-LLSegmentBar_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-LLSegmentBar_Example-umbrella.h"; sourceTree = ""; }; 46 | 2B5C3EC173037C08F117850C991E0CA8 /* Pods-LLSegmentBar_Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-LLSegmentBar_Example-frameworks.sh"; sourceTree = ""; }; 47 | 30FD6E2B0E9AAC25CEE8BE97CDA49EA3 /* UIView+LLSegmentBar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "UIView+LLSegmentBar.m"; sourceTree = ""; }; 48 | 335FFE828581DD0E73A2026B8BF380A6 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 49 | 3B19FFE61E37778531DE2A9702BE4A84 /* LLSegmentBar-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "LLSegmentBar-dummy.m"; sourceTree = ""; }; 50 | 3E7D886BD1BF94BF6EAA96CA4738C73D /* Pods-LLSegmentBar_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-LLSegmentBar_Example.debug.xcconfig"; sourceTree = ""; }; 51 | 423B377382B913160EF72D311C87D50F /* Pods-LLSegmentBar_Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-LLSegmentBar_Tests-frameworks.sh"; sourceTree = ""; }; 52 | 49427B2A6FF426706088D06E2E31C477 /* Pods-LLSegmentBar_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-LLSegmentBar_Example-acknowledgements.markdown"; sourceTree = ""; }; 53 | 4D80EBAE8BA9F8BBF530DE37877A3C76 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 54 | 4E50F9B5946D5944708E761A672A05AA /* LLSegmentBarConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = LLSegmentBarConfig.h; sourceTree = ""; }; 55 | 533B787EE55912B63C1BFD3A7F2F2284 /* Pods-LLSegmentBar_Tests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-LLSegmentBar_Tests-resources.sh"; sourceTree = ""; }; 56 | 6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; 57 | 6B7BF155F2234F9143FB767A2848E039 /* Pods-LLSegmentBar_Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-LLSegmentBar_Tests-dummy.m"; sourceTree = ""; }; 58 | 74FE8F2239E80668FC761898D1FC0AC2 /* Pods-LLSegmentBar_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-LLSegmentBar_Tests.release.xcconfig"; sourceTree = ""; }; 59 | 7793DE6F7C78B2B19ED001484ACC6884 /* Pods-LLSegmentBar_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-LLSegmentBar_Example-dummy.m"; sourceTree = ""; }; 60 | 7BCE3424DB9A15F20A08D5377023441C /* LLSegmentBar.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = LLSegmentBar.framework; path = LLSegmentBar.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 61 | 81D554FCEC8C2044961EEB99E27ED080 /* LLSegmentBar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = LLSegmentBar.h; sourceTree = ""; }; 62 | 82F146BAF05D88E7E2E4FE1B14356E05 /* Pods-LLSegmentBar_Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-LLSegmentBar_Tests-acknowledgements.markdown"; sourceTree = ""; }; 63 | 87F7A7B65AC28E8C7BDD2D79D12B9102 /* Pods-LLSegmentBar_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-LLSegmentBar_Example-acknowledgements.plist"; sourceTree = ""; }; 64 | 88CFDC606E454E51A651AD14CADBDE39 /* LLSegmentBar-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LLSegmentBar-prefix.pch"; sourceTree = ""; }; 65 | 8F9BDC48D3C0527DCD2D8EF7939A8D3F /* Pods-LLSegmentBar_Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Pods-LLSegmentBar_Tests.modulemap"; sourceTree = ""; }; 66 | 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 67 | 99C0F094FA503BCA91AA0DC9195C3261 /* LLSegmentBarConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = LLSegmentBarConfig.m; sourceTree = ""; }; 68 | 9BB24B61080BBD576E14F9F469F5953F /* LLSegmentBar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = LLSegmentBar.m; sourceTree = ""; }; 69 | A9BFC6F30FCDB9E61C3C9C75AF7F38C1 /* Pods_LLSegmentBar_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_LLSegmentBar_Example.framework; path = "Pods-LLSegmentBar_Example.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; 70 | B703687AF970456F164973E85D6CF0E9 /* Pods_LLSegmentBar_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_LLSegmentBar_Tests.framework; path = "Pods-LLSegmentBar_Tests.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; 71 | C54B014E04D8668EB6B2CE8EE50D902A /* LLSegmentBar.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = LLSegmentBar.modulemap; sourceTree = ""; }; 72 | CC70A5D509730E38D8C1EF3F9BFCBE9F /* LLSegmentBarVC.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = LLSegmentBarVC.h; sourceTree = ""; }; 73 | E1BE35BF5439CEEF274446A39AB5F6C7 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 74 | E5F21F9FC1BF9CA0C515FCE7F6B163CA /* Pods-LLSegmentBar_Example-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-LLSegmentBar_Example-resources.sh"; sourceTree = ""; }; 75 | E6F36C7AFCF75870ADA9E370D57A7B64 /* Pods-LLSegmentBar_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-LLSegmentBar_Tests.debug.xcconfig"; sourceTree = ""; }; 76 | E98BF03A8CB858F517940626AF344DDC /* LLSegmentBar.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = LLSegmentBar.xcconfig; sourceTree = ""; }; 77 | FB0C4B87ED50D4081D889BE8053B4321 /* LLSegmentBar-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LLSegmentBar-umbrella.h"; sourceTree = ""; }; 78 | FD0FD9AA7EC061217D11E511E0B30596 /* LLSegmentBarVC.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = LLSegmentBarVC.m; sourceTree = ""; }; 79 | /* End PBXFileReference section */ 80 | 81 | /* Begin PBXFrameworksBuildPhase section */ 82 | 1C32DE2E9F970CB96C972E35A88AB177 /* Frameworks */ = { 83 | isa = PBXFrameworksBuildPhase; 84 | buildActionMask = 2147483647; 85 | files = ( 86 | 2E23D5141A917FBE68425CF76F165C26 /* Foundation.framework in Frameworks */, 87 | ); 88 | runOnlyForDeploymentPostprocessing = 0; 89 | }; 90 | 91B82CC74920A4BC2AA6E6120607EFA1 /* Frameworks */ = { 91 | isa = PBXFrameworksBuildPhase; 92 | buildActionMask = 2147483647; 93 | files = ( 94 | 773522EEB6E0177D0CFBC5CB1370CE62 /* Foundation.framework in Frameworks */, 95 | ); 96 | runOnlyForDeploymentPostprocessing = 0; 97 | }; 98 | AC22821EEBE389DE3901CFAAAD7CDEE8 /* Frameworks */ = { 99 | isa = PBXFrameworksBuildPhase; 100 | buildActionMask = 2147483647; 101 | files = ( 102 | 876E86EA10E8563C56FAFE0A03564816 /* Foundation.framework in Frameworks */, 103 | ); 104 | runOnlyForDeploymentPostprocessing = 0; 105 | }; 106 | /* End PBXFrameworksBuildPhase section */ 107 | 108 | /* Begin PBXGroup section */ 109 | 4AA9752F5F66D1C965030EFACE74934D /* Products */ = { 110 | isa = PBXGroup; 111 | children = ( 112 | 7BCE3424DB9A15F20A08D5377023441C /* LLSegmentBar.framework */, 113 | A9BFC6F30FCDB9E61C3C9C75AF7F38C1 /* Pods_LLSegmentBar_Example.framework */, 114 | B703687AF970456F164973E85D6CF0E9 /* Pods_LLSegmentBar_Tests.framework */, 115 | ); 116 | name = Products; 117 | sourceTree = ""; 118 | }; 119 | 50AF86C07FCB213F58E1DF8471CB9D4B /* Pods-LLSegmentBar_Example */ = { 120 | isa = PBXGroup; 121 | children = ( 122 | 4D80EBAE8BA9F8BBF530DE37877A3C76 /* Info.plist */, 123 | 0E590F14392E2B43CC636EBFCED2CF3C /* Pods-LLSegmentBar_Example.modulemap */, 124 | 49427B2A6FF426706088D06E2E31C477 /* Pods-LLSegmentBar_Example-acknowledgements.markdown */, 125 | 87F7A7B65AC28E8C7BDD2D79D12B9102 /* Pods-LLSegmentBar_Example-acknowledgements.plist */, 126 | 7793DE6F7C78B2B19ED001484ACC6884 /* Pods-LLSegmentBar_Example-dummy.m */, 127 | 2B5C3EC173037C08F117850C991E0CA8 /* Pods-LLSegmentBar_Example-frameworks.sh */, 128 | E5F21F9FC1BF9CA0C515FCE7F6B163CA /* Pods-LLSegmentBar_Example-resources.sh */, 129 | 25E165BDC98C186DF3BD63B1106177BF /* Pods-LLSegmentBar_Example-umbrella.h */, 130 | 3E7D886BD1BF94BF6EAA96CA4738C73D /* Pods-LLSegmentBar_Example.debug.xcconfig */, 131 | 1032FB1591962F5E90CE5CA89C6C21C2 /* Pods-LLSegmentBar_Example.release.xcconfig */, 132 | ); 133 | name = "Pods-LLSegmentBar_Example"; 134 | path = "Target Support Files/Pods-LLSegmentBar_Example"; 135 | sourceTree = ""; 136 | }; 137 | 56DB11A8625B230DB562ED5633665668 /* Pods-LLSegmentBar_Tests */ = { 138 | isa = PBXGroup; 139 | children = ( 140 | E1BE35BF5439CEEF274446A39AB5F6C7 /* Info.plist */, 141 | 8F9BDC48D3C0527DCD2D8EF7939A8D3F /* Pods-LLSegmentBar_Tests.modulemap */, 142 | 82F146BAF05D88E7E2E4FE1B14356E05 /* Pods-LLSegmentBar_Tests-acknowledgements.markdown */, 143 | 032CF89A367D86DAB57AF3D4C9752307 /* Pods-LLSegmentBar_Tests-acknowledgements.plist */, 144 | 6B7BF155F2234F9143FB767A2848E039 /* Pods-LLSegmentBar_Tests-dummy.m */, 145 | 423B377382B913160EF72D311C87D50F /* Pods-LLSegmentBar_Tests-frameworks.sh */, 146 | 533B787EE55912B63C1BFD3A7F2F2284 /* Pods-LLSegmentBar_Tests-resources.sh */, 147 | 2421BB72A7D9796883C0781258002677 /* Pods-LLSegmentBar_Tests-umbrella.h */, 148 | E6F36C7AFCF75870ADA9E370D57A7B64 /* Pods-LLSegmentBar_Tests.debug.xcconfig */, 149 | 74FE8F2239E80668FC761898D1FC0AC2 /* Pods-LLSegmentBar_Tests.release.xcconfig */, 150 | ); 151 | name = "Pods-LLSegmentBar_Tests"; 152 | path = "Target Support Files/Pods-LLSegmentBar_Tests"; 153 | sourceTree = ""; 154 | }; 155 | 7DB346D0F39D3F0E887471402A8071AB = { 156 | isa = PBXGroup; 157 | children = ( 158 | 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, 159 | 7F8FECECAB47F83CD561143EDE88D37E /* Development Pods */, 160 | BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */, 161 | 4AA9752F5F66D1C965030EFACE74934D /* Products */, 162 | AB44BF693B5F857997F82D5F13222866 /* Targets Support Files */, 163 | ); 164 | sourceTree = ""; 165 | }; 166 | 7F8FECECAB47F83CD561143EDE88D37E /* Development Pods */ = { 167 | isa = PBXGroup; 168 | children = ( 169 | F177F3F71133E3FB3911061531E2DCEB /* LLSegmentBar */, 170 | ); 171 | name = "Development Pods"; 172 | sourceTree = ""; 173 | }; 174 | 950690F4C99C696EEE6D4CB7CC710825 /* Classes */ = { 175 | isa = PBXGroup; 176 | children = ( 177 | 81D554FCEC8C2044961EEB99E27ED080 /* LLSegmentBar.h */, 178 | 9BB24B61080BBD576E14F9F469F5953F /* LLSegmentBar.m */, 179 | 4E50F9B5946D5944708E761A672A05AA /* LLSegmentBarConfig.h */, 180 | 99C0F094FA503BCA91AA0DC9195C3261 /* LLSegmentBarConfig.m */, 181 | CC70A5D509730E38D8C1EF3F9BFCBE9F /* LLSegmentBarVC.h */, 182 | FD0FD9AA7EC061217D11E511E0B30596 /* LLSegmentBarVC.m */, 183 | 214C1CACFF9F9CBAEE8AD8B183BBDFE1 /* UIView+LLSegmentBar.h */, 184 | 30FD6E2B0E9AAC25CEE8BE97CDA49EA3 /* UIView+LLSegmentBar.m */, 185 | ); 186 | name = Classes; 187 | path = Classes; 188 | sourceTree = ""; 189 | }; 190 | AB44BF693B5F857997F82D5F13222866 /* Targets Support Files */ = { 191 | isa = PBXGroup; 192 | children = ( 193 | 50AF86C07FCB213F58E1DF8471CB9D4B /* Pods-LLSegmentBar_Example */, 194 | 56DB11A8625B230DB562ED5633665668 /* Pods-LLSegmentBar_Tests */, 195 | ); 196 | name = "Targets Support Files"; 197 | sourceTree = ""; 198 | }; 199 | BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = { 200 | isa = PBXGroup; 201 | children = ( 202 | D35AF013A5F0BAD4F32504907A52519E /* iOS */, 203 | ); 204 | name = Frameworks; 205 | sourceTree = ""; 206 | }; 207 | CEBBA6435732B4932990C12C8FF235FD /* LLSegmentBar */ = { 208 | isa = PBXGroup; 209 | children = ( 210 | 950690F4C99C696EEE6D4CB7CC710825 /* Classes */, 211 | ); 212 | name = LLSegmentBar; 213 | path = LLSegmentBar; 214 | sourceTree = ""; 215 | }; 216 | D35AF013A5F0BAD4F32504907A52519E /* iOS */ = { 217 | isa = PBXGroup; 218 | children = ( 219 | 6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */, 220 | ); 221 | name = iOS; 222 | sourceTree = ""; 223 | }; 224 | F177F3F71133E3FB3911061531E2DCEB /* LLSegmentBar */ = { 225 | isa = PBXGroup; 226 | children = ( 227 | CEBBA6435732B4932990C12C8FF235FD /* LLSegmentBar */, 228 | F2034D93D34E33DC91CCF137B12E7BF8 /* Support Files */, 229 | ); 230 | name = LLSegmentBar; 231 | path = ../..; 232 | sourceTree = ""; 233 | }; 234 | F2034D93D34E33DC91CCF137B12E7BF8 /* Support Files */ = { 235 | isa = PBXGroup; 236 | children = ( 237 | 335FFE828581DD0E73A2026B8BF380A6 /* Info.plist */, 238 | C54B014E04D8668EB6B2CE8EE50D902A /* LLSegmentBar.modulemap */, 239 | E98BF03A8CB858F517940626AF344DDC /* LLSegmentBar.xcconfig */, 240 | 3B19FFE61E37778531DE2A9702BE4A84 /* LLSegmentBar-dummy.m */, 241 | 88CFDC606E454E51A651AD14CADBDE39 /* LLSegmentBar-prefix.pch */, 242 | FB0C4B87ED50D4081D889BE8053B4321 /* LLSegmentBar-umbrella.h */, 243 | ); 244 | name = "Support Files"; 245 | path = "Example/Pods/Target Support Files/LLSegmentBar"; 246 | sourceTree = ""; 247 | }; 248 | /* End PBXGroup section */ 249 | 250 | /* Begin PBXHeadersBuildPhase section */ 251 | 1F6259F5137322B294C48866D32ECF15 /* Headers */ = { 252 | isa = PBXHeadersBuildPhase; 253 | buildActionMask = 2147483647; 254 | files = ( 255 | 0ABA5F5AA8CB8E52F827E1A2AF563A91 /* Pods-LLSegmentBar_Example-umbrella.h in Headers */, 256 | ); 257 | runOnlyForDeploymentPostprocessing = 0; 258 | }; 259 | B35263435B7441FA9E212F0A878083B5 /* Headers */ = { 260 | isa = PBXHeadersBuildPhase; 261 | buildActionMask = 2147483647; 262 | files = ( 263 | E2EB1A8D8689A7FCBDB182A4431A0BBD /* Pods-LLSegmentBar_Tests-umbrella.h in Headers */, 264 | ); 265 | runOnlyForDeploymentPostprocessing = 0; 266 | }; 267 | E7328DABFFFDBCA4E61B9C6B4C78EE53 /* Headers */ = { 268 | isa = PBXHeadersBuildPhase; 269 | buildActionMask = 2147483647; 270 | files = ( 271 | 1DF3089419B3B54891C85B4D64B0CAA2 /* LLSegmentBar-umbrella.h in Headers */, 272 | 59F73DA6E100861A3AEE3ED7990E1D14 /* LLSegmentBar.h in Headers */, 273 | 2DED6175C9874A6B105B62A903F318AC /* LLSegmentBarConfig.h in Headers */, 274 | 1E1E09E04E562513D076C38C1E19F175 /* LLSegmentBarVC.h in Headers */, 275 | C5E7E960AC84946CFB2062320F83CB78 /* UIView+LLSegmentBar.h in Headers */, 276 | ); 277 | runOnlyForDeploymentPostprocessing = 0; 278 | }; 279 | /* End PBXHeadersBuildPhase section */ 280 | 281 | /* Begin PBXNativeTarget section */ 282 | 45E6059A547900A8A403501BC95D5906 /* Pods-LLSegmentBar_Example */ = { 283 | isa = PBXNativeTarget; 284 | buildConfigurationList = 8D044E19BCFF4EF020D60B7A49457861 /* Build configuration list for PBXNativeTarget "Pods-LLSegmentBar_Example" */; 285 | buildPhases = ( 286 | B3E025951375A315AF6A06D6A3D8846A /* Sources */, 287 | 91B82CC74920A4BC2AA6E6120607EFA1 /* Frameworks */, 288 | 1F6259F5137322B294C48866D32ECF15 /* Headers */, 289 | ); 290 | buildRules = ( 291 | ); 292 | dependencies = ( 293 | FE484D910524C326BAB43B39C6E14ADD /* PBXTargetDependency */, 294 | ); 295 | name = "Pods-LLSegmentBar_Example"; 296 | productName = "Pods-LLSegmentBar_Example"; 297 | productReference = A9BFC6F30FCDB9E61C3C9C75AF7F38C1 /* Pods_LLSegmentBar_Example.framework */; 298 | productType = "com.apple.product-type.framework"; 299 | }; 300 | 72F1B10A9D9DEB5DF7659DB502938CB1 /* LLSegmentBar */ = { 301 | isa = PBXNativeTarget; 302 | buildConfigurationList = 55172C4A2965799C36AC19BCCBD56004 /* Build configuration list for PBXNativeTarget "LLSegmentBar" */; 303 | buildPhases = ( 304 | 0F1F91E59FE9C4BCC422E164760BDF68 /* Sources */, 305 | AC22821EEBE389DE3901CFAAAD7CDEE8 /* Frameworks */, 306 | E7328DABFFFDBCA4E61B9C6B4C78EE53 /* Headers */, 307 | ); 308 | buildRules = ( 309 | ); 310 | dependencies = ( 311 | ); 312 | name = LLSegmentBar; 313 | productName = LLSegmentBar; 314 | productReference = 7BCE3424DB9A15F20A08D5377023441C /* LLSegmentBar.framework */; 315 | productType = "com.apple.product-type.framework"; 316 | }; 317 | AFB5A5AD64805E7ABA7DE4AD7141A1C8 /* Pods-LLSegmentBar_Tests */ = { 318 | isa = PBXNativeTarget; 319 | buildConfigurationList = 59019AA071A6B68A6CF7BFD38697ABB6 /* Build configuration list for PBXNativeTarget "Pods-LLSegmentBar_Tests" */; 320 | buildPhases = ( 321 | A35F2763C58BEF5E980D9B98AED6A2B3 /* Sources */, 322 | 1C32DE2E9F970CB96C972E35A88AB177 /* Frameworks */, 323 | B35263435B7441FA9E212F0A878083B5 /* Headers */, 324 | ); 325 | buildRules = ( 326 | ); 327 | dependencies = ( 328 | ); 329 | name = "Pods-LLSegmentBar_Tests"; 330 | productName = "Pods-LLSegmentBar_Tests"; 331 | productReference = B703687AF970456F164973E85D6CF0E9 /* Pods_LLSegmentBar_Tests.framework */; 332 | productType = "com.apple.product-type.framework"; 333 | }; 334 | /* End PBXNativeTarget section */ 335 | 336 | /* Begin PBXProject section */ 337 | D41D8CD98F00B204E9800998ECF8427E /* Project object */ = { 338 | isa = PBXProject; 339 | attributes = { 340 | LastSwiftUpdateCheck = 0830; 341 | LastUpgradeCheck = 0700; 342 | }; 343 | buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; 344 | compatibilityVersion = "Xcode 3.2"; 345 | developmentRegion = English; 346 | hasScannedForEncodings = 0; 347 | knownRegions = ( 348 | en, 349 | ); 350 | mainGroup = 7DB346D0F39D3F0E887471402A8071AB; 351 | productRefGroup = 4AA9752F5F66D1C965030EFACE74934D /* Products */; 352 | projectDirPath = ""; 353 | projectRoot = ""; 354 | targets = ( 355 | 72F1B10A9D9DEB5DF7659DB502938CB1 /* LLSegmentBar */, 356 | 45E6059A547900A8A403501BC95D5906 /* Pods-LLSegmentBar_Example */, 357 | AFB5A5AD64805E7ABA7DE4AD7141A1C8 /* Pods-LLSegmentBar_Tests */, 358 | ); 359 | }; 360 | /* End PBXProject section */ 361 | 362 | /* Begin PBXSourcesBuildPhase section */ 363 | 0F1F91E59FE9C4BCC422E164760BDF68 /* Sources */ = { 364 | isa = PBXSourcesBuildPhase; 365 | buildActionMask = 2147483647; 366 | files = ( 367 | 757A67A4716CCD6ABAA6298D493B6165 /* LLSegmentBar-dummy.m in Sources */, 368 | 2834BF8F04BD2FB4EB5DCE1EE112D3E1 /* LLSegmentBar.m in Sources */, 369 | FBCECEAEE85BFB4ED7690CBC50C0DC0D /* LLSegmentBarConfig.m in Sources */, 370 | CD67F9F45AE7C7D96466BFB32F7B1597 /* LLSegmentBarVC.m in Sources */, 371 | B899044538FEE923F3A9D30642354BE0 /* UIView+LLSegmentBar.m in Sources */, 372 | ); 373 | runOnlyForDeploymentPostprocessing = 0; 374 | }; 375 | A35F2763C58BEF5E980D9B98AED6A2B3 /* Sources */ = { 376 | isa = PBXSourcesBuildPhase; 377 | buildActionMask = 2147483647; 378 | files = ( 379 | E61C35473495C907CF88EDBB7B1B9665 /* Pods-LLSegmentBar_Tests-dummy.m in Sources */, 380 | ); 381 | runOnlyForDeploymentPostprocessing = 0; 382 | }; 383 | B3E025951375A315AF6A06D6A3D8846A /* Sources */ = { 384 | isa = PBXSourcesBuildPhase; 385 | buildActionMask = 2147483647; 386 | files = ( 387 | B908B9B5296ABFC6FDCF0D2BD531E1B2 /* Pods-LLSegmentBar_Example-dummy.m in Sources */, 388 | ); 389 | runOnlyForDeploymentPostprocessing = 0; 390 | }; 391 | /* End PBXSourcesBuildPhase section */ 392 | 393 | /* Begin PBXTargetDependency section */ 394 | FE484D910524C326BAB43B39C6E14ADD /* PBXTargetDependency */ = { 395 | isa = PBXTargetDependency; 396 | name = LLSegmentBar; 397 | target = 72F1B10A9D9DEB5DF7659DB502938CB1 /* LLSegmentBar */; 398 | targetProxy = F0DBC18B9BA61077C370AC957DE79308 /* PBXContainerItemProxy */; 399 | }; 400 | /* End PBXTargetDependency section */ 401 | 402 | /* Begin XCBuildConfiguration section */ 403 | 1383A14E064D6EF0BF3CAAE8CD6FF827 /* Release */ = { 404 | isa = XCBuildConfiguration; 405 | baseConfigurationReference = 1032FB1591962F5E90CE5CA89C6C21C2 /* Pods-LLSegmentBar_Example.release.xcconfig */; 406 | buildSettings = { 407 | CODE_SIGN_IDENTITY = ""; 408 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 409 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 410 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 411 | CURRENT_PROJECT_VERSION = 1; 412 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 413 | DEFINES_MODULE = YES; 414 | DYLIB_COMPATIBILITY_VERSION = 1; 415 | DYLIB_CURRENT_VERSION = 1; 416 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 417 | ENABLE_STRICT_OBJC_MSGSEND = YES; 418 | GCC_NO_COMMON_BLOCKS = YES; 419 | INFOPLIST_FILE = "Target Support Files/Pods-LLSegmentBar_Example/Info.plist"; 420 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 421 | IPHONEOS_DEPLOYMENT_TARGET = 8.3; 422 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 423 | MACH_O_TYPE = staticlib; 424 | MODULEMAP_FILE = "Target Support Files/Pods-LLSegmentBar_Example/Pods-LLSegmentBar_Example.modulemap"; 425 | MTL_ENABLE_DEBUG_INFO = NO; 426 | OTHER_LDFLAGS = ""; 427 | OTHER_LIBTOOLFLAGS = ""; 428 | PODS_ROOT = "$(SRCROOT)"; 429 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 430 | PRODUCT_NAME = Pods_LLSegmentBar_Example; 431 | SDKROOT = iphoneos; 432 | SKIP_INSTALL = YES; 433 | TARGETED_DEVICE_FAMILY = "1,2"; 434 | VERSIONING_SYSTEM = "apple-generic"; 435 | VERSION_INFO_PREFIX = ""; 436 | }; 437 | name = Release; 438 | }; 439 | 345CC476DF4A7516DBD2220CF5035FF3 /* Debug */ = { 440 | isa = XCBuildConfiguration; 441 | buildSettings = { 442 | ALWAYS_SEARCH_USER_PATHS = NO; 443 | CLANG_ANALYZER_NONNULL = YES; 444 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES; 445 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 446 | CLANG_CXX_LIBRARY = "libc++"; 447 | CLANG_ENABLE_MODULES = YES; 448 | CLANG_ENABLE_OBJC_ARC = YES; 449 | CLANG_WARN_BOOL_CONVERSION = YES; 450 | CLANG_WARN_CONSTANT_CONVERSION = YES; 451 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; 452 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 453 | CLANG_WARN_EMPTY_BODY = YES; 454 | CLANG_WARN_ENUM_CONVERSION = YES; 455 | CLANG_WARN_INFINITE_RECURSION = YES; 456 | CLANG_WARN_INT_CONVERSION = YES; 457 | CLANG_WARN_OBJC_ROOT_CLASS = YES; 458 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 459 | CLANG_WARN_UNREACHABLE_CODE = YES; 460 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 461 | CODE_SIGNING_REQUIRED = NO; 462 | COPY_PHASE_STRIP = NO; 463 | ENABLE_TESTABILITY = YES; 464 | GCC_C_LANGUAGE_STANDARD = gnu99; 465 | GCC_DYNAMIC_NO_PIC = NO; 466 | GCC_OPTIMIZATION_LEVEL = 0; 467 | GCC_PREPROCESSOR_DEFINITIONS = ( 468 | "POD_CONFIGURATION_DEBUG=1", 469 | "DEBUG=1", 470 | "$(inherited)", 471 | ); 472 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 473 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 474 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 475 | GCC_WARN_UNDECLARED_SELECTOR = YES; 476 | GCC_WARN_UNINITIALIZED_AUTOS = YES; 477 | GCC_WARN_UNUSED_FUNCTION = YES; 478 | GCC_WARN_UNUSED_VARIABLE = YES; 479 | IPHONEOS_DEPLOYMENT_TARGET = 8.3; 480 | ONLY_ACTIVE_ARCH = YES; 481 | PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; 482 | STRIP_INSTALLED_PRODUCT = NO; 483 | SYMROOT = "${SRCROOT}/../build"; 484 | }; 485 | name = Debug; 486 | }; 487 | 451F2FE645954DFD82B2C2E7027CC8E8 /* Release */ = { 488 | isa = XCBuildConfiguration; 489 | baseConfigurationReference = E98BF03A8CB858F517940626AF344DDC /* LLSegmentBar.xcconfig */; 490 | buildSettings = { 491 | CODE_SIGN_IDENTITY = ""; 492 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 493 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 494 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 495 | CURRENT_PROJECT_VERSION = 1; 496 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 497 | DEFINES_MODULE = YES; 498 | DYLIB_COMPATIBILITY_VERSION = 1; 499 | DYLIB_CURRENT_VERSION = 1; 500 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 501 | ENABLE_STRICT_OBJC_MSGSEND = YES; 502 | GCC_NO_COMMON_BLOCKS = YES; 503 | GCC_PREFIX_HEADER = "Target Support Files/LLSegmentBar/LLSegmentBar-prefix.pch"; 504 | INFOPLIST_FILE = "Target Support Files/LLSegmentBar/Info.plist"; 505 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 506 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 507 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 508 | MODULEMAP_FILE = "Target Support Files/LLSegmentBar/LLSegmentBar.modulemap"; 509 | MTL_ENABLE_DEBUG_INFO = NO; 510 | PRODUCT_NAME = LLSegmentBar; 511 | SDKROOT = iphoneos; 512 | SKIP_INSTALL = YES; 513 | TARGETED_DEVICE_FAMILY = "1,2"; 514 | VERSIONING_SYSTEM = "apple-generic"; 515 | VERSION_INFO_PREFIX = ""; 516 | }; 517 | name = Release; 518 | }; 519 | 56E04FC361E36AD83ECE04A64D574D33 /* Release */ = { 520 | isa = XCBuildConfiguration; 521 | baseConfigurationReference = 74FE8F2239E80668FC761898D1FC0AC2 /* Pods-LLSegmentBar_Tests.release.xcconfig */; 522 | buildSettings = { 523 | CODE_SIGN_IDENTITY = ""; 524 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 525 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 526 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 527 | CURRENT_PROJECT_VERSION = 1; 528 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 529 | DEFINES_MODULE = YES; 530 | DYLIB_COMPATIBILITY_VERSION = 1; 531 | DYLIB_CURRENT_VERSION = 1; 532 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 533 | ENABLE_STRICT_OBJC_MSGSEND = YES; 534 | GCC_NO_COMMON_BLOCKS = YES; 535 | INFOPLIST_FILE = "Target Support Files/Pods-LLSegmentBar_Tests/Info.plist"; 536 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 537 | IPHONEOS_DEPLOYMENT_TARGET = 8.3; 538 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 539 | MACH_O_TYPE = staticlib; 540 | MODULEMAP_FILE = "Target Support Files/Pods-LLSegmentBar_Tests/Pods-LLSegmentBar_Tests.modulemap"; 541 | MTL_ENABLE_DEBUG_INFO = NO; 542 | OTHER_LDFLAGS = ""; 543 | OTHER_LIBTOOLFLAGS = ""; 544 | PODS_ROOT = "$(SRCROOT)"; 545 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 546 | PRODUCT_NAME = Pods_LLSegmentBar_Tests; 547 | SDKROOT = iphoneos; 548 | SKIP_INSTALL = YES; 549 | TARGETED_DEVICE_FAMILY = "1,2"; 550 | VERSIONING_SYSTEM = "apple-generic"; 551 | VERSION_INFO_PREFIX = ""; 552 | }; 553 | name = Release; 554 | }; 555 | 717E77604BFBB04BEAF56608A1CB2EDE /* Release */ = { 556 | isa = XCBuildConfiguration; 557 | buildSettings = { 558 | ALWAYS_SEARCH_USER_PATHS = NO; 559 | CLANG_ANALYZER_NONNULL = YES; 560 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES; 561 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 562 | CLANG_CXX_LIBRARY = "libc++"; 563 | CLANG_ENABLE_MODULES = YES; 564 | CLANG_ENABLE_OBJC_ARC = YES; 565 | CLANG_WARN_BOOL_CONVERSION = YES; 566 | CLANG_WARN_CONSTANT_CONVERSION = YES; 567 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; 568 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 569 | CLANG_WARN_EMPTY_BODY = YES; 570 | CLANG_WARN_ENUM_CONVERSION = YES; 571 | CLANG_WARN_INFINITE_RECURSION = YES; 572 | CLANG_WARN_INT_CONVERSION = YES; 573 | CLANG_WARN_OBJC_ROOT_CLASS = YES; 574 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 575 | CLANG_WARN_UNREACHABLE_CODE = YES; 576 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 577 | CODE_SIGNING_REQUIRED = NO; 578 | COPY_PHASE_STRIP = YES; 579 | ENABLE_NS_ASSERTIONS = NO; 580 | GCC_C_LANGUAGE_STANDARD = gnu99; 581 | GCC_PREPROCESSOR_DEFINITIONS = ( 582 | "POD_CONFIGURATION_RELEASE=1", 583 | "$(inherited)", 584 | ); 585 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 586 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 587 | GCC_WARN_UNDECLARED_SELECTOR = YES; 588 | GCC_WARN_UNINITIALIZED_AUTOS = YES; 589 | GCC_WARN_UNUSED_FUNCTION = YES; 590 | GCC_WARN_UNUSED_VARIABLE = YES; 591 | IPHONEOS_DEPLOYMENT_TARGET = 8.3; 592 | PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; 593 | STRIP_INSTALLED_PRODUCT = NO; 594 | SYMROOT = "${SRCROOT}/../build"; 595 | VALIDATE_PRODUCT = YES; 596 | }; 597 | name = Release; 598 | }; 599 | 7F98BBFA9B9F8454B3261B30880FF8FB /* Debug */ = { 600 | isa = XCBuildConfiguration; 601 | baseConfigurationReference = E6F36C7AFCF75870ADA9E370D57A7B64 /* Pods-LLSegmentBar_Tests.debug.xcconfig */; 602 | buildSettings = { 603 | CODE_SIGN_IDENTITY = ""; 604 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 605 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 606 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 607 | CURRENT_PROJECT_VERSION = 1; 608 | DEBUG_INFORMATION_FORMAT = dwarf; 609 | DEFINES_MODULE = YES; 610 | DYLIB_COMPATIBILITY_VERSION = 1; 611 | DYLIB_CURRENT_VERSION = 1; 612 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 613 | ENABLE_STRICT_OBJC_MSGSEND = YES; 614 | GCC_NO_COMMON_BLOCKS = YES; 615 | INFOPLIST_FILE = "Target Support Files/Pods-LLSegmentBar_Tests/Info.plist"; 616 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 617 | IPHONEOS_DEPLOYMENT_TARGET = 8.3; 618 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 619 | MACH_O_TYPE = staticlib; 620 | MODULEMAP_FILE = "Target Support Files/Pods-LLSegmentBar_Tests/Pods-LLSegmentBar_Tests.modulemap"; 621 | MTL_ENABLE_DEBUG_INFO = YES; 622 | OTHER_LDFLAGS = ""; 623 | OTHER_LIBTOOLFLAGS = ""; 624 | PODS_ROOT = "$(SRCROOT)"; 625 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 626 | PRODUCT_NAME = Pods_LLSegmentBar_Tests; 627 | SDKROOT = iphoneos; 628 | SKIP_INSTALL = YES; 629 | TARGETED_DEVICE_FAMILY = "1,2"; 630 | VERSIONING_SYSTEM = "apple-generic"; 631 | VERSION_INFO_PREFIX = ""; 632 | }; 633 | name = Debug; 634 | }; 635 | A8C189696B280B415506D81371B902C8 /* Debug */ = { 636 | isa = XCBuildConfiguration; 637 | baseConfigurationReference = 3E7D886BD1BF94BF6EAA96CA4738C73D /* Pods-LLSegmentBar_Example.debug.xcconfig */; 638 | buildSettings = { 639 | CODE_SIGN_IDENTITY = ""; 640 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 641 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 642 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 643 | CURRENT_PROJECT_VERSION = 1; 644 | DEBUG_INFORMATION_FORMAT = dwarf; 645 | DEFINES_MODULE = YES; 646 | DYLIB_COMPATIBILITY_VERSION = 1; 647 | DYLIB_CURRENT_VERSION = 1; 648 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 649 | ENABLE_STRICT_OBJC_MSGSEND = YES; 650 | GCC_NO_COMMON_BLOCKS = YES; 651 | INFOPLIST_FILE = "Target Support Files/Pods-LLSegmentBar_Example/Info.plist"; 652 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 653 | IPHONEOS_DEPLOYMENT_TARGET = 8.3; 654 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 655 | MACH_O_TYPE = staticlib; 656 | MODULEMAP_FILE = "Target Support Files/Pods-LLSegmentBar_Example/Pods-LLSegmentBar_Example.modulemap"; 657 | MTL_ENABLE_DEBUG_INFO = YES; 658 | OTHER_LDFLAGS = ""; 659 | OTHER_LIBTOOLFLAGS = ""; 660 | PODS_ROOT = "$(SRCROOT)"; 661 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 662 | PRODUCT_NAME = Pods_LLSegmentBar_Example; 663 | SDKROOT = iphoneos; 664 | SKIP_INSTALL = YES; 665 | TARGETED_DEVICE_FAMILY = "1,2"; 666 | VERSIONING_SYSTEM = "apple-generic"; 667 | VERSION_INFO_PREFIX = ""; 668 | }; 669 | name = Debug; 670 | }; 671 | DA7913104541B241E38450E8A00A1FD5 /* Debug */ = { 672 | isa = XCBuildConfiguration; 673 | baseConfigurationReference = E98BF03A8CB858F517940626AF344DDC /* LLSegmentBar.xcconfig */; 674 | buildSettings = { 675 | CODE_SIGN_IDENTITY = ""; 676 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 677 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 678 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 679 | CURRENT_PROJECT_VERSION = 1; 680 | DEBUG_INFORMATION_FORMAT = dwarf; 681 | DEFINES_MODULE = YES; 682 | DYLIB_COMPATIBILITY_VERSION = 1; 683 | DYLIB_CURRENT_VERSION = 1; 684 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 685 | ENABLE_STRICT_OBJC_MSGSEND = YES; 686 | GCC_NO_COMMON_BLOCKS = YES; 687 | GCC_PREFIX_HEADER = "Target Support Files/LLSegmentBar/LLSegmentBar-prefix.pch"; 688 | INFOPLIST_FILE = "Target Support Files/LLSegmentBar/Info.plist"; 689 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 690 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 691 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 692 | MODULEMAP_FILE = "Target Support Files/LLSegmentBar/LLSegmentBar.modulemap"; 693 | MTL_ENABLE_DEBUG_INFO = YES; 694 | PRODUCT_NAME = LLSegmentBar; 695 | SDKROOT = iphoneos; 696 | SKIP_INSTALL = YES; 697 | TARGETED_DEVICE_FAMILY = "1,2"; 698 | VERSIONING_SYSTEM = "apple-generic"; 699 | VERSION_INFO_PREFIX = ""; 700 | }; 701 | name = Debug; 702 | }; 703 | /* End XCBuildConfiguration section */ 704 | 705 | /* Begin XCConfigurationList section */ 706 | 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { 707 | isa = XCConfigurationList; 708 | buildConfigurations = ( 709 | 345CC476DF4A7516DBD2220CF5035FF3 /* Debug */, 710 | 717E77604BFBB04BEAF56608A1CB2EDE /* Release */, 711 | ); 712 | defaultConfigurationIsVisible = 0; 713 | defaultConfigurationName = Release; 714 | }; 715 | 55172C4A2965799C36AC19BCCBD56004 /* Build configuration list for PBXNativeTarget "LLSegmentBar" */ = { 716 | isa = XCConfigurationList; 717 | buildConfigurations = ( 718 | DA7913104541B241E38450E8A00A1FD5 /* Debug */, 719 | 451F2FE645954DFD82B2C2E7027CC8E8 /* Release */, 720 | ); 721 | defaultConfigurationIsVisible = 0; 722 | defaultConfigurationName = Release; 723 | }; 724 | 59019AA071A6B68A6CF7BFD38697ABB6 /* Build configuration list for PBXNativeTarget "Pods-LLSegmentBar_Tests" */ = { 725 | isa = XCConfigurationList; 726 | buildConfigurations = ( 727 | 7F98BBFA9B9F8454B3261B30880FF8FB /* Debug */, 728 | 56E04FC361E36AD83ECE04A64D574D33 /* Release */, 729 | ); 730 | defaultConfigurationIsVisible = 0; 731 | defaultConfigurationName = Release; 732 | }; 733 | 8D044E19BCFF4EF020D60B7A49457861 /* Build configuration list for PBXNativeTarget "Pods-LLSegmentBar_Example" */ = { 734 | isa = XCConfigurationList; 735 | buildConfigurations = ( 736 | A8C189696B280B415506D81371B902C8 /* Debug */, 737 | 1383A14E064D6EF0BF3CAAE8CD6FF827 /* Release */, 738 | ); 739 | defaultConfigurationIsVisible = 0; 740 | defaultConfigurationName = Release; 741 | }; 742 | /* End XCConfigurationList section */ 743 | }; 744 | rootObject = D41D8CD98F00B204E9800998ECF8427E /* Project object */; 745 | } 746 | -------------------------------------------------------------------------------- /Example/Pods/Pods.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/LLSegmentBar/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 0.1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/LLSegmentBar/LLSegmentBar-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_LLSegmentBar : NSObject 3 | @end 4 | @implementation PodsDummy_LLSegmentBar 5 | @end 6 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/LLSegmentBar/LLSegmentBar-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/LLSegmentBar/LLSegmentBar-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | #import "LLSegmentBar.h" 14 | #import "LLSegmentBarConfig.h" 15 | #import "LLSegmentBarVC.h" 16 | #import "UIView+LLSegmentBar.h" 17 | 18 | FOUNDATION_EXPORT double LLSegmentBarVersionNumber; 19 | FOUNDATION_EXPORT const unsigned char LLSegmentBarVersionString[]; 20 | 21 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/LLSegmentBar/LLSegmentBar.modulemap: -------------------------------------------------------------------------------- 1 | framework module LLSegmentBar { 2 | umbrella header "LLSegmentBar-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/LLSegmentBar/LLSegmentBar.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/LLSegmentBar 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" 4 | PODS_BUILD_DIR = $BUILD_DIR 5 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_ROOT = ${SRCROOT} 7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/../.. 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LLSegmentBar_Example/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LLSegmentBar_Example/Pods-LLSegmentBar_Example-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | 4 | ## LLSegmentBar 5 | 6 | <<<<<<< HEAD 7 | Copyright (c) 2017 416997919@qq.com <416997919@qq.com> 8 | ======= 9 | MIT License 10 | 11 | Copyright (c) 2017 liushaohua 12 | >>>>>>> 7e4ce6d648fefc09a01461c8ab0accfc77553327 13 | 14 | Permission is hereby granted, free of charge, to any person obtaining a copy 15 | of this software and associated documentation files (the "Software"), to deal 16 | in the Software without restriction, including without limitation the rights 17 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 18 | copies of the Software, and to permit persons to whom the Software is 19 | furnished to do so, subject to the following conditions: 20 | 21 | <<<<<<< HEAD 22 | The above copyright notice and this permission notice shall be included in 23 | all copies or substantial portions of the Software. 24 | ======= 25 | The above copyright notice and this permission notice shall be included in all 26 | copies or substantial portions of the Software. 27 | >>>>>>> 7e4ce6d648fefc09a01461c8ab0accfc77553327 28 | 29 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 30 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 31 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 32 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 33 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 34 | <<<<<<< HEAD 35 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 36 | THE SOFTWARE. 37 | ======= 38 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 39 | SOFTWARE. 40 | >>>>>>> 7e4ce6d648fefc09a01461c8ab0accfc77553327 41 | 42 | Generated by CocoaPods - https://cocoapods.org 43 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LLSegmentBar_Example/Pods-LLSegmentBar_Example-acknowledgements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreferenceSpecifiers 6 | 7 | 8 | FooterText 9 | This application makes use of the following third party libraries: 10 | Title 11 | Acknowledgements 12 | Type 13 | PSGroupSpecifier 14 | 15 | 16 | FooterText 17 | <<<<<<< HEAD 18 | Copyright (c) 2017 416997919@qq.com <416997919@qq.com> 19 | ======= 20 | MIT License 21 | 22 | Copyright (c) 2017 liushaohua 23 | >>>>>>> 7e4ce6d648fefc09a01461c8ab0accfc77553327 24 | 25 | Permission is hereby granted, free of charge, to any person obtaining a copy 26 | of this software and associated documentation files (the "Software"), to deal 27 | in the Software without restriction, including without limitation the rights 28 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 29 | copies of the Software, and to permit persons to whom the Software is 30 | furnished to do so, subject to the following conditions: 31 | 32 | <<<<<<< HEAD 33 | The above copyright notice and this permission notice shall be included in 34 | all copies or substantial portions of the Software. 35 | ======= 36 | The above copyright notice and this permission notice shall be included in all 37 | copies or substantial portions of the Software. 38 | >>>>>>> 7e4ce6d648fefc09a01461c8ab0accfc77553327 39 | 40 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 41 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 42 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 43 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 44 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 45 | <<<<<<< HEAD 46 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 47 | THE SOFTWARE. 48 | ======= 49 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 50 | SOFTWARE. 51 | >>>>>>> 7e4ce6d648fefc09a01461c8ab0accfc77553327 52 | 53 | License 54 | MIT 55 | Title 56 | LLSegmentBar 57 | Type 58 | PSGroupSpecifier 59 | 60 | 61 | FooterText 62 | Generated by CocoaPods - https://cocoapods.org 63 | Title 64 | 65 | Type 66 | PSGroupSpecifier 67 | 68 | 69 | StringsTable 70 | Acknowledgements 71 | Title 72 | Acknowledgements 73 | 74 | 75 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LLSegmentBar_Example/Pods-LLSegmentBar_Example-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_LLSegmentBar_Example : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_LLSegmentBar_Example 5 | @end 6 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LLSegmentBar_Example/Pods-LLSegmentBar_Example-frameworks.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 5 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 6 | 7 | SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" 8 | 9 | install_framework() 10 | { 11 | if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then 12 | local source="${BUILT_PRODUCTS_DIR}/$1" 13 | elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then 14 | local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" 15 | elif [ -r "$1" ]; then 16 | local source="$1" 17 | fi 18 | 19 | local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 20 | 21 | if [ -L "${source}" ]; then 22 | echo "Symlinked..." 23 | source="$(readlink "${source}")" 24 | fi 25 | 26 | # use filter instead of exclude so missing patterns dont' throw errors 27 | echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" 28 | rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" 29 | 30 | local basename 31 | basename="$(basename -s .framework "$1")" 32 | binary="${destination}/${basename}.framework/${basename}" 33 | if ! [ -r "$binary" ]; then 34 | binary="${destination}/${basename}" 35 | fi 36 | 37 | # Strip invalid architectures so "fat" simulator / device frameworks work on device 38 | if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then 39 | strip_invalid_archs "$binary" 40 | fi 41 | 42 | # Resign the code if required by the build settings to avoid unstable apps 43 | code_sign_if_enabled "${destination}/$(basename "$1")" 44 | 45 | # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. 46 | if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then 47 | local swift_runtime_libs 48 | swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) 49 | for lib in $swift_runtime_libs; do 50 | echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" 51 | rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" 52 | code_sign_if_enabled "${destination}/${lib}" 53 | done 54 | fi 55 | } 56 | 57 | # Signs a framework with the provided identity 58 | code_sign_if_enabled() { 59 | if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then 60 | # Use the current code_sign_identitiy 61 | echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" 62 | local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements '$1'" 63 | 64 | if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then 65 | code_sign_cmd="$code_sign_cmd &" 66 | fi 67 | echo "$code_sign_cmd" 68 | eval "$code_sign_cmd" 69 | fi 70 | } 71 | 72 | # Strip invalid architectures 73 | strip_invalid_archs() { 74 | binary="$1" 75 | # Get architectures for current file 76 | archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" 77 | stripped="" 78 | for arch in $archs; do 79 | if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then 80 | # Strip non-valid architectures in-place 81 | lipo -remove "$arch" -output "$binary" "$binary" || exit 1 82 | stripped="$stripped $arch" 83 | fi 84 | done 85 | if [[ "$stripped" ]]; then 86 | echo "Stripped $binary of architectures:$stripped" 87 | fi 88 | } 89 | 90 | 91 | if [[ "$CONFIGURATION" == "Debug" ]]; then 92 | install_framework "$BUILT_PRODUCTS_DIR/LLSegmentBar/LLSegmentBar.framework" 93 | fi 94 | if [[ "$CONFIGURATION" == "Release" ]]; then 95 | install_framework "$BUILT_PRODUCTS_DIR/LLSegmentBar/LLSegmentBar.framework" 96 | fi 97 | if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then 98 | wait 99 | fi 100 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LLSegmentBar_Example/Pods-LLSegmentBar_Example-resources.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 5 | 6 | RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt 7 | > "$RESOURCES_TO_COPY" 8 | 9 | XCASSET_FILES=() 10 | 11 | case "${TARGETED_DEVICE_FAMILY}" in 12 | 1,2) 13 | TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" 14 | ;; 15 | 1) 16 | TARGET_DEVICE_ARGS="--target-device iphone" 17 | ;; 18 | 2) 19 | TARGET_DEVICE_ARGS="--target-device ipad" 20 | ;; 21 | 3) 22 | TARGET_DEVICE_ARGS="--target-device tv" 23 | ;; 24 | 4) 25 | TARGET_DEVICE_ARGS="--target-device watch" 26 | ;; 27 | *) 28 | TARGET_DEVICE_ARGS="--target-device mac" 29 | ;; 30 | esac 31 | 32 | install_resource() 33 | { 34 | if [[ "$1" = /* ]] ; then 35 | RESOURCE_PATH="$1" 36 | else 37 | RESOURCE_PATH="${PODS_ROOT}/$1" 38 | fi 39 | if [[ ! -e "$RESOURCE_PATH" ]] ; then 40 | cat << EOM 41 | error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. 42 | EOM 43 | exit 1 44 | fi 45 | case $RESOURCE_PATH in 46 | *.storyboard) 47 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" 48 | ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} 49 | ;; 50 | *.xib) 51 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" 52 | ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} 53 | ;; 54 | *.framework) 55 | echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 56 | mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 57 | echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 58 | rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 59 | ;; 60 | *.xcdatamodel) 61 | echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" 62 | xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" 63 | ;; 64 | *.xcdatamodeld) 65 | echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" 66 | xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" 67 | ;; 68 | *.xcmappingmodel) 69 | echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" 70 | xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" 71 | ;; 72 | *.xcassets) 73 | ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH" 74 | XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") 75 | ;; 76 | *) 77 | echo "$RESOURCE_PATH" 78 | echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" 79 | ;; 80 | esac 81 | } 82 | 83 | mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 84 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 85 | if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then 86 | mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 87 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 88 | fi 89 | rm -f "$RESOURCES_TO_COPY" 90 | 91 | if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] 92 | then 93 | # Find all other xcassets (this unfortunately includes those of path pods and other targets). 94 | OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) 95 | while read line; do 96 | if [[ $line != "${PODS_ROOT}*" ]]; then 97 | XCASSET_FILES+=("$line") 98 | fi 99 | done <<<"$OTHER_XCASSETS" 100 | 101 | printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 102 | fi 103 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LLSegmentBar_Example/Pods-LLSegmentBar_Example-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_LLSegmentBar_ExampleVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_LLSegmentBar_ExampleVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LLSegmentBar_Example/Pods-LLSegmentBar_Example.debug.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/LLSegmentBar" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 4 | OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/LLSegmentBar/LLSegmentBar.framework/Headers" 5 | OTHER_LDFLAGS = $(inherited) -framework "LLSegmentBar" 6 | PODS_BUILD_DIR = $BUILD_DIR 7 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 9 | PODS_ROOT = ${SRCROOT}/Pods 10 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LLSegmentBar_Example/Pods-LLSegmentBar_Example.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_LLSegmentBar_Example { 2 | umbrella header "Pods-LLSegmentBar_Example-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LLSegmentBar_Example/Pods-LLSegmentBar_Example.release.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/LLSegmentBar" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 4 | OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/LLSegmentBar/LLSegmentBar.framework/Headers" 5 | OTHER_LDFLAGS = $(inherited) -framework "LLSegmentBar" 6 | PODS_BUILD_DIR = $BUILD_DIR 7 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 9 | PODS_ROOT = ${SRCROOT}/Pods 10 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LLSegmentBar_Tests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LLSegmentBar_Tests/Pods-LLSegmentBar_Tests-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | Generated by CocoaPods - https://cocoapods.org 4 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LLSegmentBar_Tests/Pods-LLSegmentBar_Tests-acknowledgements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreferenceSpecifiers 6 | 7 | 8 | FooterText 9 | This application makes use of the following third party libraries: 10 | Title 11 | Acknowledgements 12 | Type 13 | PSGroupSpecifier 14 | 15 | 16 | FooterText 17 | Generated by CocoaPods - https://cocoapods.org 18 | Title 19 | 20 | Type 21 | PSGroupSpecifier 22 | 23 | 24 | StringsTable 25 | Acknowledgements 26 | Title 27 | Acknowledgements 28 | 29 | 30 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LLSegmentBar_Tests/Pods-LLSegmentBar_Tests-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_LLSegmentBar_Tests : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_LLSegmentBar_Tests 5 | @end 6 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LLSegmentBar_Tests/Pods-LLSegmentBar_Tests-frameworks.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 5 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 6 | 7 | SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" 8 | 9 | install_framework() 10 | { 11 | if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then 12 | local source="${BUILT_PRODUCTS_DIR}/$1" 13 | elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then 14 | local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" 15 | elif [ -r "$1" ]; then 16 | local source="$1" 17 | fi 18 | 19 | local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 20 | 21 | if [ -L "${source}" ]; then 22 | echo "Symlinked..." 23 | source="$(readlink "${source}")" 24 | fi 25 | 26 | # use filter instead of exclude so missing patterns dont' throw errors 27 | echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" 28 | rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" 29 | 30 | local basename 31 | basename="$(basename -s .framework "$1")" 32 | binary="${destination}/${basename}.framework/${basename}" 33 | if ! [ -r "$binary" ]; then 34 | binary="${destination}/${basename}" 35 | fi 36 | 37 | # Strip invalid architectures so "fat" simulator / device frameworks work on device 38 | if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then 39 | strip_invalid_archs "$binary" 40 | fi 41 | 42 | # Resign the code if required by the build settings to avoid unstable apps 43 | code_sign_if_enabled "${destination}/$(basename "$1")" 44 | 45 | # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. 46 | if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then 47 | local swift_runtime_libs 48 | swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) 49 | for lib in $swift_runtime_libs; do 50 | echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" 51 | rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" 52 | code_sign_if_enabled "${destination}/${lib}" 53 | done 54 | fi 55 | } 56 | 57 | # Signs a framework with the provided identity 58 | code_sign_if_enabled() { 59 | if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then 60 | # Use the current code_sign_identitiy 61 | echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" 62 | local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements '$1'" 63 | 64 | if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then 65 | code_sign_cmd="$code_sign_cmd &" 66 | fi 67 | echo "$code_sign_cmd" 68 | eval "$code_sign_cmd" 69 | fi 70 | } 71 | 72 | # Strip invalid architectures 73 | strip_invalid_archs() { 74 | binary="$1" 75 | # Get architectures for current file 76 | archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" 77 | stripped="" 78 | for arch in $archs; do 79 | if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then 80 | # Strip non-valid architectures in-place 81 | lipo -remove "$arch" -output "$binary" "$binary" || exit 1 82 | stripped="$stripped $arch" 83 | fi 84 | done 85 | if [[ "$stripped" ]]; then 86 | echo "Stripped $binary of architectures:$stripped" 87 | fi 88 | } 89 | 90 | if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then 91 | wait 92 | fi 93 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LLSegmentBar_Tests/Pods-LLSegmentBar_Tests-resources.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 5 | 6 | RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt 7 | > "$RESOURCES_TO_COPY" 8 | 9 | XCASSET_FILES=() 10 | 11 | case "${TARGETED_DEVICE_FAMILY}" in 12 | 1,2) 13 | TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" 14 | ;; 15 | 1) 16 | TARGET_DEVICE_ARGS="--target-device iphone" 17 | ;; 18 | 2) 19 | TARGET_DEVICE_ARGS="--target-device ipad" 20 | ;; 21 | 3) 22 | TARGET_DEVICE_ARGS="--target-device tv" 23 | ;; 24 | 4) 25 | TARGET_DEVICE_ARGS="--target-device watch" 26 | ;; 27 | *) 28 | TARGET_DEVICE_ARGS="--target-device mac" 29 | ;; 30 | esac 31 | 32 | install_resource() 33 | { 34 | if [[ "$1" = /* ]] ; then 35 | RESOURCE_PATH="$1" 36 | else 37 | RESOURCE_PATH="${PODS_ROOT}/$1" 38 | fi 39 | if [[ ! -e "$RESOURCE_PATH" ]] ; then 40 | cat << EOM 41 | error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. 42 | EOM 43 | exit 1 44 | fi 45 | case $RESOURCE_PATH in 46 | *.storyboard) 47 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" 48 | ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} 49 | ;; 50 | *.xib) 51 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" 52 | ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} 53 | ;; 54 | *.framework) 55 | echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 56 | mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 57 | echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 58 | rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 59 | ;; 60 | *.xcdatamodel) 61 | echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" 62 | xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" 63 | ;; 64 | *.xcdatamodeld) 65 | echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" 66 | xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" 67 | ;; 68 | *.xcmappingmodel) 69 | echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" 70 | xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" 71 | ;; 72 | *.xcassets) 73 | ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH" 74 | XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") 75 | ;; 76 | *) 77 | echo "$RESOURCE_PATH" 78 | echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" 79 | ;; 80 | esac 81 | } 82 | 83 | mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 84 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 85 | if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then 86 | mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 87 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 88 | fi 89 | rm -f "$RESOURCES_TO_COPY" 90 | 91 | if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] 92 | then 93 | # Find all other xcassets (this unfortunately includes those of path pods and other targets). 94 | OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) 95 | while read line; do 96 | if [[ $line != "${PODS_ROOT}*" ]]; then 97 | XCASSET_FILES+=("$line") 98 | fi 99 | done <<<"$OTHER_XCASSETS" 100 | 101 | printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 102 | fi 103 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LLSegmentBar_Tests/Pods-LLSegmentBar_Tests-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_LLSegmentBar_TestsVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_LLSegmentBar_TestsVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LLSegmentBar_Tests/Pods-LLSegmentBar_Tests.debug.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/LLSegmentBar" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 4 | OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/LLSegmentBar/LLSegmentBar.framework/Headers" 5 | PODS_BUILD_DIR = $BUILD_DIR 6 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 8 | PODS_ROOT = ${SRCROOT}/Pods 9 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LLSegmentBar_Tests/Pods-LLSegmentBar_Tests.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_LLSegmentBar_Tests { 2 | umbrella header "Pods-LLSegmentBar_Tests-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LLSegmentBar_Tests/Pods-LLSegmentBar_Tests.release.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/LLSegmentBar" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 4 | OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/LLSegmentBar/LLSegmentBar.framework/Headers" 5 | PODS_BUILD_DIR = $BUILD_DIR 6 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 8 | PODS_ROOT = ${SRCROOT}/Pods 9 | -------------------------------------------------------------------------------- /Example/Tests/Tests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /Example/Tests/Tests-Prefix.pch: -------------------------------------------------------------------------------- 1 | // The contents of this file are implicitly included at the beginning of every test case source file. 2 | 3 | #ifdef __OBJC__ 4 | 5 | 6 | 7 | #endif 8 | -------------------------------------------------------------------------------- /Example/Tests/Tests.m: -------------------------------------------------------------------------------- 1 | // 2 | // LLSegmentBarTests.m 3 | // LLSegmentBarTests 4 | // 5 | // Created by 416997919@qq.com on 06/03/2017. 6 | // Copyright (c) 2017 416997919@qq.com. All rights reserved. 7 | // 8 | 9 | @import XCTest; 10 | 11 | @interface Tests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation Tests 16 | 17 | - (void)setUp 18 | { 19 | [super setUp]; 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | } 22 | 23 | - (void)tearDown 24 | { 25 | // Put teardown code here. This method is called after the invocation of each test method in the class. 26 | [super tearDown]; 27 | } 28 | 29 | - (void)testExample 30 | { 31 | XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__); 32 | } 33 | 34 | @end 35 | 36 | -------------------------------------------------------------------------------- /Example/Tests/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | <<<<<<< HEAD 2 | Copyright (c) 2017 416997919@qq.com <416997919@qq.com> 3 | ======= 4 | MIT License 5 | 6 | Copyright (c) 2017 liushaohua 7 | >>>>>>> 7e4ce6d648fefc09a01461c8ab0accfc77553327 8 | 9 | Permission is hereby granted, free of charge, to any person obtaining a copy 10 | of this software and associated documentation files (the "Software"), to deal 11 | in the Software without restriction, including without limitation the rights 12 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | copies of the Software, and to permit persons to whom the Software is 14 | furnished to do so, subject to the following conditions: 15 | 16 | <<<<<<< HEAD 17 | The above copyright notice and this permission notice shall be included in 18 | all copies or substantial portions of the Software. 19 | ======= 20 | The above copyright notice and this permission notice shall be included in all 21 | copies or substantial portions of the Software. 22 | >>>>>>> 7e4ce6d648fefc09a01461c8ab0accfc77553327 23 | 24 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 25 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 26 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 27 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 28 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 29 | <<<<<<< HEAD 30 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 31 | THE SOFTWARE. 32 | ======= 33 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 34 | SOFTWARE. 35 | >>>>>>> 7e4ce6d648fefc09a01461c8ab0accfc77553327 36 | -------------------------------------------------------------------------------- /LLSegmentBar.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuniuliuniu/LLSegmentBar/32a17f3173251870a76fc5b5bf6d8c7c5a1a3aec/LLSegmentBar.gif -------------------------------------------------------------------------------- /LLSegmentBar.podspec: -------------------------------------------------------------------------------- 1 | 2 | Pod::Spec.new do |s| 3 | s.name = 'LLSegmentBar' 4 | s.version = '0.0.1' 5 | s.summary = 'LLSegmentBar' 6 | s.description = <<-DESC 7 | LLSegmentBar tag Label 8 | DESC 9 | s.homepage = 'https://github.com/liuniuliuniu/LLSegmentBar' 10 | s.license = { :type => 'MIT', :file => 'LICENSE' } 11 | s.author = { '416997919@qq.com' => '416997919@qq.com' } 12 | s.source = { :git => 'https://github.com/liuniuliuniu/LLSegmentBar.git', :tag => s.version.to_s } 13 | s.ios.deployment_target = '8.0' 14 | s.source_files = 'LLSegmentBar/Classes/**/*' 15 | s.requires_arc = true 16 | 17 | end 18 | -------------------------------------------------------------------------------- /LLSegmentBar/Assets/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuniuliuniu/LLSegmentBar/32a17f3173251870a76fc5b5bf6d8c7c5a1a3aec/LLSegmentBar/Assets/.gitkeep -------------------------------------------------------------------------------- /LLSegmentBar/Classes/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuniuliuniu/LLSegmentBar/32a17f3173251870a76fc5b5bf6d8c7c5a1a3aec/LLSegmentBar/Classes/.gitkeep -------------------------------------------------------------------------------- /LLSegmentBar/Classes/LLSegmentBar.h: -------------------------------------------------------------------------------- 1 | // 2 | // LLSegmentBar.h 3 | // LLSegmentBar 4 | // 5 | // Created by liushaohua on 2017/6/3. 6 | // Copyright © 2017年 416997919@qq.com. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "LLSegmentBarConfig.h" 11 | 12 | @class LLSegmentBar; 13 | 14 | @protocol LLSegmentBarDelegate 15 | 16 | /** 17 | 通知外界内部的点击数据 18 | 19 | @param segmentBar segmentBar 20 | @param toIndex 选中的索引从0 开始 21 | @param fromIndex 上一个索引 22 | */ 23 | - (void)segmentBar:(LLSegmentBar *)segmentBar didSelectIndex: (NSInteger)toIndex fromIndex: (NSInteger)fromIndex; 24 | 25 | @end 26 | 27 | 28 | @interface LLSegmentBar : UIView 29 | 30 | /** 31 | 快速创建一个选项卡控件 32 | 33 | @param frame frame 34 | @return segment 35 | */ 36 | + (instancetype)segmentBarWithFrame: (CGRect)frame; 37 | /**代理*/ 38 | @property (nonatomic,weak) id delegate; 39 | /**数据源*/ 40 | @property (nonatomic, strong)NSArray *items; 41 | /**当前选中的索引,双向设置*/ 42 | @property (nonatomic,assign) NSInteger selectIndex; 43 | 44 | - (void)updateWithConfig:(void(^)(LLSegmentBarConfig *config))configBlock; 45 | 46 | @end 47 | -------------------------------------------------------------------------------- /LLSegmentBar/Classes/LLSegmentBar.m: -------------------------------------------------------------------------------- 1 | // 2 | // LLSegmentBar.m 3 | // LLSegmentBar 4 | // 5 | // Created by liushaohua on 2017/6/3. 6 | // Copyright © 2017年 416997919@qq.com. All rights reserved. 7 | // 8 | 9 | #import "LLSegmentBar.h" 10 | #import "UIView+LLSegmentBar.h" 11 | 12 | #define KMinMargin 30 13 | 14 | @interface LLSegmentBar () 15 | 16 | /** 内容承载视图 */ 17 | @property (nonatomic, weak) UIScrollView *contentView; 18 | /** 添加的按钮数据 */ 19 | @property (nonatomic, strong) NSMutableArray *itemBtns; 20 | /** 指示器 */ 21 | @property (nonatomic, weak) UIView *indicatorView; 22 | 23 | @property (nonatomic, strong) LLSegmentBarConfig *config; 24 | 25 | @end 26 | 27 | @implementation LLSegmentBar{ 28 | // 记录最后一次点击的按钮 29 | UIButton *_lastBtn; 30 | } 31 | 32 | + (instancetype)segmentBarWithFrame:(CGRect)frame{ 33 | LLSegmentBar *segmentBar = [[LLSegmentBar alloc]initWithFrame:frame]; 34 | return segmentBar; 35 | } 36 | 37 | - (instancetype)initWithFrame:(CGRect)frame{ 38 | if (self = [super initWithFrame:frame]) { 39 | self.backgroundColor = self.config.sBBackColor; 40 | } 41 | return self; 42 | } 43 | 44 | - (void)updateWithConfig:(void (^)(LLSegmentBarConfig *))configBlock{ 45 | if (configBlock) { 46 | configBlock(self.config); 47 | } 48 | // 按照当前的self.config 进行刷新 49 | self.backgroundColor = self.config.sBBackColor; 50 | self.indicatorView.backgroundColor = self.config.indicatorC; 51 | for (UIButton *btn in self.itemBtns) { 52 | [btn setTitleColor:self.config.itemNC forState:UIControlStateNormal]; 53 | [btn setTitleColor:self.config.itemSC forState:UIControlStateSelected]; 54 | btn.titleLabel.font = self.config.itemF; 55 | } 56 | 57 | [self setNeedsLayout]; 58 | [self layoutIfNeeded]; 59 | 60 | } 61 | 62 | - (void)setSelectIndex:(NSInteger)selectIndex{ 63 | 64 | if (self.items.count == 0 || selectIndex < 0 || selectIndex > self.itemBtns.count- 1) { 65 | return; 66 | } 67 | 68 | 69 | _selectIndex = selectIndex; 70 | UIButton *btn = self.itemBtns[selectIndex]; 71 | [self btnClick:btn]; 72 | } 73 | 74 | - (void)setItems:(NSArray *)items{ 75 | _items = items; 76 | // 删除之前添加过多的组件 77 | [self.itemBtns makeObjectsPerformSelector:@selector(removeFromSuperview)]; 78 | self.itemBtns = nil; 79 | 80 | // 根据所有的选项数据源 创建Button 添加到内容视图 81 | for (NSString *item in items) { 82 | UIButton *btn = [[UIButton alloc]init]; 83 | btn.tag = self.itemBtns.count; 84 | [btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchDown]; 85 | [btn setTitleColor:self.config.itemNC forState:UIControlStateNormal]; 86 | [btn setTitleColor:self.config.itemSC forState:UIControlStateSelected]; 87 | btn.titleLabel.font = self.config.itemF; 88 | [btn setTitle:item forState:UIControlStateNormal]; 89 | [self.contentView addSubview:btn]; 90 | [self.itemBtns addObject:btn]; 91 | } 92 | 93 | [self setNeedsLayout]; 94 | [self layoutIfNeeded]; 95 | } 96 | 97 | #pragma mark - private 98 | - (void)btnClick:(UIButton *)sender{ 99 | 100 | if ([self.delegate respondsToSelector:@selector(segmentBar:didSelectIndex:fromIndex:)]) { 101 | [self.delegate segmentBar:self didSelectIndex:sender.tag fromIndex:_lastBtn.tag]; 102 | } 103 | 104 | _selectIndex = sender.tag; 105 | 106 | _lastBtn.selected = NO; 107 | sender.selected = YES; 108 | _lastBtn = sender; 109 | 110 | [UIView animateWithDuration:0.1 animations:^{ 111 | self.indicatorView.width = sender.width + self.config.indicatorW * 2; 112 | self.indicatorView.centerX = sender.centerX; 113 | }]; 114 | 115 | // 滚动到Btn的位置 116 | CGFloat scrollX = sender.x - self.contentView.width * 0.5; 117 | 118 | // 考虑临界的位置 119 | if (scrollX < 0) { 120 | scrollX = 0; 121 | } 122 | if (scrollX > self.contentView.contentSize.width - self.contentView.width) { 123 | scrollX = self.contentView.contentSize.width - self.contentView.width; 124 | } 125 | [self.contentView setContentOffset:CGPointMake(scrollX, 0) animated:YES]; 126 | } 127 | 128 | #pragma mark - layout 129 | - (void)layoutSubviews{ 130 | [super layoutSubviews]; 131 | self.contentView.frame = self.bounds; 132 | 133 | CGFloat totalBtnWidth = 0; 134 | for (UIButton *btn in self.itemBtns) { 135 | [btn sizeToFit]; 136 | totalBtnWidth += btn.width; 137 | } 138 | 139 | CGFloat caculateMargin = (self.width - totalBtnWidth) / (self.items.count + 1); 140 | if (caculateMargin < KMinMargin) { 141 | caculateMargin = KMinMargin; 142 | } 143 | 144 | 145 | CGFloat lastX = caculateMargin; 146 | for (UIButton *btn in self.itemBtns) { 147 | [btn sizeToFit]; 148 | 149 | btn.y = 0; 150 | 151 | btn.x = lastX; 152 | 153 | lastX += btn.width + caculateMargin; 154 | } 155 | 156 | self.contentView.contentSize = CGSizeMake(lastX, 0); 157 | 158 | if (self.itemBtns.count == 0) { 159 | return; 160 | } 161 | 162 | UIButton *btn = self.itemBtns[self.selectIndex]; 163 | self.indicatorView.width = btn.width + self.config.indicatorW * 2; 164 | self.indicatorView.centerX = btn.centerX; 165 | self.indicatorView.height = self.config.indicatorH; 166 | self.indicatorView.y = self.height - self.indicatorView.height; 167 | 168 | } 169 | 170 | #pragma mark - lazy-init 171 | 172 | 173 | - (NSMutableArray *)itemBtns { 174 | if (!_itemBtns) { 175 | _itemBtns = [NSMutableArray array]; 176 | } 177 | return _itemBtns; 178 | } 179 | 180 | - (UIView *)indicatorView { 181 | if (!_indicatorView) { 182 | CGFloat indicatorH = self.config.indicatorH; 183 | UIView *indicatorView = [[UIView alloc] initWithFrame:CGRectMake(0, self.height - indicatorH, 0, indicatorH)]; 184 | indicatorView.backgroundColor = self.config.indicatorC; 185 | [self.contentView addSubview:indicatorView]; 186 | _indicatorView = indicatorView; 187 | } 188 | return _indicatorView; 189 | } 190 | 191 | - (UIScrollView *)contentView { 192 | if (!_contentView) { 193 | UIScrollView *scrollView = [[UIScrollView alloc] init]; 194 | scrollView.showsHorizontalScrollIndicator = NO; 195 | [self addSubview:scrollView]; 196 | _contentView = scrollView; 197 | } 198 | return _contentView; 199 | } 200 | 201 | - (LLSegmentBarConfig *)config{ 202 | if (!_config) { 203 | _config = [LLSegmentBarConfig defaultConfig]; 204 | } 205 | return _config; 206 | } 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | @end 215 | -------------------------------------------------------------------------------- /LLSegmentBar/Classes/LLSegmentBarConfig.h: -------------------------------------------------------------------------------- 1 | // 2 | // LLSegmentBarConfig.h 3 | // LLSegmentBar 4 | // 5 | // Created by liushaohua on 2017/6/3. 6 | // Copyright © 2017年 416997919@qq.com. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface LLSegmentBarConfig : NSObject 12 | 13 | + (instancetype)defaultConfig; 14 | 15 | @property (nonatomic, strong) UIColor *sBBackColor; 16 | @property (nonatomic, strong) UIColor *itemNC; 17 | @property (nonatomic, strong) UIColor *itemSC; 18 | @property (nonatomic, strong) UIFont *itemF; 19 | @property (nonatomic, strong) UIColor *indicatorC; 20 | @property (nonatomic, assign) CGFloat indicatorH; 21 | @property (nonatomic, assign) CGFloat indicatorW; 22 | 23 | 24 | /**默认颜色*/ 25 | @property (nonatomic, copy, readonly) LLSegmentBarConfig *(^itemNormalColor)(UIColor *color); 26 | /**选中颜色*/ 27 | @property (nonatomic, copy, readonly) LLSegmentBarConfig *(^itemSelectColor)(UIColor *color); 28 | /**背景颜色*/ 29 | @property (nonatomic, copy, readonly) LLSegmentBarConfig *(^segmentBarBackColor)(UIColor *color); 30 | /**文字字体大小*/ 31 | @property (nonatomic, copy, readonly) LLSegmentBarConfig *(^itemFont)(UIFont *font); 32 | /**指示器颜色*/ 33 | @property (nonatomic, copy, readonly) LLSegmentBarConfig *(^indicatorColor)(UIColor *color); 34 | /**指示器高度*/ 35 | @property (nonatomic, copy, readonly) LLSegmentBarConfig *(^indicatorHeight)(CGFloat h); 36 | /**指示器宽度*/ 37 | @property (nonatomic, copy, readonly) LLSegmentBarConfig *(^indicatorExtraW)(CGFloat w); 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /LLSegmentBar/Classes/LLSegmentBarConfig.m: -------------------------------------------------------------------------------- 1 | // 2 | // LLSegmentBarConfig.m 3 | // LLSegmentBar 4 | // 5 | // Created by liushaohua on 2017/6/3. 6 | // Copyright © 2017年 416997919@qq.com. All rights reserved. 7 | // 8 | 9 | #import "LLSegmentBarConfig.h" 10 | 11 | @implementation LLSegmentBarConfig 12 | 13 | + (instancetype)defaultConfig { 14 | LLSegmentBarConfig *config = [[LLSegmentBarConfig alloc] init]; 15 | config.sBBackColor = [UIColor clearColor]; 16 | config.itemF = [UIFont systemFontOfSize:15]; 17 | config.itemNC = [UIColor lightGrayColor]; 18 | config.itemSC = [UIColor redColor]; 19 | config.indicatorC = [UIColor redColor]; 20 | config.indicatorH = 2; 21 | config.indicatorW = 10; 22 | return config; 23 | 24 | } 25 | 26 | - (LLSegmentBarConfig *(^)(UIColor *))segmentBarBackColor{ 27 | return ^(UIColor *color){ 28 | self.sBBackColor = color; 29 | return self; 30 | }; 31 | } 32 | 33 | - (LLSegmentBarConfig *(^)(UIFont *))itemFont{ 34 | return ^(UIFont *font){ 35 | self.itemF = font; 36 | return self; 37 | }; 38 | } 39 | 40 | - (LLSegmentBarConfig *(^)(UIColor *))itemNormalColor{ 41 | return ^(UIColor *color){ 42 | self.itemNC = color; 43 | return self; 44 | }; 45 | } 46 | 47 | - (LLSegmentBarConfig *(^)(UIColor *))itemSelectColor{ 48 | return ^(UIColor *color){ 49 | self.itemSC = color; 50 | return self; 51 | }; 52 | } 53 | 54 | - (LLSegmentBarConfig *(^)(UIColor *))indicatorColor{ 55 | return ^(UIColor *color){ 56 | self.indicatorC = color; 57 | return self; 58 | }; 59 | } 60 | 61 | - (LLSegmentBarConfig *(^)(CGFloat))indicatorHeight{ 62 | return ^(CGFloat H){ 63 | self.indicatorH = H; 64 | return self; 65 | }; 66 | } 67 | 68 | - (LLSegmentBarConfig *(^)(CGFloat))indicatorExtraW{ 69 | return ^(CGFloat W){ 70 | self.indicatorW = W; 71 | return self; 72 | }; 73 | } 74 | 75 | 76 | @end 77 | -------------------------------------------------------------------------------- /LLSegmentBar/Classes/LLSegmentBarVC.h: -------------------------------------------------------------------------------- 1 | // 2 | // LLSegmentBarVC.h 3 | // LLSegmentBar 4 | // 5 | // Created by liushaohua on 2017/6/3. 6 | // Copyright © 2017年 416997919@qq.com. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "LLSegmentBar.h" 11 | 12 | @interface LLSegmentBarVC : UIViewController 13 | 14 | @property (nonatomic,weak) LLSegmentBar * segmentBar; 15 | 16 | - (void)setUpWithItems: (NSArray *)items childVCs: (NSArray *)childVCs; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /LLSegmentBar/Classes/LLSegmentBarVC.m: -------------------------------------------------------------------------------- 1 | // 2 | // LLSegmentBarVC.m 3 | // LLSegmentBar 4 | // 5 | // Created by liushaohua on 2017/6/3. 6 | // Copyright © 2017年 416997919@qq.com. All rights reserved. 7 | // 8 | 9 | #import "LLSegmentBarVC.h" 10 | #import "UIView+LLSegmentBar.h" 11 | 12 | @interface LLSegmentBarVC () 13 | 14 | @property (nonatomic,weak) UIScrollView * contentView; 15 | 16 | @end 17 | 18 | @implementation LLSegmentBarVC 19 | 20 | - (LLSegmentBar *)segmentBar{ 21 | if (!_segmentBar) { 22 | LLSegmentBar *segmentBar = [LLSegmentBar segmentBarWithFrame:self.view.bounds]; 23 | segmentBar.delegate = self; 24 | segmentBar.backgroundColor = [UIColor greenColor]; 25 | [self.view addSubview:segmentBar]; 26 | _segmentBar = segmentBar; 27 | } 28 | return _segmentBar; 29 | } 30 | 31 | - (UIScrollView *)contentView { 32 | if (!_contentView) { 33 | 34 | UIScrollView *contentView = [[UIScrollView alloc] init]; 35 | contentView.delegate = self; 36 | contentView.pagingEnabled = YES; 37 | [self.view addSubview:contentView]; 38 | _contentView = contentView; 39 | } 40 | return _contentView; 41 | } 42 | 43 | - (void)viewDidLoad { 44 | [super viewDidLoad]; 45 | self.automaticallyAdjustsScrollViewInsets = NO; 46 | } 47 | 48 | - (void)setUpWithItems:(NSArray *)items childVCs:(NSArray *)childVCs{ 49 | 50 | NSAssert(items.count != 0 || items.count == childVCs.count, @"个数不一致, 请自己检查"); 51 | 52 | self.segmentBar.items = items; 53 | 54 | [self.childViewControllers makeObjectsPerformSelector:@selector(removeFromParentViewController)]; 55 | 56 | for (UIViewController *vc in childVCs) { 57 | [self addChildViewController:vc]; 58 | } 59 | 60 | self.contentView.contentSize = CGSizeMake(items.count * self.view.width, 0); 61 | 62 | self.segmentBar.selectIndex = 0; 63 | 64 | } 65 | 66 | - (void)showChildVCViewAtIndex:(NSInteger)index{ 67 | 68 | if (self.childViewControllers.count == 0 || index < 0 || index > self.childViewControllers.count - 1) { 69 | return; 70 | } 71 | 72 | UIViewController *vc = self.childViewControllers[index]; 73 | vc.view.frame = CGRectMake(index * self.contentView.width, 0, self.contentView.width, self.contentView.height); 74 | [self.contentView addSubview:vc.view]; 75 | 76 | // 滑动到对应位置 77 | [self.contentView setContentOffset:CGPointMake(index * self.contentView.width, 0) animated:YES]; 78 | 79 | } 80 | 81 | - (void)viewWillLayoutSubviews{ 82 | [super viewWillLayoutSubviews]; 83 | 84 | if (self.segmentBar.superview == self.view) { 85 | 86 | self.segmentBar.frame = CGRectMake(0, 60, self.contentView.width, 35); 87 | 88 | CGFloat contentViewY = self.segmentBar.y + self.segmentBar.height; 89 | CGRect contentFrame = CGRectMake(0, contentViewY, self.view.width, self.view.height - contentViewY); 90 | self.contentView.frame = contentFrame; 91 | self.contentView.contentSize = CGSizeMake(self.childViewControllers.count * self.view.width, 0); 92 | 93 | return; 94 | } 95 | 96 | CGRect contentFrame = CGRectMake(0, 0, self.view.width, self.view.height); 97 | self.contentView.frame = contentFrame; 98 | self.contentView.contentSize = CGSizeMake(self.childViewControllers.count * self.view.width, 0); 99 | 100 | self.segmentBar.selectIndex = self.segmentBar.selectIndex; 101 | 102 | } 103 | #pragma mark - LLSegmentBarDelegate 104 | - (void)segmentBar:(LLSegmentBar *)segmentBar didSelectIndex:(NSInteger)toIndex fromIndex:(NSInteger)fromIndex{ 105 | [self showChildVCViewAtIndex:toIndex]; 106 | } 107 | 108 | 109 | - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{ 110 | 111 | NSInteger index = self.contentView.contentOffset.x/self.contentView.width; 112 | self.segmentBar.selectIndex = index; 113 | } 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | @end 125 | -------------------------------------------------------------------------------- /LLSegmentBar/Classes/UIView+LLSegmentBar.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIView+LLSegmentBar.h 3 | // LLSegmentBar 4 | // 5 | // Created by liushaohua on 2017/6/3. 6 | // Copyright © 2017年 416997919@qq.com. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIView (LLSegmentBar) 12 | 13 | @property (nonatomic, assign) CGFloat x; 14 | 15 | @property (nonatomic, assign) CGFloat y; 16 | 17 | @property (nonatomic, assign) CGFloat width; 18 | 19 | @property (nonatomic, assign) CGFloat height; 20 | 21 | @property (nonatomic, assign) CGFloat centerX; 22 | 23 | @property (nonatomic, assign) CGFloat centerY; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /LLSegmentBar/Classes/UIView+LLSegmentBar.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIView+LLSegmentBar.m 3 | // LLSegmentBar 4 | // 5 | // Created by liushaohua on 2017/6/3. 6 | // Copyright © 2017年 416997919@qq.com. All rights reserved. 7 | // 8 | 9 | #import "UIView+LLSegmentBar.h" 10 | 11 | @implementation UIView (LLSegmentBar) 12 | 13 | -(void)setCenterX:(CGFloat)centerX { 14 | CGPoint center = self.center; 15 | center.x = centerX; 16 | self.center = center; 17 | } 18 | 19 | -(CGFloat)centerX { 20 | return self.center.x; 21 | } 22 | 23 | -(void)setCenterY:(CGFloat)centerY { 24 | CGPoint center = self.center; 25 | center.y = centerY; 26 | self.center = center; 27 | } 28 | 29 | -(CGFloat)centerY { 30 | return self.center.y; 31 | } 32 | 33 | 34 | -(CGFloat)x{ 35 | return self.frame.origin.x; 36 | } 37 | 38 | -(void)setX:(CGFloat)x { 39 | CGRect temp = self.frame; 40 | temp.origin.x = x; 41 | self.frame = temp; 42 | } 43 | 44 | -(CGFloat)y{ 45 | return self.frame.origin.y; 46 | } 47 | 48 | -(void)setY:(CGFloat)y { 49 | CGRect temp = self.frame; 50 | temp.origin.y = y; 51 | self.frame = temp; 52 | } 53 | 54 | -(CGFloat)width{ 55 | return self.frame.size.width; 56 | } 57 | 58 | -(void)setWidth:(CGFloat)width { 59 | CGRect temp = self.frame; 60 | temp.size.width = width; 61 | self.frame = temp; 62 | } 63 | 64 | 65 | -(CGFloat)height{ 66 | return self.frame.size.height; 67 | } 68 | 69 | -(void)setHeight:(CGFloat)height { 70 | CGRect temp = self.frame; 71 | temp.size.height = height; 72 | self.frame = temp; 73 | } 74 | 75 | 76 | @end 77 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # LLSegmentBar 2 | 3 | [![CI Status](http://img.shields.io/travis/416997919@qq.com/LLSegmentBar.svg?style=flat)](https://travis-ci.org/416997919@qq.com/LLSegmentBar) 4 | [![Version](https://img.shields.io/cocoapods/v/LLSegmentBar.svg?style=flat)](http://cocoapods.org/pods/LLSegmentBar) 5 | [![License](https://img.shields.io/cocoapods/l/LLSegmentBar.svg?style=flat)](http://cocoapods.org/pods/LLSegmentBar) 6 | [![Platform](https://img.shields.io/cocoapods/p/LLSegmentBar.svg?style=flat)](http://cocoapods.org/pods/LLSegmentBar) 7 | 8 | ![LLSegmentBar.gif](https://github.com/liuniuliuniu/LLSegmentBar/blob/master/LLSegmentBar.gif) 9 | 10 | 11 | ## Installation 12 | 13 | ```ruby 14 | pod "LLSegmentBar" 15 | ``` 16 | 17 | ``` 18 | // 1 设置segmentBar的frame 19 | self.segmentVC.segmentBar.frame = CGRectMake(0, 0, 320, 35); 20 | self.navigationItem.titleView = self.segmentVC.segmentBar; 21 | // 2 添加控制器的V 22 | self.segmentVC.view.frame = self.view.bounds; 23 | [self.view addSubview:self.segmentVC.view]; 24 | 25 | 26 | 27 | // 3 添加控制器数组和标题数组 28 | NSArray *items = @[@"item-one", @"item-two", @"item-three"]; 29 | UIViewController *vc1 = [UIViewController new]; 30 | vc1.view.backgroundColor = [UIColor redColor]; 31 | UIViewController *vc2 = [UIViewController new]; 32 | vc2.view.backgroundColor = [UIColor greenColor]; 33 | UIViewController *vc3 = [UIViewController new]; 34 | vc3.view.backgroundColor = [UIColor yellowColor]; 35 | [self.segmentVC setUpWithItems:items childVCs:@[vc1,vc2,vc3]]; 36 | 37 | // 5 配置基本设置 采用链式编程模式进行设置 38 | [self.segmentVC.segmentBar updateWithConfig:^(LLSegmentBarConfig *config) { 39 | config.itemNormalColor([UIColor blackColor]).itemSelectColor([UIColor redColor]).indicatorColor([UIColor greenColor]); 40 | }]; 41 | 42 | ``` 43 | 44 | 45 | 46 | 47 | ## Author 48 | 49 | * 此组件以应用到个人仿写的喜马拉雅项目中[LLXMLY](https://github.com/liuniuliuniu/LLXMLY) 50 | * 代码使用过程中,发现任何问题,可以随时issue 51 | * 如果有更多建议或者想法也可以直接联系我 QQ:416997919 52 | * 本人简书地址 也可随时在简书留言 [奥卡姆剃须刀](http://www.jianshu.com/u/f9cc13708dfc) 53 | * 觉得框架对你有一点点帮助的,就请支持下,点个赞。 54 | 55 | 56 | ## License 57 | 58 | LLSegmentBar is available under the MIT license. See the LICENSE file for more info. 59 | -------------------------------------------------------------------------------- /_Pods.xcodeproj: -------------------------------------------------------------------------------- 1 | Example/Pods/Pods.xcodeproj --------------------------------------------------------------------------------