Compare commits

...

22 Commits

Author SHA1 Message Date
Pavel Lukandiy 01b4b473f7 Merge branch 'fix/label-layout' of https://github.com/maxcampolo/Segmentio into fix/labels_width 2017-09-19 20:47:16 +03:00
Max Campolo 02126181c3 Remove .dynamic as the default segmentio initializer 2017-09-04 15:16:04 -04:00
Max Campolo 447ae9404b Fixes segment width calculation and accounts for item styles with no text. Also updates example project to optionally take a segmentioPosition parameter. 2017-09-04 15:14:47 -04:00
Max Campolo c37e26eadf Merge branch 'master' into fix/label-layout 2017-09-04 13:35:05 -04:00
Elias Tykhonkov acfd59e56c Merge pull request #65 from Yalantis/fix/cell-highlited-color-changes-1
fix #39
2017-09-02 13:35:08 +03:00
Elias Tykhonkov 7b8ca108d7 fix #39 2017-09-02 13:33:54 +03:00
Elias Tykhonkov 42194e99c9 Merge pull request #61 from pauluhn/horizontal-none
Horizontal separator
2017-09-02 12:49:24 +03:00
Elias Tykhonkov 2f123fcb35 Merge pull request #60 from NSMyself/master
Add selected image
2017-09-01 18:53:20 +03:00
Ilya 9805a5106c remove instant backgounr color replacment 2017-09-01 18:51:14 +03:00
Ilya 72c4974a43 changes after review 2017-09-01 17:33:02 +03:00
Ilya 2ffa43f898 Merge branch 'master' of github.com:NSMyself/Segmentio 2017-09-01 17:10:50 +03:00
Elias Tykhonkov f81702be30 Update README.md
fixed markdown
2017-09-01 15:38:12 +03:00
Roman Kyrylenko 592929655c Merge pull request #59 from grifas/add-accessibility-identifier
add accessibilityIdentifier on collection view to be accessible. By e…
2017-08-25 12:40:09 +03:00
Roman Kyrylenko 699cbee747 Merge pull request #62 from Yalantis/freaqed-patch-1
Create contributing.md
2017-08-18 16:01:23 +03:00
Roman Kyrylenko 7a1809a4a9 Create contributing.md 2017-08-18 16:00:48 +03:00
pauluhn 1b6a38609e Fix UI bug. 2017-08-17 18:09:58 -05:00
pauluhn 85bed4548b Add horizontal separator none. 2017-08-17 16:55:55 -05:00
João Pereira 42f55d33d2 Add selected image 2017-08-17 15:11:43 +01:00
Aurélien Grifasi 762b7b17cb add accessibilityIdentifier on collection view to be accessible. By example with the KIF interface testing library (https://github.com/kif-framework/KIF) 2017-08-17 16:04:10 +02:00
Max Campolo 19a6e00996 Adds dynamic segment positioning type where cells size varies based on content 2016-12-18 16:39:12 -05:00
Max Campolo e46a86115d Merge branch 'master' into fix/label-layout 2016-12-11 17:57:43 -05:00
Max Campolo 7ddc140724 Add support for dynamic cell positioning, replace maxVisibleItems with an enum parameter 2016-12-11 17:38:36 -05:00
28 changed files with 748 additions and 476 deletions

58
.github/contributing.md vendored Normal file
View File

@ -0,0 +1,58 @@
## How to contribute to Segmentio
#### **Did you find a bug?**
* **Ensure the bug was not already reported** by searching under [Issues](https://github.com/Yalantis/Segmentio/issues).
* If you're unable to find an open issue addressing the problem, [open a new one](https://github.com/Yalantis/Segmentio/issues/new). Be sure to include a **title and clear description**, as much relevant information as possible, and a **code sample** or an **example project** demonstrating the expected behavior that is not occurring.
* Fill appropriate section in issue template and remove the section you aren't interested in.
#### **Did you write a patch that fixes a bug?**
* Open a new GitHub pull request with the patch.
* Ensure the PR description clearly describes the problem and solution. Include the relevant issue number if applicable.
* Ensure the PR doesn't extend the number of existing issues.
#### **Did you fix whitespace, format code, or make a purely cosmetic patch?**
* Changes that are **cosmetic** in nature and **do not add anything substantial** to the stability or functionality of Segmentio will generally **not be accepted**.
#### **Did you write patch that extends functionality?**
* Ensure the functionality you trying to add needed not only for your case.
#### Each issue will be labeled by it's `type`, `priority` and `status`.
**Issue types:**
* Bug
* Enhancement
**These are the available priority labels:**
* Critical
* High
* Medium
* Low
**Status label will be assigned to your issue to keep the issue tracker easy to follow:**
* Queued (will be reviewed soon)
* Reviewed (assignee has read it)
* Pending (will work on it soon)
* Work in progress (is working on it now)
* On hold
* Invalid (if bug it's not reproducible)
* Need feedback (signal to get people to read and comment or provide help)
#### **Coding Style**
* Most importantly, match the existing code style as much as possible.
#### **Do you have a question?**
For any usage questions that are not specific to the project itself, please ask on [Stack Overflow](https://stackoverflow.com/). By doing so, you'll be more likely to quickly solve your problem, and you'll allow anyone else with the same question to find the answer. This also allows maintainers to focus on improving the project for others.
## Thank you!
#### [![Yalantis](https://raw.githubusercontent.com/Yalantis/PullToMakeSoup/master/PullToMakeSoupDemo/Resouces/badge_dark.png)](https://Yalantis.com/?utm_source=github)

View File

@ -1,5 +1,5 @@
PODS: PODS:
- Segmentio (1.1.3) - Segmentio (2.1.2)
DEPENDENCIES: DEPENDENCIES:
- Segmentio (from `../`) - Segmentio (from `../`)
@ -9,8 +9,8 @@ EXTERNAL SOURCES:
:path: "../" :path: "../"
SPEC CHECKSUMS: SPEC CHECKSUMS:
Segmentio: f784171237bcbb4854f338aef8162e312f4ac5b8 Segmentio: 5d6ce19ca05e83164fff1371396fe6212b8ea82f
PODFILE CHECKSUM: 761653fe0a6001fe4076ba25b04e279672ecc970 PODFILE CHECKSUM: 761653fe0a6001fe4076ba25b04e279672ecc970
COCOAPODS: 1.1.0.rc.2 COCOAPODS: 1.2.1

View File

@ -1,6 +1,6 @@
{ {
"name": "Segmentio", "name": "Segmentio",
"version": "1.1.3", "version": "2.1.2",
"homepage": "https://github.com/Yalantis/Segmentio", "homepage": "https://github.com/Yalantis/Segmentio",
"summary": "Animated top/bottom segmented control written in Swift!", "summary": "Animated top/bottom segmented control written in Swift!",
"screenshots": "https://raw.githubusercontent.com/Yalantis/Segmentio/master/Assets/animation.gif", "screenshots": "https://raw.githubusercontent.com/Yalantis/Segmentio/master/Assets/animation.gif",
@ -15,7 +15,7 @@
}, },
"source": { "source": {
"git": "https://github.com/Yalantis/Segmentio.git", "git": "https://github.com/Yalantis/Segmentio.git",
"tag": "1.1.3" "tag": "2.1.2"
}, },
"source_files": "Segmentio/Source/**/*.swift", "source_files": "Segmentio/Source/**/*.swift",
"resources": "Segmentio/Source/Badge/Views/*.xib", "resources": "Segmentio/Source/Badge/Views/*.xib",

View File

@ -1,5 +1,5 @@
PODS: PODS:
- Segmentio (1.1.3) - Segmentio (2.1.2)
DEPENDENCIES: DEPENDENCIES:
- Segmentio (from `../`) - Segmentio (from `../`)
@ -9,8 +9,8 @@ EXTERNAL SOURCES:
:path: "../" :path: "../"
SPEC CHECKSUMS: SPEC CHECKSUMS:
Segmentio: f784171237bcbb4854f338aef8162e312f4ac5b8 Segmentio: 5d6ce19ca05e83164fff1371396fe6212b8ea82f
PODFILE CHECKSUM: 761653fe0a6001fe4076ba25b04e279672ecc970 PODFILE CHECKSUM: 761653fe0a6001fe4076ba25b04e279672ecc970
COCOAPODS: 1.1.0.rc.2 COCOAPODS: 1.2.1

View File

@ -7,45 +7,45 @@
objects = { objects = {
/* Begin PBXBuildFile section */ /* Begin PBXBuildFile section */
0906DB2204F3DA0B929ED2B2FD92C3BE /* SegmentioCellWithImageOverLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71AC7FDBBA82CCF64068DC1436B7C44C /* SegmentioCellWithImageOverLabel.swift */; }; 10DBA0DC35646EAA223634A2DD73D86B /* BadgeWithCounterViewStandardSized.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E90ECA263F832D2C77F806A4581AE25 /* BadgeWithCounterViewStandardSized.xib */; };
0BC7695D61D9046BFBE6CFD6B47FFFE1 /* Pods-Segmentio_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 8758BAC37EDDE6390078CCD596B97C99 /* Pods-Segmentio_Example-dummy.m */; }; 1F0E113E30DFCE466DADCD6B36FB9563 /* SegmentioCellWithImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1BF90D3EF6772ECC6F43EF17AAB5C916 /* SegmentioCellWithImage.swift */; };
0BC8A81C32C10C3EB2DDF82EAD33481D /* SegmentioCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9034CEC1DC6A90954C69B5CF0A879E9D /* SegmentioCell.swift */; }; 4A6BC5F77C2DC7121875E9796CC0F71C /* RoundImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A561B2B4C70B40E0E028301D454D3EBF /* RoundImageView.swift */; };
11E7945679FA0D80B96BC5DA4B1D00D0 /* SegmentioOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1224468BD5929E62BFF27E1C11853D24 /* SegmentioOptions.swift */; }; 65CBF11B7E36B8038CA96C7154BD593F /* SegmentioOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1224468BD5929E62BFF27E1C11853D24 /* SegmentioOptions.swift */; };
1E8DCF6AD4051E3F7CFD9B55341DD455 /* Segmentio-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C56AE5AC5779B7D4F6468D2AB474D9E7 /* Segmentio-dummy.m */; }; 6C19E98544CCC74ACB0435CF36812D7E /* SegmentioCellWithLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A4666D5034926280B3C39CB8CA59319 /* SegmentioCellWithLabel.swift */; };
1F40A33F3F753FF73C5F80F006E14410 /* Segmentio.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 2AAAF5E594CC994BE5AD10F8928BC48A /* Segmentio.bundle */; }; 802CB441FA23AAC29D23AF3266B93C81 /* BadgeWithCounterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64BE9AEFB42AAAC25501C181FF72B653 /* BadgeWithCounterView.swift */; };
20218D2C75E1CA8E41531E94BA06C129 /* SegmentioCellWithImageUnderLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 917595D61BE778C2053B6C375292B042 /* SegmentioCellWithImageUnderLabel.swift */; }; 9B1A0F3B28E1D7077074244267A7CC06 /* BadgeViewPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3C9CACA5CC49ABD89BB5C0082B56F17 /* BadgeViewPresenter.swift */; };
2DA5CD5E23B0E19B8FA2F11146E4A0E5 /* SegmentioCellWithLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A4666D5034926280B3C39CB8CA59319 /* SegmentioCellWithLabel.swift */; }; 9C52286A3F04BE4FFB59CE603E85EE33 /* UIView+Appearance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38BC6E8817CCBFF23555995D47BF0848 /* UIView+Appearance.swift */; };
4E01C978EC149C600FF7658A6757204A /* SegmentioCellWithImageAfterLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 564D3D18F6E439E721C7D49AC8379559 /* SegmentioCellWithImageAfterLabel.swift */; }; 9F8DE05359BBE5FE5D6CDF44981E2748 /* Segmentio-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 80BC1DC599A5ED2C131F4E6D0D020D88 /* Segmentio-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
5BE82675DB7F0C7671EADA9CF99A3C1B /* Segmentio.swift in Sources */ = {isa = PBXBuildFile; fileRef = D91D0C0018887EA8F91F91162FF71F60 /* Segmentio.swift */; }; AC1BDB567F0F35B766CA875725D48E4B /* Segmentio-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C56AE5AC5779B7D4F6468D2AB474D9E7 /* Segmentio-dummy.m */; };
655C575E9623729978F286F79E4EAEB8 /* BadgeWithCounterViewStandardSized.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E90ECA263F832D2C77F806A4581AE25 /* BadgeWithCounterViewStandardSized.xib */; }; B222BF92FB6B2AB1570468B413B9574C /* Pods-Segmentio_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = FCCE72372A4C77BEF387923951E588F2 /* Pods-Segmentio_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
8F726950BDA00432603D2B6B01881D59 /* BadgeWithCounterViewBigSized.xib in Resources */ = {isa = PBXBuildFile; fileRef = 11C011383E55FDF0C1CFAA8E1E01F52C /* BadgeWithCounterViewBigSized.xib */; }; BBBD49F8C72F89C61AF39D22CB78482D /* Segmentio.swift in Sources */ = {isa = PBXBuildFile; fileRef = D91D0C0018887EA8F91F91162FF71F60 /* Segmentio.swift */; };
933D56EF2ECC35F1387B739170AFE07B /* Segmentio-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 80BC1DC599A5ED2C131F4E6D0D020D88 /* Segmentio-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; C460163ABA2667473711E5076164BEA6 /* SegmentioCellWithImageBeforeLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56D84AE8DDC577C7E7499059038BABBC /* SegmentioCellWithImageBeforeLabel.swift */; };
9EE6B5FE2A8EA2C0612C11D34596B7EB /* BadgeViewPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3C9CACA5CC49ABD89BB5C0082B56F17 /* BadgeViewPresenter.swift */; }; C4D341CAAFF7C6E722E2FA0B51123051 /* SegmentioCellWithImageOverLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71AC7FDBBA82CCF64068DC1436B7C44C /* SegmentioCellWithImageOverLabel.swift */; };
BC2B9C2A1711F5583A80C1FA7F6F195F /* SegmentioCellWithImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1BF90D3EF6772ECC6F43EF17AAB5C916 /* SegmentioCellWithImage.swift */; }; CA80C8652BBBA628FBACB72025D31AB5 /* SegmentioCellWithImageAfterLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 564D3D18F6E439E721C7D49AC8379559 /* SegmentioCellWithImageAfterLabel.swift */; };
C1518E27E6C853C813006C349427A4CC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */; }; CB4E396274804674528FDEF730FFE204 /* SegmentioCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9034CEC1DC6A90954C69B5CF0A879E9D /* SegmentioCell.swift */; };
C3DB5E9DDBA27211C6E8654A363CA0BC /* UIView+Appearance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38BC6E8817CCBFF23555995D47BF0848 /* UIView+Appearance.swift */; }; D2C5536F2936DAFDFB2EB014181A8CD2 /* BadgeWithCounterViewBigSized.xib in Resources */ = {isa = PBXBuildFile; fileRef = 11C011383E55FDF0C1CFAA8E1E01F52C /* BadgeWithCounterViewBigSized.xib */; };
C4EFEC716055615A27A3D1338426807D /* BadgeWithCounterViewBigSized.xib in Resources */ = {isa = PBXBuildFile; fileRef = 11C011383E55FDF0C1CFAA8E1E01F52C /* BadgeWithCounterViewBigSized.xib */; }; E1A4407E88B99A006D9E2C92438128A4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */; };
C917381BC4E7C5EFBC2CD2C898C1C8E4 /* SegmentioCellWithImageBeforeLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56D84AE8DDC577C7E7499059038BABBC /* SegmentioCellWithImageBeforeLabel.swift */; }; E358BED78F38E8EE9D622B189132F620 /* BadgeWithCounterViewBigSized.xib in Resources */ = {isa = PBXBuildFile; fileRef = 11C011383E55FDF0C1CFAA8E1E01F52C /* BadgeWithCounterViewBigSized.xib */; };
D29DE39BAA26D8E4DA7534F05DFB78F4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */; }; E49AB26D0E6E0A15958BA72E63E66F24 /* SegmentioCellWithImageUnderLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 917595D61BE778C2053B6C375292B042 /* SegmentioCellWithImageUnderLabel.swift */; };
D9EBCEA1512D4B307726BFEB5F29EF70 /* BadgeWithCounterViewStandardSized.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E90ECA263F832D2C77F806A4581AE25 /* BadgeWithCounterViewStandardSized.xib */; }; E9CCB40A40C825036DBE3AE35204A564 /* Segmentio.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 2AAAF5E594CC994BE5AD10F8928BC48A /* Segmentio.bundle */; };
E6E0179AF8247CB20CB77A1E33C88C7F /* RoundImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A561B2B4C70B40E0E028301D454D3EBF /* RoundImageView.swift */; }; EBFC5756AF3E115F05FA843982EA45A6 /* BadgeWithCounterViewStandardSized.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E90ECA263F832D2C77F806A4581AE25 /* BadgeWithCounterViewStandardSized.xib */; };
EA89BD32CAE3C825C749261B9D4A2031 /* Pods-Segmentio_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = FCCE72372A4C77BEF387923951E588F2 /* Pods-Segmentio_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; FBD5F9C12B94DAB4178B539E51B01AD5 /* Pods-Segmentio_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 8758BAC37EDDE6390078CCD596B97C99 /* Pods-Segmentio_Example-dummy.m */; };
F6814CD90D68BE2911E97CE7F62E5DA1 /* BadgeWithCounterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64BE9AEFB42AAAC25501C181FF72B653 /* BadgeWithCounterView.swift */; }; FFB295F820F3A3F6A6BCFFDA612EE269 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */; };
/* End PBXBuildFile section */ /* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */ /* Begin PBXContainerItemProxy section */
A6C32E782852D555836218D4A7416DD0 /* PBXContainerItemProxy */ = { 1CD5EA631E033BE1FFAC1F0278614DDB /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy; isa = PBXContainerItemProxy;
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
proxyType = 1; proxyType = 1;
remoteGlobalIDString = D69CC732EFB91EE42BE73E5030BD387C; remoteGlobalIDString = 699603020952F58BDBA3104C9DFFCE8D;
remoteInfo = Segmentio; remoteInfo = Segmentio;
}; };
B485C2D39BE98A2AA0F4993CC65D306C /* PBXContainerItemProxy */ = { FC9446558039D9AF888D6FE6B4955A11 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy; isa = PBXContainerItemProxy;
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
proxyType = 1; proxyType = 1;
remoteGlobalIDString = D8AEF8C76AD2A8E5BDCDA4CC1BD107B6; remoteGlobalIDString = 50E4AD31DE0962A93E2FB9A9936DE5A5;
remoteInfo = "Segmentio-Segmentio"; remoteInfo = "Segmentio-Segmentio";
}; };
/* End PBXContainerItemProxy section */ /* End PBXContainerItemProxy section */
@ -55,17 +55,18 @@
11C011383E55FDF0C1CFAA8E1E01F52C /* BadgeWithCounterViewBigSized.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; path = BadgeWithCounterViewBigSized.xib; sourceTree = "<group>"; }; 11C011383E55FDF0C1CFAA8E1E01F52C /* BadgeWithCounterViewBigSized.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; path = BadgeWithCounterViewBigSized.xib; sourceTree = "<group>"; };
1224468BD5929E62BFF27E1C11853D24 /* SegmentioOptions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SegmentioOptions.swift; sourceTree = "<group>"; }; 1224468BD5929E62BFF27E1C11853D24 /* SegmentioOptions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SegmentioOptions.swift; sourceTree = "<group>"; };
1BF90D3EF6772ECC6F43EF17AAB5C916 /* SegmentioCellWithImage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SegmentioCellWithImage.swift; sourceTree = "<group>"; }; 1BF90D3EF6772ECC6F43EF17AAB5C916 /* SegmentioCellWithImage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SegmentioCellWithImage.swift; sourceTree = "<group>"; };
2AAAF5E594CC994BE5AD10F8928BC48A /* Segmentio.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Segmentio.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; 2AAAF5E594CC994BE5AD10F8928BC48A /* Segmentio.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = Segmentio.bundle; path = Segmentio.bundle; sourceTree = BUILT_PRODUCTS_DIR; };
37602088D7DDBEBF54BCE7CAF18CB105 /* Pods-Segmentio_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Segmentio_Example.debug.xcconfig"; sourceTree = "<group>"; }; 37602088D7DDBEBF54BCE7CAF18CB105 /* Pods-Segmentio_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Segmentio_Example.debug.xcconfig"; sourceTree = "<group>"; };
38BC6E8817CCBFF23555995D47BF0848 /* UIView+Appearance.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UIView+Appearance.swift"; sourceTree = "<group>"; }; 38BC6E8817CCBFF23555995D47BF0848 /* UIView+Appearance.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UIView+Appearance.swift"; sourceTree = "<group>"; };
39CC3133DEC50AE996B30883B4A76CFC /* Segmentio-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Segmentio-prefix.pch"; sourceTree = "<group>"; }; 39CC3133DEC50AE996B30883B4A76CFC /* Segmentio-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Segmentio-prefix.pch"; sourceTree = "<group>"; };
428DB76E87B8795FDAD056914F0EB8BD /* Pods-Segmentio_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Segmentio_Example-acknowledgements.markdown"; sourceTree = "<group>"; }; 428DB76E87B8795FDAD056914F0EB8BD /* Pods-Segmentio_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Segmentio_Example-acknowledgements.markdown"; sourceTree = "<group>"; };
4DA45A534C62C7379DB6EF50F3B4DBFA /* Segmentio.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = Segmentio.modulemap; sourceTree = "<group>"; }; 4DA45A534C62C7379DB6EF50F3B4DBFA /* Segmentio.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = Segmentio.modulemap; sourceTree = "<group>"; };
5152D5684BA571B16D3CBB78B9F81B75 /* Pods-Segmentio_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Segmentio_Example-acknowledgements.plist"; sourceTree = "<group>"; }; 5152D5684BA571B16D3CBB78B9F81B75 /* Pods-Segmentio_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Segmentio_Example-acknowledgements.plist"; sourceTree = "<group>"; };
564D3D18F6E439E721C7D49AC8379559 /* SegmentioCellWithImageAfterLabel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SegmentioCellWithImageAfterLabel.swift; sourceTree = "<group>"; }; 564D3D18F6E439E721C7D49AC8379559 /* SegmentioCellWithImageAfterLabel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SegmentioCellWithImageAfterLabel.swift; sourceTree = "<group>"; };
56D84AE8DDC577C7E7499059038BABBC /* SegmentioCellWithImageBeforeLabel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SegmentioCellWithImageBeforeLabel.swift; sourceTree = "<group>"; }; 56D84AE8DDC577C7E7499059038BABBC /* SegmentioCellWithImageBeforeLabel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SegmentioCellWithImageBeforeLabel.swift; sourceTree = "<group>"; };
5D4E8D49DE85EE73865F0FFAE93ACDA8 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 5D4E8D49DE85EE73865F0FFAE93ACDA8 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
64BE9AEFB42AAAC25501C181FF72B653 /* BadgeWithCounterView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BadgeWithCounterView.swift; sourceTree = "<group>"; }; 64BE9AEFB42AAAC25501C181FF72B653 /* BadgeWithCounterView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BadgeWithCounterView.swift; sourceTree = "<group>"; };
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; };
6A4666D5034926280B3C39CB8CA59319 /* SegmentioCellWithLabel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SegmentioCellWithLabel.swift; sourceTree = "<group>"; }; 6A4666D5034926280B3C39CB8CA59319 /* SegmentioCellWithLabel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SegmentioCellWithLabel.swift; sourceTree = "<group>"; };
6E90ECA263F832D2C77F806A4581AE25 /* BadgeWithCounterViewStandardSized.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; path = BadgeWithCounterViewStandardSized.xib; sourceTree = "<group>"; }; 6E90ECA263F832D2C77F806A4581AE25 /* BadgeWithCounterViewStandardSized.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; path = BadgeWithCounterViewStandardSized.xib; sourceTree = "<group>"; };
71AC7FDBBA82CCF64068DC1436B7C44C /* SegmentioCellWithImageOverLabel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SegmentioCellWithImageOverLabel.swift; sourceTree = "<group>"; }; 71AC7FDBBA82CCF64068DC1436B7C44C /* SegmentioCellWithImageOverLabel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SegmentioCellWithImageOverLabel.swift; sourceTree = "<group>"; };
@ -74,43 +75,42 @@
8758BAC37EDDE6390078CCD596B97C99 /* Pods-Segmentio_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Segmentio_Example-dummy.m"; sourceTree = "<group>"; }; 8758BAC37EDDE6390078CCD596B97C99 /* Pods-Segmentio_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Segmentio_Example-dummy.m"; sourceTree = "<group>"; };
9034CEC1DC6A90954C69B5CF0A879E9D /* SegmentioCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SegmentioCell.swift; sourceTree = "<group>"; }; 9034CEC1DC6A90954C69B5CF0A879E9D /* SegmentioCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SegmentioCell.swift; sourceTree = "<group>"; };
917595D61BE778C2053B6C375292B042 /* SegmentioCellWithImageUnderLabel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SegmentioCellWithImageUnderLabel.swift; sourceTree = "<group>"; }; 917595D61BE778C2053B6C375292B042 /* SegmentioCellWithImageUnderLabel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SegmentioCellWithImageUnderLabel.swift; sourceTree = "<group>"; };
93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
9D06B7FD5EDA771583A3CF08D0F68DE9 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 9D06B7FD5EDA771583A3CF08D0F68DE9 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
A561B2B4C70B40E0E028301D454D3EBF /* RoundImageView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RoundImageView.swift; sourceTree = "<group>"; }; A561B2B4C70B40E0E028301D454D3EBF /* RoundImageView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RoundImageView.swift; sourceTree = "<group>"; };
AAF3441A43AA58E58A7340FA1E66271B /* Segmentio.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Segmentio.xcconfig; sourceTree = "<group>"; }; AAF3441A43AA58E58A7340FA1E66271B /* Segmentio.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Segmentio.xcconfig; sourceTree = "<group>"; };
AE666A58F4294719B8B89D33423889C4 /* Pods-Segmentio_Example-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Segmentio_Example-resources.sh"; sourceTree = "<group>"; }; AE666A58F4294719B8B89D33423889C4 /* Pods-Segmentio_Example-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Segmentio_Example-resources.sh"; sourceTree = "<group>"; };
B07FA81FE6C58F8096D157CF2D32550A /* Pods_Segmentio_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Segmentio_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; B07FA81FE6C58F8096D157CF2D32550A /* Pods_Segmentio_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_Segmentio_Example.framework; path = "Pods-Segmentio_Example.framework"; sourceTree = BUILT_PRODUCTS_DIR; };
B2527411739A24C97909490FC5C54F10 /* Pods-Segmentio_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-Segmentio_Example.modulemap"; sourceTree = "<group>"; }; B2527411739A24C97909490FC5C54F10 /* Pods-Segmentio_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Pods-Segmentio_Example.modulemap"; sourceTree = "<group>"; };
B5ED1F4A55A82441D24099184B5077B5 /* ResourceBundle-Segmentio-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-Segmentio-Info.plist"; sourceTree = "<group>"; }; B5ED1F4A55A82441D24099184B5077B5 /* ResourceBundle-Segmentio-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-Segmentio-Info.plist"; sourceTree = "<group>"; };
C373AAC9C68346B42AC567AD943825F7 /* Segmentio.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Segmentio.framework; sourceTree = BUILT_PRODUCTS_DIR; }; C373AAC9C68346B42AC567AD943825F7 /* Segmentio.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Segmentio.framework; path = Segmentio.framework; sourceTree = BUILT_PRODUCTS_DIR; };
C56AE5AC5779B7D4F6468D2AB474D9E7 /* Segmentio-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Segmentio-dummy.m"; sourceTree = "<group>"; }; C56AE5AC5779B7D4F6468D2AB474D9E7 /* Segmentio-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Segmentio-dummy.m"; sourceTree = "<group>"; };
CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; };
D91D0C0018887EA8F91F91162FF71F60 /* Segmentio.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Segmentio.swift; sourceTree = "<group>"; }; D91D0C0018887EA8F91F91162FF71F60 /* Segmentio.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Segmentio.swift; sourceTree = "<group>"; };
E3C9CACA5CC49ABD89BB5C0082B56F17 /* BadgeViewPresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BadgeViewPresenter.swift; sourceTree = "<group>"; }; E3C9CACA5CC49ABD89BB5C0082B56F17 /* BadgeViewPresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BadgeViewPresenter.swift; sourceTree = "<group>"; };
FCCE72372A4C77BEF387923951E588F2 /* Pods-Segmentio_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Segmentio_Example-umbrella.h"; sourceTree = "<group>"; }; FCCE72372A4C77BEF387923951E588F2 /* Pods-Segmentio_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Segmentio_Example-umbrella.h"; sourceTree = "<group>"; };
/* End PBXFileReference section */ /* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */ /* Begin PBXFrameworksBuildPhase section */
CF0100512E0E927F05DB406E0E01DF38 /* Frameworks */ = { 1032A4A2B2D865D1364B0D814D15B03F /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
FFB295F820F3A3F6A6BCFFDA612EE269 /* Foundation.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
89A56CD477E5A8C2040C847A66A1BB44 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
DD95959AB8521184CAFA5D68D3F0C0BA /* Frameworks */ = { E3DDCE9DEA1F5BC20D4245CB9DC81BED /* Frameworks */ = {
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
C1518E27E6C853C813006C349427A4CC /* Foundation.framework in Frameworks */, E1A4407E88B99A006D9E2C92438128A4 /* Foundation.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
FD59EF5B4845512C0FE01CF908756FB5 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
D29DE39BAA26D8E4DA7534F05DFB78F4 /* Foundation.framework in Frameworks */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
@ -123,6 +123,7 @@
A561B2B4C70B40E0E028301D454D3EBF /* RoundImageView.swift */, A561B2B4C70B40E0E028301D454D3EBF /* RoundImageView.swift */,
38BC6E8817CCBFF23555995D47BF0848 /* UIView+Appearance.swift */, 38BC6E8817CCBFF23555995D47BF0848 /* UIView+Appearance.swift */,
); );
name = Extensions;
path = Extensions; path = Extensions;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
@ -139,6 +140,7 @@
children = ( children = (
C65C2B1DCC149D19571A5F7FAE3D31AF /* Views */, C65C2B1DCC149D19571A5F7FAE3D31AF /* Views */,
); );
name = Badge;
path = Badge; path = Badge;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
@ -153,14 +155,6 @@
path = ../..; path = ../..;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
3DCAB2B7CDE207B3958B6CB957FCC758 /* iOS */ = {
isa = PBXGroup;
children = (
CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */,
);
name = iOS;
sourceTree = "<group>";
};
413F9187DDE34CC36B0E06866BC84500 /* Support Files */ = { 413F9187DDE34CC36B0E06866BC84500 /* Support Files */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
@ -181,6 +175,7 @@
children = ( children = (
64BE9AEFB42AAAC25501C181FF72B653 /* BadgeWithCounterView.swift */, 64BE9AEFB42AAAC25501C181FF72B653 /* BadgeWithCounterView.swift */,
); );
name = Views;
path = Views; path = Views;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
@ -221,6 +216,7 @@
917595D61BE778C2053B6C375292B042 /* SegmentioCellWithImageUnderLabel.swift */, 917595D61BE778C2053B6C375292B042 /* SegmentioCellWithImageUnderLabel.swift */,
6A4666D5034926280B3C39CB8CA59319 /* SegmentioCellWithLabel.swift */, 6A4666D5034926280B3C39CB8CA59319 /* SegmentioCellWithLabel.swift */,
); );
name = Cells;
path = Cells; path = Cells;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
@ -252,6 +248,7 @@
71680BC21E0B1ABC000B38795FC22CBC /* Cells */, 71680BC21E0B1ABC000B38795FC22CBC /* Cells */,
00A2FBBF1263542044856398E75BAA76 /* Extensions */, 00A2FBBF1263542044856398E75BAA76 /* Extensions */,
); );
name = Source;
path = Source; path = Source;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
@ -260,13 +257,14 @@
children = ( children = (
A4FF14891748501365A9790ED2BDF024 /* Source */, A4FF14891748501365A9790ED2BDF024 /* Source */,
); );
name = Segmentio;
path = Segmentio; path = Segmentio;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = { BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
3DCAB2B7CDE207B3958B6CB957FCC758 /* iOS */, D35AF013A5F0BAD4F32504907A52519E /* iOS */,
); );
name = Frameworks; name = Frameworks;
sourceTree = "<group>"; sourceTree = "<group>";
@ -277,6 +275,7 @@
11C011383E55FDF0C1CFAA8E1E01F52C /* BadgeWithCounterViewBigSized.xib */, 11C011383E55FDF0C1CFAA8E1E01F52C /* BadgeWithCounterViewBigSized.xib */,
6E90ECA263F832D2C77F806A4581AE25 /* BadgeWithCounterViewStandardSized.xib */, 6E90ECA263F832D2C77F806A4581AE25 /* BadgeWithCounterViewStandardSized.xib */,
); );
name = Views;
path = Views; path = Views;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
@ -286,6 +285,7 @@
E3C9CACA5CC49ABD89BB5C0082B56F17 /* BadgeViewPresenter.swift */, E3C9CACA5CC49ABD89BB5C0082B56F17 /* BadgeViewPresenter.swift */,
635B6B346CBAAB1DB0593E0D25A25ED9 /* Views */, 635B6B346CBAAB1DB0593E0D25A25ED9 /* Views */,
); );
name = Badge;
path = Badge; path = Badge;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
@ -299,11 +299,20 @@
name = Products; name = Products;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
D35AF013A5F0BAD4F32504907A52519E /* iOS */ = {
isa = PBXGroup;
children = (
6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */,
);
name = iOS;
sourceTree = "<group>";
};
D99857A2684E0E97D1E32D0B130B5366 /* Segmentio */ = { D99857A2684E0E97D1E32D0B130B5366 /* Segmentio */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
F1249F9ED37CBEF49B81DE98EA2709C1 /* Source */, F1249F9ED37CBEF49B81DE98EA2709C1 /* Source */,
); );
name = Segmentio;
path = Segmentio; path = Segmentio;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
@ -312,75 +321,39 @@
children = ( children = (
1C2ABA084F34F1E71EB56C0EA2DD4699 /* Badge */, 1C2ABA084F34F1E71EB56C0EA2DD4699 /* Badge */,
); );
name = Source;
path = Source; path = Source;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
/* End PBXGroup section */ /* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */ /* Begin PBXHeadersBuildPhase section */
5ADAE197C16A9C5A10D0C5F779D181D8 /* Headers */ = { 598C65CEC64B0118F582684A6FAE8940 /* Headers */ = {
isa = PBXHeadersBuildPhase; isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
933D56EF2ECC35F1387B739170AFE07B /* Segmentio-umbrella.h in Headers */, B222BF92FB6B2AB1570468B413B9574C /* Pods-Segmentio_Example-umbrella.h in Headers */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
C1CCF605E0A81C17A47094F5032DBFAE /* Headers */ = { 6F0BC796080758E4FAABD24B01791B29 /* Headers */ = {
isa = PBXHeadersBuildPhase; isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
EA89BD32CAE3C825C749261B9D4A2031 /* Pods-Segmentio_Example-umbrella.h in Headers */, 9F8DE05359BBE5FE5D6CDF44981E2748 /* Segmentio-umbrella.h in Headers */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
/* End PBXHeadersBuildPhase section */ /* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */ /* Begin PBXNativeTarget section */
1773C65AAC9F8837BB8142660D7320E0 /* Pods-Segmentio_Example */ = { 50E4AD31DE0962A93E2FB9A9936DE5A5 /* Segmentio-Segmentio */ = {
isa = PBXNativeTarget; isa = PBXNativeTarget;
buildConfigurationList = CC37EAE0F58FC2B11F123B84FE6B0FAC /* Build configuration list for PBXNativeTarget "Pods-Segmentio_Example" */; buildConfigurationList = 2041218D8A7CEE9097033B80A896D7B1 /* Build configuration list for PBXNativeTarget "Segmentio-Segmentio" */;
buildPhases = ( buildPhases = (
5B2B601769FDD1B81F6ECD3FBC7CAF20 /* Sources */, 3F54670759DAE1C79D7082F7577C96BC /* Sources */,
DD95959AB8521184CAFA5D68D3F0C0BA /* Frameworks */, 89A56CD477E5A8C2040C847A66A1BB44 /* Frameworks */,
C1CCF605E0A81C17A47094F5032DBFAE /* Headers */, AE553F700E4B89BB20D4562B90C6FDD8 /* Resources */,
);
buildRules = (
);
dependencies = (
D49BEB0E5AAF16F8BE48EA55C820C1A4 /* PBXTargetDependency */,
);
name = "Pods-Segmentio_Example";
productName = "Pods-Segmentio_Example";
productReference = B07FA81FE6C58F8096D157CF2D32550A /* Pods_Segmentio_Example.framework */;
productType = "com.apple.product-type.framework";
};
D69CC732EFB91EE42BE73E5030BD387C /* Segmentio */ = {
isa = PBXNativeTarget;
buildConfigurationList = 785D3215E776BE829EB1D98F89F1A8C1 /* Build configuration list for PBXNativeTarget "Segmentio" */;
buildPhases = (
F9B7581237D6E81DE197B72773B36420 /* Sources */,
FD59EF5B4845512C0FE01CF908756FB5 /* Frameworks */,
F167B0867D416B414A778DE5486644A6 /* Resources */,
5ADAE197C16A9C5A10D0C5F779D181D8 /* Headers */,
);
buildRules = (
);
dependencies = (
7EE0160D6232AE6A93308C253B5E48D6 /* PBXTargetDependency */,
);
name = Segmentio;
productName = Segmentio;
productReference = C373AAC9C68346B42AC567AD943825F7 /* Segmentio.framework */;
productType = "com.apple.product-type.framework";
};
D8AEF8C76AD2A8E5BDCDA4CC1BD107B6 /* Segmentio-Segmentio */ = {
isa = PBXNativeTarget;
buildConfigurationList = BD0B4F1676768CCD5A8C4B0E5B53427F /* Build configuration list for PBXNativeTarget "Segmentio-Segmentio" */;
buildPhases = (
BECDA7466A3F2048BD0D16982C6C441A /* Sources */,
CF0100512E0E927F05DB406E0E01DF38 /* Frameworks */,
2DA0271DF525DE03AD9084DEC244781A /* Resources */,
); );
buildRules = ( buildRules = (
); );
@ -391,13 +364,50 @@
productReference = 2AAAF5E594CC994BE5AD10F8928BC48A /* Segmentio.bundle */; productReference = 2AAAF5E594CC994BE5AD10F8928BC48A /* Segmentio.bundle */;
productType = "com.apple.product-type.bundle"; productType = "com.apple.product-type.bundle";
}; };
699603020952F58BDBA3104C9DFFCE8D /* Segmentio */ = {
isa = PBXNativeTarget;
buildConfigurationList = AEAE75D2FEC7B21249461B615D5A77D0 /* Build configuration list for PBXNativeTarget "Segmentio" */;
buildPhases = (
26746DB23C01A10BE83BA4ED72329865 /* Sources */,
E3DDCE9DEA1F5BC20D4245CB9DC81BED /* Frameworks */,
EC2DCA2DC35D6B0CC028F0166FFB89D3 /* Resources */,
6F0BC796080758E4FAABD24B01791B29 /* Headers */,
);
buildRules = (
);
dependencies = (
0DCD8E423B2B77C138FA0726DE2A5C2D /* PBXTargetDependency */,
);
name = Segmentio;
productName = Segmentio;
productReference = C373AAC9C68346B42AC567AD943825F7 /* Segmentio.framework */;
productType = "com.apple.product-type.framework";
};
FA42DDB511D342F4A39A132C777D0021 /* Pods-Segmentio_Example */ = {
isa = PBXNativeTarget;
buildConfigurationList = A1D1618119E2E7C51F19EB05FDF5156C /* Build configuration list for PBXNativeTarget "Pods-Segmentio_Example" */;
buildPhases = (
71E9F4CE9357EDBDEEE4D005D3A6F583 /* Sources */,
1032A4A2B2D865D1364B0D814D15B03F /* Frameworks */,
598C65CEC64B0118F582684A6FAE8940 /* Headers */,
);
buildRules = (
);
dependencies = (
76FB2D568968517D610E58E6DE20B975 /* PBXTargetDependency */,
);
name = "Pods-Segmentio_Example";
productName = "Pods-Segmentio_Example";
productReference = B07FA81FE6C58F8096D157CF2D32550A /* Pods_Segmentio_Example.framework */;
productType = "com.apple.product-type.framework";
};
/* End PBXNativeTarget section */ /* End PBXNativeTarget section */
/* Begin PBXProject section */ /* Begin PBXProject section */
D41D8CD98F00B204E9800998ECF8427E /* Project object */ = { D41D8CD98F00B204E9800998ECF8427E /* Project object */ = {
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
LastSwiftUpdateCheck = 0730; LastSwiftUpdateCheck = 0830;
LastUpgradeCheck = 0700; LastUpgradeCheck = 0700;
}; };
buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */;
@ -412,95 +422,134 @@
projectDirPath = ""; projectDirPath = "";
projectRoot = ""; projectRoot = "";
targets = ( targets = (
1773C65AAC9F8837BB8142660D7320E0 /* Pods-Segmentio_Example */, FA42DDB511D342F4A39A132C777D0021 /* Pods-Segmentio_Example */,
D69CC732EFB91EE42BE73E5030BD387C /* Segmentio */, 699603020952F58BDBA3104C9DFFCE8D /* Segmentio */,
D8AEF8C76AD2A8E5BDCDA4CC1BD107B6 /* Segmentio-Segmentio */, 50E4AD31DE0962A93E2FB9A9936DE5A5 /* Segmentio-Segmentio */,
); );
}; };
/* End PBXProject section */ /* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */ /* Begin PBXResourcesBuildPhase section */
2DA0271DF525DE03AD9084DEC244781A /* Resources */ = { AE553F700E4B89BB20D4562B90C6FDD8 /* Resources */ = {
isa = PBXResourcesBuildPhase; isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
8F726950BDA00432603D2B6B01881D59 /* BadgeWithCounterViewBigSized.xib in Resources */, E358BED78F38E8EE9D622B189132F620 /* BadgeWithCounterViewBigSized.xib in Resources */,
655C575E9623729978F286F79E4EAEB8 /* BadgeWithCounterViewStandardSized.xib in Resources */, 10DBA0DC35646EAA223634A2DD73D86B /* BadgeWithCounterViewStandardSized.xib in Resources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
F167B0867D416B414A778DE5486644A6 /* Resources */ = { EC2DCA2DC35D6B0CC028F0166FFB89D3 /* Resources */ = {
isa = PBXResourcesBuildPhase; isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
C4EFEC716055615A27A3D1338426807D /* BadgeWithCounterViewBigSized.xib in Resources */, D2C5536F2936DAFDFB2EB014181A8CD2 /* BadgeWithCounterViewBigSized.xib in Resources */,
D9EBCEA1512D4B307726BFEB5F29EF70 /* BadgeWithCounterViewStandardSized.xib in Resources */, EBFC5756AF3E115F05FA843982EA45A6 /* BadgeWithCounterViewStandardSized.xib in Resources */,
1F40A33F3F753FF73C5F80F006E14410 /* Segmentio.bundle in Resources */, E9CCB40A40C825036DBE3AE35204A564 /* Segmentio.bundle in Resources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
/* End PBXResourcesBuildPhase section */ /* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */
5B2B601769FDD1B81F6ECD3FBC7CAF20 /* Sources */ = { 26746DB23C01A10BE83BA4ED72329865 /* Sources */ = {
isa = PBXSourcesBuildPhase; isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
0BC7695D61D9046BFBE6CFD6B47FFFE1 /* Pods-Segmentio_Example-dummy.m in Sources */, 9B1A0F3B28E1D7077074244267A7CC06 /* BadgeViewPresenter.swift in Sources */,
802CB441FA23AAC29D23AF3266B93C81 /* BadgeWithCounterView.swift in Sources */,
4A6BC5F77C2DC7121875E9796CC0F71C /* RoundImageView.swift in Sources */,
AC1BDB567F0F35B766CA875725D48E4B /* Segmentio-dummy.m in Sources */,
BBBD49F8C72F89C61AF39D22CB78482D /* Segmentio.swift in Sources */,
CB4E396274804674528FDEF730FFE204 /* SegmentioCell.swift in Sources */,
1F0E113E30DFCE466DADCD6B36FB9563 /* SegmentioCellWithImage.swift in Sources */,
CA80C8652BBBA628FBACB72025D31AB5 /* SegmentioCellWithImageAfterLabel.swift in Sources */,
C460163ABA2667473711E5076164BEA6 /* SegmentioCellWithImageBeforeLabel.swift in Sources */,
C4D341CAAFF7C6E722E2FA0B51123051 /* SegmentioCellWithImageOverLabel.swift in Sources */,
E49AB26D0E6E0A15958BA72E63E66F24 /* SegmentioCellWithImageUnderLabel.swift in Sources */,
6C19E98544CCC74ACB0435CF36812D7E /* SegmentioCellWithLabel.swift in Sources */,
65CBF11B7E36B8038CA96C7154BD593F /* SegmentioOptions.swift in Sources */,
9C52286A3F04BE4FFB59CE603E85EE33 /* UIView+Appearance.swift in Sources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
BECDA7466A3F2048BD0D16982C6C441A /* Sources */ = { 3F54670759DAE1C79D7082F7577C96BC /* Sources */ = {
isa = PBXSourcesBuildPhase; isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
F9B7581237D6E81DE197B72773B36420 /* Sources */ = { 71E9F4CE9357EDBDEEE4D005D3A6F583 /* Sources */ = {
isa = PBXSourcesBuildPhase; isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
9EE6B5FE2A8EA2C0612C11D34596B7EB /* BadgeViewPresenter.swift in Sources */, FBD5F9C12B94DAB4178B539E51B01AD5 /* Pods-Segmentio_Example-dummy.m in Sources */,
F6814CD90D68BE2911E97CE7F62E5DA1 /* BadgeWithCounterView.swift in Sources */,
E6E0179AF8247CB20CB77A1E33C88C7F /* RoundImageView.swift in Sources */,
1E8DCF6AD4051E3F7CFD9B55341DD455 /* Segmentio-dummy.m in Sources */,
5BE82675DB7F0C7671EADA9CF99A3C1B /* Segmentio.swift in Sources */,
0BC8A81C32C10C3EB2DDF82EAD33481D /* SegmentioCell.swift in Sources */,
BC2B9C2A1711F5583A80C1FA7F6F195F /* SegmentioCellWithImage.swift in Sources */,
4E01C978EC149C600FF7658A6757204A /* SegmentioCellWithImageAfterLabel.swift in Sources */,
C917381BC4E7C5EFBC2CD2C898C1C8E4 /* SegmentioCellWithImageBeforeLabel.swift in Sources */,
0906DB2204F3DA0B929ED2B2FD92C3BE /* SegmentioCellWithImageOverLabel.swift in Sources */,
20218D2C75E1CA8E41531E94BA06C129 /* SegmentioCellWithImageUnderLabel.swift in Sources */,
2DA5CD5E23B0E19B8FA2F11146E4A0E5 /* SegmentioCellWithLabel.swift in Sources */,
11E7945679FA0D80B96BC5DA4B1D00D0 /* SegmentioOptions.swift in Sources */,
C3DB5E9DDBA27211C6E8654A363CA0BC /* UIView+Appearance.swift in Sources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
/* End PBXSourcesBuildPhase section */ /* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */ /* Begin PBXTargetDependency section */
7EE0160D6232AE6A93308C253B5E48D6 /* PBXTargetDependency */ = { 0DCD8E423B2B77C138FA0726DE2A5C2D /* PBXTargetDependency */ = {
isa = PBXTargetDependency; isa = PBXTargetDependency;
name = "Segmentio-Segmentio"; name = "Segmentio-Segmentio";
target = D8AEF8C76AD2A8E5BDCDA4CC1BD107B6 /* Segmentio-Segmentio */; target = 50E4AD31DE0962A93E2FB9A9936DE5A5 /* Segmentio-Segmentio */;
targetProxy = B485C2D39BE98A2AA0F4993CC65D306C /* PBXContainerItemProxy */; targetProxy = FC9446558039D9AF888D6FE6B4955A11 /* PBXContainerItemProxy */;
}; };
D49BEB0E5AAF16F8BE48EA55C820C1A4 /* PBXTargetDependency */ = { 76FB2D568968517D610E58E6DE20B975 /* PBXTargetDependency */ = {
isa = PBXTargetDependency; isa = PBXTargetDependency;
name = Segmentio; name = Segmentio;
target = D69CC732EFB91EE42BE73E5030BD387C /* Segmentio */; target = 699603020952F58BDBA3104C9DFFCE8D /* Segmentio */;
targetProxy = A6C32E782852D555836218D4A7416DD0 /* PBXContainerItemProxy */; targetProxy = 1CD5EA631E033BE1FFAC1F0278614DDB /* PBXContainerItemProxy */;
}; };
/* End PBXTargetDependency section */ /* End PBXTargetDependency section */
/* Begin XCBuildConfiguration section */ /* Begin XCBuildConfiguration section */
015A368F878AC3E2CEAE21DDE8026304 /* Debug */ = { 0CAC0F262E7DD097927860FC763994DF /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 808E8A2F66FEF9BFA423C8B51FEB3FD3 /* Pods-Segmentio_Example.release.xcconfig */;
buildSettings = {
CODE_SIGN_IDENTITY = "";
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_NO_COMMON_BLOCKS = YES;
INFOPLIST_FILE = "Target Support Files/Pods-Segmentio_Example/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MACH_O_TYPE = staticlib;
MODULEMAP_FILE = "Target Support Files/Pods-Segmentio_Example/Pods-Segmentio_Example.modulemap";
MTL_ENABLE_DEBUG_INFO = NO;
OTHER_LDFLAGS = "";
OTHER_LIBTOOLFLAGS = "";
PODS_ROOT = "$(SRCROOT)";
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = Pods_Segmentio_Example;
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
SWIFT_VERSION = 3.0;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
34FE9531DA9AF2820790339988D5FF41 /* Release */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
buildSettings = { buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO; ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++"; CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
@ -508,10 +557,182 @@
CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGNING_REQUIRED = NO;
COPY_PHASE_STRIP = YES;
ENABLE_NS_ASSERTIONS = NO;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_PREPROCESSOR_DEFINITIONS = (
"POD_CONFIGURATION_RELEASE=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/;
STRIP_INSTALLED_PRODUCT = NO;
SYMROOT = "${SRCROOT}/../build";
VALIDATE_PRODUCT = YES;
};
name = Release;
};
4E822D5795BA9E4178943FED4D9C6AF4 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 37602088D7DDBEBF54BCE7CAF18CB105 /* Pods-Segmentio_Example.debug.xcconfig */;
buildSettings = {
CODE_SIGN_IDENTITY = "";
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = dwarf;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_NO_COMMON_BLOCKS = YES;
INFOPLIST_FILE = "Target Support Files/Pods-Segmentio_Example/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MACH_O_TYPE = staticlib;
MODULEMAP_FILE = "Target Support Files/Pods-Segmentio_Example/Pods-Segmentio_Example.modulemap";
MTL_ENABLE_DEBUG_INFO = YES;
OTHER_LDFLAGS = "";
OTHER_LIBTOOLFLAGS = "";
PODS_ROOT = "$(SRCROOT)";
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = Pods_Segmentio_Example;
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 3.0;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Debug;
};
7661A8E2CE1CB37964D0DB637C77E431 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = AAF3441A43AA58E58A7340FA1E66271B /* Segmentio.xcconfig */;
buildSettings = {
CODE_SIGN_IDENTITY = "";
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = dwarf;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_NO_COMMON_BLOCKS = YES;
GCC_PREFIX_HEADER = "Target Support Files/Segmentio/Segmentio-prefix.pch";
INFOPLIST_FILE = "Target Support Files/Segmentio/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MODULEMAP_FILE = "Target Support Files/Segmentio/Segmentio.modulemap";
MTL_ENABLE_DEBUG_INFO = YES;
PRODUCT_NAME = Segmentio;
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 3.0;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Debug;
};
82DA9EDC945BA75F9A7FBF8948423EE3 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = AAF3441A43AA58E58A7340FA1E66271B /* Segmentio.xcconfig */;
buildSettings = {
CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Segmentio";
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_NO_COMMON_BLOCKS = YES;
INFOPLIST_FILE = "Target Support Files/Segmentio/ResourceBundle-Segmentio-Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
PRODUCT_NAME = Segmentio;
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = "1,2";
WRAPPER_EXTENSION = bundle;
};
name = Release;
};
B21E056A43A153E5C75A8623229ECF5D /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = AAF3441A43AA58E58A7340FA1E66271B /* Segmentio.xcconfig */;
buildSettings = {
CODE_SIGN_IDENTITY = "";
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_NO_COMMON_BLOCKS = YES;
GCC_PREFIX_HEADER = "Target Support Files/Segmentio/Segmentio-prefix.pch";
INFOPLIST_FILE = "Target Support Files/Segmentio/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MODULEMAP_FILE = "Target Support Files/Segmentio/Segmentio.modulemap";
MTL_ENABLE_DEBUG_INFO = NO;
PRODUCT_NAME = Segmentio;
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
SWIFT_VERSION = 3.0;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
C104F7F091290C3D1E248192F07FE689 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGNING_REQUIRED = NO; CODE_SIGNING_REQUIRED = NO;
@ -540,115 +761,7 @@
}; };
name = Debug; name = Debug;
}; };
44CDBB6D11DE06DB64D6268622BDC47E /* Release */ = { CE9298B08B651D08B8B497D16EBD8F6B /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGNING_REQUIRED = NO;
COPY_PHASE_STRIP = YES;
ENABLE_NS_ASSERTIONS = NO;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_PREPROCESSOR_DEFINITIONS = (
"POD_CONFIGURATION_RELEASE=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/;
STRIP_INSTALLED_PRODUCT = NO;
SYMROOT = "${SRCROOT}/../build";
VALIDATE_PRODUCT = YES;
};
name = Release;
};
6939D89BCF3CB71D8A0CB554AEAC1779 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = AAF3441A43AA58E58A7340FA1E66271B /* Segmentio.xcconfig */;
buildSettings = {
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = dwarf;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_NO_COMMON_BLOCKS = YES;
GCC_PREFIX_HEADER = "Target Support Files/Segmentio/Segmentio-prefix.pch";
INFOPLIST_FILE = "Target Support Files/Segmentio/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MODULEMAP_FILE = "Target Support Files/Segmentio/Segmentio.modulemap";
MTL_ENABLE_DEBUG_INFO = YES;
PRODUCT_NAME = Segmentio;
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 3.0;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Debug;
};
69F41B3AE04E5DCE90065CD8E029712C /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 808E8A2F66FEF9BFA423C8B51FEB3FD3 /* Pods-Segmentio_Example.release.xcconfig */;
buildSettings = {
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_NO_COMMON_BLOCKS = YES;
INFOPLIST_FILE = "Target Support Files/Pods-Segmentio_Example/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MACH_O_TYPE = staticlib;
MODULEMAP_FILE = "Target Support Files/Pods-Segmentio_Example/Pods-Segmentio_Example.modulemap";
MTL_ENABLE_DEBUG_INFO = NO;
OTHER_LDFLAGS = "";
OTHER_LIBTOOLFLAGS = "";
PODS_ROOT = "$(SRCROOT)";
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = Pods_Segmentio_Example;
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
A6D8F8AC9425BACBC3621CFD7597790C /* Debug */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
baseConfigurationReference = AAF3441A43AA58E58A7340FA1E66271B /* Segmentio.xcconfig */; baseConfigurationReference = AAF3441A43AA58E58A7340FA1E66271B /* Segmentio.xcconfig */;
buildSettings = { buildSettings = {
@ -665,126 +778,41 @@
}; };
name = Debug; name = Debug;
}; };
B39C8A659F54F5D7007A70CE400454EA /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = AAF3441A43AA58E58A7340FA1E66271B /* Segmentio.xcconfig */;
buildSettings = {
CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Segmentio";
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_NO_COMMON_BLOCKS = YES;
INFOPLIST_FILE = "Target Support Files/Segmentio/ResourceBundle-Segmentio-Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
PRODUCT_NAME = Segmentio;
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = "1,2";
WRAPPER_EXTENSION = bundle;
};
name = Release;
};
BF58FEE71132386297AFD4D409190547 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 37602088D7DDBEBF54BCE7CAF18CB105 /* Pods-Segmentio_Example.debug.xcconfig */;
buildSettings = {
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = dwarf;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_NO_COMMON_BLOCKS = YES;
INFOPLIST_FILE = "Target Support Files/Pods-Segmentio_Example/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MACH_O_TYPE = staticlib;
MODULEMAP_FILE = "Target Support Files/Pods-Segmentio_Example/Pods-Segmentio_Example.modulemap";
MTL_ENABLE_DEBUG_INFO = YES;
OTHER_LDFLAGS = "";
OTHER_LIBTOOLFLAGS = "";
PODS_ROOT = "$(SRCROOT)";
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = Pods_Segmentio_Example;
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Debug;
};
E8435E0DCC8F7A80386C452616DACB34 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = AAF3441A43AA58E58A7340FA1E66271B /* Segmentio.xcconfig */;
buildSettings = {
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_NO_COMMON_BLOCKS = YES;
GCC_PREFIX_HEADER = "Target Support Files/Segmentio/Segmentio-prefix.pch";
INFOPLIST_FILE = "Target Support Files/Segmentio/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MODULEMAP_FILE = "Target Support Files/Segmentio/Segmentio.modulemap";
MTL_ENABLE_DEBUG_INFO = NO;
PRODUCT_NAME = Segmentio;
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
SWIFT_VERSION = 3.0;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
/* End XCBuildConfiguration section */ /* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */ /* Begin XCConfigurationList section */
2041218D8A7CEE9097033B80A896D7B1 /* Build configuration list for PBXNativeTarget "Segmentio-Segmentio" */ = {
isa = XCConfigurationList;
buildConfigurations = (
CE9298B08B651D08B8B497D16EBD8F6B /* Debug */,
82DA9EDC945BA75F9A7FBF8948423EE3 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = {
isa = XCConfigurationList; isa = XCConfigurationList;
buildConfigurations = ( buildConfigurations = (
015A368F878AC3E2CEAE21DDE8026304 /* Debug */, C104F7F091290C3D1E248192F07FE689 /* Debug */,
44CDBB6D11DE06DB64D6268622BDC47E /* Release */, 34FE9531DA9AF2820790339988D5FF41 /* Release */,
); );
defaultConfigurationIsVisible = 0; defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release; defaultConfigurationName = Release;
}; };
785D3215E776BE829EB1D98F89F1A8C1 /* Build configuration list for PBXNativeTarget "Segmentio" */ = { A1D1618119E2E7C51F19EB05FDF5156C /* Build configuration list for PBXNativeTarget "Pods-Segmentio_Example" */ = {
isa = XCConfigurationList; isa = XCConfigurationList;
buildConfigurations = ( buildConfigurations = (
6939D89BCF3CB71D8A0CB554AEAC1779 /* Debug */, 4E822D5795BA9E4178943FED4D9C6AF4 /* Debug */,
E8435E0DCC8F7A80386C452616DACB34 /* Release */, 0CAC0F262E7DD097927860FC763994DF /* Release */,
); );
defaultConfigurationIsVisible = 0; defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release; defaultConfigurationName = Release;
}; };
BD0B4F1676768CCD5A8C4B0E5B53427F /* Build configuration list for PBXNativeTarget "Segmentio-Segmentio" */ = { AEAE75D2FEC7B21249461B615D5A77D0 /* Build configuration list for PBXNativeTarget "Segmentio" */ = {
isa = XCConfigurationList; isa = XCConfigurationList;
buildConfigurations = ( buildConfigurations = (
A6D8F8AC9425BACBC3621CFD7597790C /* Debug */, 7661A8E2CE1CB37964D0DB637C77E431 /* Debug */,
B39C8A659F54F5D7007A70CE400454EA /* Release */, B21E056A43A153E5C75A8623229ECF5D /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
CC37EAE0F58FC2B11F123B84FE6B0FAC /* Build configuration list for PBXNativeTarget "Pods-Segmentio_Example" */ = {
isa = XCConfigurationList;
buildConfigurations = (
BF58FEE71132386297AFD4D409190547 /* Debug */,
69F41B3AE04E5DCE90065CD8E029712C /* Release */,
); );
defaultConfigurationIsVisible = 0; defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release; defaultConfigurationName = Release;

View File

@ -5,7 +5,7 @@ This application makes use of the following third party libraries:
The MIT License (MIT) The MIT License (MIT)
Copyright © 2015 Yalantis Copyright © 2017 Yalantis
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal
@ -24,4 +24,5 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE. THE SOFTWARE.
Generated by CocoaPods - https://cocoapods.org Generated by CocoaPods - https://cocoapods.org

View File

@ -16,7 +16,7 @@
<key>FooterText</key> <key>FooterText</key>
<string>The MIT License (MIT) <string>The MIT License (MIT)
Copyright &#169; 2015 Yalantis Copyright © 2017 Yalantis
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal
@ -34,7 +34,8 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.</string> THE SOFTWARE.
</string>
<key>License</key> <key>License</key>
<string>MIT</string> <string>MIT</string>
<key>Title</key> <key>Title</key>

View File

@ -59,8 +59,13 @@ code_sign_if_enabled() {
if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then
# Use the current code_sign_identitiy # Use the current code_sign_identitiy
echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}"
echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements \"$1\"" local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements '$1'"
/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements "$1"
if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
code_sign_cmd="$code_sign_cmd &"
fi
echo "$code_sign_cmd"
eval "$code_sign_cmd"
fi fi
} }
@ -89,3 +94,6 @@ fi
if [[ "$CONFIGURATION" == "Release" ]]; then if [[ "$CONFIGURATION" == "Release" ]]; then
install_framework "$BUILT_PRODUCTS_DIR/Segmentio/Segmentio.framework" install_framework "$BUILT_PRODUCTS_DIR/Segmentio/Segmentio.framework"
fi fi
if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
wait
fi

View File

@ -18,17 +18,17 @@ case "${TARGETED_DEVICE_FAMILY}" in
2) 2)
TARGET_DEVICE_ARGS="--target-device ipad" TARGET_DEVICE_ARGS="--target-device ipad"
;; ;;
3)
TARGET_DEVICE_ARGS="--target-device tv"
;;
4)
TARGET_DEVICE_ARGS="--target-device watch"
;;
*) *)
TARGET_DEVICE_ARGS="--target-device mac" TARGET_DEVICE_ARGS="--target-device mac"
;; ;;
esac esac
realpath() {
DIRECTORY="$(cd "${1%/*}" && pwd)"
FILENAME="${1##*/}"
echo "$DIRECTORY/$FILENAME"
}
install_resource() install_resource()
{ {
if [[ "$1" = /* ]] ; then if [[ "$1" = /* ]] ; then
@ -70,7 +70,7 @@ EOM
xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm"
;; ;;
*.xcassets) *.xcassets)
ABSOLUTE_XCASSET_FILE=$(realpath "$RESOURCE_PATH") ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH"
XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE")
;; ;;
*) *)
@ -93,7 +93,7 @@ then
# Find all other xcassets (this unfortunately includes those of path pods and other targets). # Find all other xcassets (this unfortunately includes those of path pods and other targets).
OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d)
while read line; do while read line; do
if [[ $line != "`realpath $PODS_ROOT`*" ]]; then if [[ $line != "${PODS_ROOT}*" ]]; then
XCASSET_FILES+=("$line") XCASSET_FILES+=("$line")
fi fi
done <<<"$OTHER_XCASSETS" done <<<"$OTHER_XCASSETS"

View File

@ -1,4 +1,14 @@
#ifdef __OBJC__
#import <UIKit/UIKit.h> #import <UIKit/UIKit.h>
#else
#ifndef FOUNDATION_EXPORT
#if defined(__cplusplus)
#define FOUNDATION_EXPORT extern "C"
#else
#define FOUNDATION_EXPORT extern
#endif
#endif
#endif
FOUNDATION_EXPORT double Pods_Segmentio_ExampleVersionNumber; FOUNDATION_EXPORT double Pods_Segmentio_ExampleVersionNumber;

View File

@ -1,5 +1,4 @@
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
EMBEDDED_CONTENT_CONTAINS_SWIFT = YES
FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/Segmentio" FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/Segmentio"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
@ -8,4 +7,5 @@ OTHER_LDFLAGS = $(inherited) -framework "Segmentio"
OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS"
PODS_BUILD_DIR = $BUILD_DIR PODS_BUILD_DIR = $BUILD_DIR
PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
PODS_ROOT = ${SRCROOT}/Pods PODS_ROOT = ${SRCROOT}/Pods

View File

@ -1,5 +1,4 @@
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
EMBEDDED_CONTENT_CONTAINS_SWIFT = YES
FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/Segmentio" FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/Segmentio"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
@ -8,4 +7,5 @@ OTHER_LDFLAGS = $(inherited) -framework "Segmentio"
OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS"
PODS_BUILD_DIR = $BUILD_DIR PODS_BUILD_DIR = $BUILD_DIR
PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
PODS_ROOT = ${SRCROOT}/Pods PODS_ROOT = ${SRCROOT}/Pods

View File

@ -15,7 +15,7 @@
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>FMWK</string> <string>FMWK</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>1.1.3</string> <string>2.1.2</string>
<key>CFBundleSignature</key> <key>CFBundleSignature</key>
<string>????</string> <string>????</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>

View File

@ -13,7 +13,7 @@
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>BNDL</string> <string>BNDL</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>1.1.3</string> <string>2.1.2</string>
<key>CFBundleSignature</key> <key>CFBundleSignature</key>
<string>????</string> <string>????</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>

View File

@ -1,4 +1,12 @@
#ifdef __OBJC__ #ifdef __OBJC__
#import <UIKit/UIKit.h> #import <UIKit/UIKit.h>
#else
#ifndef FOUNDATION_EXPORT
#if defined(__cplusplus)
#define FOUNDATION_EXPORT extern "C"
#else
#define FOUNDATION_EXPORT extern
#endif
#endif
#endif #endif

View File

@ -1,4 +1,14 @@
#ifdef __OBJC__
#import <UIKit/UIKit.h> #import <UIKit/UIKit.h>
#else
#ifndef FOUNDATION_EXPORT
#if defined(__cplusplus)
#define FOUNDATION_EXPORT extern "C"
#else
#define FOUNDATION_EXPORT extern
#endif
#endif
#endif
FOUNDATION_EXPORT double SegmentioVersionNumber; FOUNDATION_EXPORT double SegmentioVersionNumber;

View File

@ -5,5 +5,6 @@ OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS"
PODS_BUILD_DIR = $BUILD_DIR PODS_BUILD_DIR = $BUILD_DIR
PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_ROOT = ${SRCROOT} PODS_ROOT = ${SRCROOT}
PODS_TARGET_SRCROOT = ${PODS_ROOT}/../..
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
SKIP_INSTALL = YES SKIP_INSTALL = YES

View File

@ -333,7 +333,7 @@
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh; shellPath = /bin/sh;
shellScript = "diff \"${PODS_ROOT}/../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"; 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";
showEnvVarsInLog = 0; showEnvVarsInLog = 0;
}; };
/* End PBXShellScriptBuildPhase section */ /* End PBXShellScriptBuildPhase section */

View File

@ -19,11 +19,11 @@ struct SegmentioBuilder {
) )
} }
static func buildSegmentioView(segmentioView: Segmentio, segmentioStyle: SegmentioStyle) { static func buildSegmentioView(segmentioView: Segmentio, segmentioStyle: SegmentioStyle, segmentioPosition: SegmentioPosition = .fixed(maxVisibleItems: 3)) {
segmentioView.setup( segmentioView.setup(
content: segmentioContent(), content: segmentioContent(),
style: segmentioStyle, style: segmentioStyle,
options: segmentioOptions(segmentioStyle: segmentioStyle) options: segmentioOptions(segmentioStyle: segmentioStyle, segmentioPosition: segmentioPosition)
) )
} }
@ -38,7 +38,7 @@ struct SegmentioBuilder {
] ]
} }
private static func segmentioOptions(segmentioStyle: SegmentioStyle) -> SegmentioOptions { private static func segmentioOptions(segmentioStyle: SegmentioStyle, segmentioPosition: SegmentioPosition = .fixed(maxVisibleItems: 3)) -> SegmentioOptions {
var imageContentMode = UIViewContentMode.center var imageContentMode = UIViewContentMode.center
switch segmentioStyle { switch segmentioStyle {
case .imageBeforeLabel, .imageAfterLabel: case .imageBeforeLabel, .imageAfterLabel:
@ -49,7 +49,7 @@ struct SegmentioBuilder {
return SegmentioOptions( return SegmentioOptions(
backgroundColor: ColorPalette.white, backgroundColor: ColorPalette.white,
maxVisibleItems: 3, segmentPosition: segmentioPosition,
scrollEnabled: true, scrollEnabled: true,
indicatorOptions: segmentioIndicatorOptions(), indicatorOptions: segmentioIndicatorOptions(),
horizontalSeparatorOptions: segmentioHorizontalSeparatorOptions(), horizontalSeparatorOptions: segmentioHorizontalSeparatorOptions(),

View File

@ -1,5 +1,15 @@
{ {
"images" : [ "images" : [
{
"idiom" : "iphone",
"size" : "20x20",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "20x20",
"scale" : "3x"
},
{ {
"size" : "29x29", "size" : "29x29",
"idiom" : "iphone", "idiom" : "iphone",
@ -36,6 +46,16 @@
"filename" : "Icon-60@3x.png", "filename" : "Icon-60@3x.png",
"scale" : "3x" "scale" : "3x"
}, },
{
"idiom" : "ipad",
"size" : "20x20",
"scale" : "1x"
},
{
"idiom" : "ipad",
"size" : "20x20",
"scale" : "2x"
},
{ {
"size" : "29x29", "size" : "29x29",
"idiom" : "ipad", "idiom" : "ipad",

View File

@ -1,4 +1,4 @@
##Segmentio ## Segmentio
[![Platform](http://img.shields.io/badge/platform-iOS-blue.svg?style=flat)](https://cocoapods.org/?q=segmentio) [![License](http://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/Yalantis/Segmentio/blob/master/LICENSE) ![Swift 3.x](https://img.shields.io/badge/Swift-3.0-orange.svg) [![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) [![Platform](http://img.shields.io/badge/platform-iOS-blue.svg?style=flat)](https://cocoapods.org/?q=segmentio) [![License](http://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/Yalantis/Segmentio/blob/master/LICENSE) ![Swift 3.x](https://img.shields.io/badge/Swift-3.0-orange.svg) [![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage)
Animated top/bottom segmented control written in Swift. Animated top/bottom segmented control written in Swift.
@ -7,15 +7,15 @@ Animated top/bottom segmented control written in Swift.
Check this <a href="https://dribbble.com/shots/2820372-Segmentio-Component">project on dribbble</a>. Check this <a href="https://dribbble.com/shots/2820372-Segmentio-Component">project on dribbble</a>.
##Requirements ## Requirements
- Xcode 8 - Xcode 8
- iOS 8.x+ - iOS 8.x+
- Swift 3 - Swift 3
##Installation ## Installation
####[CocoaPods](http://cocoapods.org) #### [CocoaPods](http://cocoapods.org)
```ruby ```ruby
use_frameworks! use_frameworks!
@ -24,18 +24,18 @@ pod 'Segmentio', '~> 2.1'
*CocoaPods v1.1.0 or later required* *CocoaPods v1.1.0 or later required*
####[Carthage](http://github.com/Carthage/Carthage) #### [Carthage](http://github.com/Carthage/Carthage)
```ruby ```ruby
github "Yalantis/Segmentio" ~> 2.1 github "Yalantis/Segmentio" ~> 2.1
``` ```
##Usage ## Usage
####Import `Segmentio` module #### Import `Segmentio` module
```swift ```swift
import Segmentio import Segmentio
``` ```
####Init #### Init
You can initialize a `Segmentio` instance from code: You can initialize a `Segmentio` instance from code:
```swift ```swift
@ -54,7 +54,7 @@ add a `UIView` instance in your .storyboard or .xib, set `Segmentio` class and c
@IBOutlet weak var segmentioView: Segmentio! @IBOutlet weak var segmentioView: Segmentio!
``` ```
####Setup `Segmentio` #### Setup `Segmentio`
```swift ```swift
segmentioView.setup( segmentioView.setup(
content: [SegmentioItem], content: [SegmentioItem],
@ -74,7 +74,7 @@ segmentioView.setup(
``` ```
####Configuring items #### Configuring items
In order to set items you need to create an array of `SegmentioItem` instances: In order to set items you need to create an array of `SegmentioItem` instances:
```swift ```swift
@ -87,14 +87,14 @@ let tornadoItem = SegmentioItem(
content.append(tornadoItem) content.append(tornadoItem)
``` ```
####Handling selection #### Handling selection
You can specify selected item manually: You can specify selected item manually:
```swift ```swift
segmentioView.selectedSegmentioIndex = 0 segmentioView.selectedSegmentioIndex = 0
``` ```
####Handling callback #### Handling callback
```swift ```swift
segmentioView.valueDidChange = { segmentio, segmentIndex in segmentioView.valueDidChange = { segmentio, segmentIndex in
@ -102,7 +102,7 @@ segmentioView.valueDidChange = { segmentio, segmentIndex in
} }
``` ```
####Customization #### Customization
`Segmentio` can be customized by passing an instance of `SegmentioOptions` struct: `Segmentio` can be customized by passing an instance of `SegmentioOptions` struct:
```swift ```swift
@ -171,12 +171,12 @@ SegmentioStates(
) )
``` ```
####Let us know! #### Let us know!
Wed be really happy if you sent us links to your projects where you use our component. Just send an email to github@yalantis.com And do let us know if you have any questions or suggestion regarding the animation. Wed be really happy if you sent us links to your projects where you use our component. Just send an email to github@yalantis.com And do let us know if you have any questions or suggestion regarding the animation.
P.S. Were going to publish more awesomeness wrapped in code and a tutorial on how to make UI for iOS (Android) better than better. Stay tuned! P.S. Were going to publish more awesomeness wrapped in code and a tutorial on how to make UI for iOS (Android) better than better. Stay tuned!
##License ## License
The MIT License (MIT) The MIT License (MIT)

View File

@ -11,7 +11,7 @@ import UIKit
class SegmentioCell: UICollectionViewCell { class SegmentioCell: UICollectionViewCell {
let padding: CGFloat = 8 let padding: CGFloat = 8
let segmentTitleLabelHeight: CGFloat = 22 static let segmentTitleLabelHeight: CGFloat = 22
var verticalSeparatorView: UIView? var verticalSeparatorView: UIView?
var segmentTitleLabel: UILabel? var segmentTitleLabel: UILabel?
@ -49,7 +49,7 @@ class SegmentioCell: UICollectionViewCell {
segmentTitleLabel?.font = isHighlighted ? highlightedState.titleFont : highlightedTitleFont segmentTitleLabel?.font = isHighlighted ? highlightedState.titleFont : highlightedTitleFont
} }
backgroundColor = isHighlighted ? highlightedState.backgroundColor : defaultState.backgroundColor backgroundColor = isHighlighted ? highlightedState.backgroundColor : .clear
} }
} }
} }
@ -130,7 +130,7 @@ class SegmentioCell: UICollectionViewCell {
configurateBadgeWithCount(content.badgeCount, color: content.badgeColor) configurateBadgeWithCount(content.badgeCount, color: content.badgeColor)
} }
func configure(selected: Bool) { func configure(selected: Bool, selectedImage: UIImage? = nil, image: UIImage? = nil) {
cellSelected = selected cellSelected = selected
let selectedState = options.states.selectedState let selectedState = options.states.selectedState
@ -140,6 +140,10 @@ class SegmentioCell: UICollectionViewCell {
segmentTitleLabel?.textColor = selected ? selectedState.titleTextColor : defaultState.titleTextColor segmentTitleLabel?.textColor = selected ? selectedState.titleTextColor : defaultState.titleTextColor
segmentTitleLabel?.font = selected ? selectedState.titleFont : defaultState.titleFont segmentTitleLabel?.font = selected ? selectedState.titleFont : defaultState.titleFont
} }
if (style != .onlyLabel) {
segmentImageView?.image = selected ? selectedImage : image
}
} }
func configurateBadgeWithCount(_ badgeCount: Int?, color: UIColor?) { func configurateBadgeWithCount(_ badgeCount: Int?, color: UIColor?) {

View File

@ -19,7 +19,7 @@ final class SegmentioCellWithImageAfterLabel: SegmentioCell {
return return
} }
let metrics = ["labelHeight": segmentTitleLabelHeight] let metrics = ["labelHeight": SegmentioCell.segmentTitleLabelHeight]
let views = [ let views = [
"imageContainerView": imageContainerView, "imageContainerView": imageContainerView,
"containerView": containerView "containerView": containerView

View File

@ -19,7 +19,7 @@ class SegmentioCellWithImageBeforeLabel: SegmentioCell {
return return
} }
let metrics = ["labelHeight": segmentTitleLabelHeight] let metrics = ["labelHeight": SegmentioCell.segmentTitleLabelHeight]
let views = [ let views = [
"imageContainerView": imageContainerView, "imageContainerView": imageContainerView,
"containerView": containerView "containerView": containerView

View File

@ -19,7 +19,7 @@ class SegmentioCellWithImageOverLabel: SegmentioCell {
return return
} }
let metrics = ["labelHeight": segmentTitleLabelHeight] let metrics = ["labelHeight": SegmentioCell.segmentTitleLabelHeight]
let views = [ let views = [
"imageContainerView": imageContainerView, "imageContainerView": imageContainerView,
"containerView": containerView "containerView": containerView

View File

@ -19,7 +19,7 @@ class SegmentioCellWithImageUnderLabel: SegmentioCell {
return return
} }
let metrics = ["labelHeight": segmentTitleLabelHeight] let metrics = ["labelHeight": SegmentioCell.segmentTitleLabelHeight]
let views = [ let views = [
"imageContainerView": imageContainerView, "imageContainerView": imageContainerView,
"containerView": containerView "containerView": containerView

View File

@ -49,6 +49,7 @@ open class Segmentio: UIView {
fileprivate var segmentioOptions = SegmentioOptions() fileprivate var segmentioOptions = SegmentioOptions()
fileprivate var segmentioStyle = SegmentioStyle.imageOverLabel fileprivate var segmentioStyle = SegmentioStyle.imageOverLabel
fileprivate var isPerformingScrollAnimation = false fileprivate var isPerformingScrollAnimation = false
fileprivate var isCollectionViewScrolling = false
fileprivate var topSeparatorView: UIView? fileprivate var topSeparatorView: UIView?
fileprivate var bottomSeparatorView: UIView? fileprivate var bottomSeparatorView: UIView?
@ -96,6 +97,7 @@ open class Segmentio: UIView {
collectionView.bounces = true collectionView.bounces = true
collectionView.isScrollEnabled = segmentioOptions.scrollEnabled collectionView.isScrollEnabled = segmentioOptions.scrollEnabled
collectionView.backgroundColor = .clear collectionView.backgroundColor = .clear
collectionView.accessibilityIdentifier = "segmentio_collection_view"
segmentioCollectionView = collectionView segmentioCollectionView = collectionView
@ -112,6 +114,8 @@ open class Segmentio: UIView {
let separatorHeight = horizontalSeparatorOptions.height let separatorHeight = horizontalSeparatorOptions.height
switch horizontalSeparatorOptions.type { switch horizontalSeparatorOptions.type {
case .none:
separatorsHeight = 0
case .top: case .top:
collectionViewFrameMinY = separatorHeight collectionViewFrameMinY = separatorHeight
separatorsHeight = separatorHeight separatorsHeight = separatorHeight
@ -251,7 +255,7 @@ open class Segmentio: UIView {
bottomSeparatorView = UIView(frame: CGRect.zero) bottomSeparatorView = UIView(frame: CGRect.zero)
setupConstraintsForSeparatorView( setupConstraintsForSeparatorView(
separatorView: bottomSeparatorView, separatorView: bottomSeparatorView,
originY: frame.maxY - height originY: bounds.maxY - height
) )
} }
} }
@ -269,7 +273,7 @@ open class Segmentio: UIView {
item: separatorView, item: separatorView,
attribute: .top, attribute: .top,
relatedBy: .equal, relatedBy: .equal,
toItem: superview, toItem: self,
attribute: .top, attribute: .top,
multiplier: 1, multiplier: 1,
constant: originY constant: originY
@ -324,6 +328,7 @@ open class Segmentio: UIView {
public func reloadSegmentio() { public func reloadSegmentio() {
segmentioCollectionView?.collectionViewLayout.invalidateLayout() segmentioCollectionView?.collectionViewLayout.invalidateLayout()
segmentioCollectionView?.reloadData() segmentioCollectionView?.reloadData()
guard selectedSegmentioIndex != -1 else { return }
scrollToItemAtContext() scrollToItemAtContext()
moveShapeLayerAtContext() moveShapeLayerAtContext()
} }
@ -334,12 +339,8 @@ open class Segmentio: UIView {
if let indicatorLayer = indicatorLayer, let options = segmentioOptions.indicatorOptions { if let indicatorLayer = indicatorLayer, let options = segmentioOptions.indicatorOptions {
let item = itemInSuperview(ratio: options.ratio) let item = itemInSuperview(ratio: options.ratio)
let context = contextForItem(item) let context = contextForItem(item)
let points = Points( let points = Points(context: context, item: item, atIndex: selectedSegmentioIndex, allItems: segmentioItems, pointY: indicatorPointY(), position: segmentioOptions.segmentPosition, style: segmentioStyle)
context: context,
item: item,
pointY: indicatorPointY()
)
moveShapeLayer( moveShapeLayer(
indicatorLayer, indicatorLayer,
@ -352,12 +353,8 @@ open class Segmentio: UIView {
if let selectedLayer = selectedLayer { if let selectedLayer = selectedLayer {
let item = itemInSuperview() let item = itemInSuperview()
let context = contextForItem(item) let context = contextForItem(item)
let points = Points( let points = Points(context: context, item: item, atIndex: selectedSegmentioIndex, allItems: segmentioItems, pointY: bounds.midY, position: segmentioOptions.segmentPosition, style: segmentioStyle)
context: context,
item: item,
pointY: bounds.midY
)
moveShapeLayer( moveShapeLayer(
selectedLayer, selectedLayer,
@ -374,30 +371,30 @@ open class Segmentio: UIView {
guard let numberOfSections = segmentioCollectionView?.numberOfSections else { guard let numberOfSections = segmentioCollectionView?.numberOfSections else {
return return
} }
guard selectedSegmentioIndex != -1 else { return }
let item = itemInSuperview() let item = itemInSuperview()
let context = contextForItem(item) let context = contextForItem(item)
if context.isLastOrPrelastVisibleCell == true { segmentioCollectionView?.scrollRectToVisible(centerRect(for: item), animated: true)
let newIndex = selectedSegmentioIndex + (context.isLastCell ? 0 : 1) }
let newIndexPath = IndexPath(item: newIndex, section: numberOfSections - 1)
segmentioCollectionView?.scrollToItem( fileprivate func centerRect(for item: ItemInSuperview) -> CGRect {
at: newIndexPath, let item = itemInSuperview()
at: UICollectionViewScrollPosition(), var centerRect = item.cellFrameInSuperview
animated: true if (item.startX + segmentioCollectionView!.contentOffset.x) - (item.collectionViewWidth - centerRect.width) / 2 < 0 {
) centerRect.origin.x = 0
} var widthToAdd: CGFloat = (item.collectionViewWidth - centerRect.width)
centerRect.size.width += widthToAdd
if context.isFirstOrSecondVisibleCell == true && selectedSegmentioIndex != -1 { } else if segmentioCollectionView!.contentSize.width - item.endX < (item.collectionViewWidth - centerRect.width) / 2 {
let newIndex = selectedSegmentioIndex - (context.isFirstIndex ? 1 : 0) centerRect.origin.x = segmentioCollectionView!.contentSize.width - item.collectionViewWidth
let newIndexPath = IndexPath(item: newIndex, section: numberOfSections - 1) centerRect.size.width = item.collectionViewWidth
} else {
segmentioCollectionView?.scrollToItem( centerRect.origin.x = item.startX - (item.collectionViewWidth - centerRect.width) / 2 + segmentioCollectionView!.contentOffset.x
at: newIndexPath, centerRect.size.width = item.collectionViewWidth
at: UICollectionViewScrollPosition(),
animated: true
)
} }
return centerRect
} }
// MARK: Move shape layer // MARK: Move shape layer
@ -463,15 +460,26 @@ open class Segmentio: UIView {
var cellRect = CGRect.zero var cellRect = CGRect.zero
var shapeLayerWidth: CGFloat = 0 var shapeLayerWidth: CGFloat = 0
if let collectionView = segmentioCollectionView { if let collectionView = segmentioCollectionView, selectedSegmentioIndex != -1 {
collectionViewWidth = collectionView.frame.width collectionViewWidth = collectionView.frame.width
let maxVisibleItems = segmentioOptions.maxVisibleItems > segmentioItems.count ? CGFloat(segmentioItems.count) : CGFloat(segmentioOptions.maxVisibleItems) cellWidth = segmentWidth(for: IndexPath(row: selectedSegmentioIndex, section: 0))
cellWidth = floor(collectionViewWidth / maxVisibleItems) var x: CGFloat = 0
switch segmentioOptions.segmentPosition {
case .fixed:
x = floor(CGFloat(selectedSegmentioIndex) * cellWidth - collectionView.contentOffset.x)
case .dynamic:
guard selectedSegmentioIndex != -1 else {
break
}
for i in 0..<selectedSegmentioIndex {
x += segmentWidth(for: IndexPath(item: i, section: 0))
}
x -= collectionView.contentOffset.x
}
cellRect = CGRect( cellRect = CGRect(
x: floor(CGFloat(selectedSegmentioIndex) * cellWidth - collectionView.contentOffset.x), x: x,
y: 0, y: 0,
width: floor(collectionViewWidth / maxVisibleItems), width: cellWidth,
height: collectionView.frame.height height: collectionView.frame.height
) )
@ -486,7 +494,47 @@ open class Segmentio: UIView {
endX: floor(cellRect.midX + (shapeLayerWidth / 2)) endX: floor(cellRect.midX + (shapeLayerWidth / 2))
) )
} }
// MARK: - Segment Width
fileprivate func segmentWidth(for indexPath: IndexPath) -> CGFloat {
var width: CGFloat = 0
if let collectionView = segmentioCollectionView {
let collectionViewWidth = collectionView.frame.width
switch segmentioOptions.segmentPosition {
case .fixed(let maxVisibleItems):
let maxItems = maxVisibleItems > segmentioItems.count ? CGFloat(segmentioItems.count) : CGFloat(maxVisibleItems)
width = maxItems == 0 ? 0 : floor(collectionViewWidth / CGFloat(maxItems))
case .dynamic:
if segmentioItems.count == 0 {
break
}
var dynamicWidth: CGFloat = 0
for item in segmentioItems {
dynamicWidth += Segmentio.intrinsicWidth(for: item, style: segmentioStyle)
}
let itemWidth = Segmentio.intrinsicWidth(for: segmentioItems[indexPath.row], style: segmentioStyle)
width = dynamicWidth > collectionViewWidth ? itemWidth : itemWidth + ((collectionViewWidth - dynamicWidth) / CGFloat(segmentioItems.count))
}
}
return width
}
fileprivate static func intrinsicWidth(for item: SegmentioItem, style: SegmentioStyle) -> CGFloat {
var itemWidth: CGFloat = 0
switch style.isWithText() {
case true:
itemWidth += item.intrinsicWidth
case false:
itemWidth += item.image?.size.width ?? 0
}
itemWidth += style.layoutMargins
if style == .imageAfterLabel || style == .imageBeforeLabel {
itemWidth += SegmentioCell.segmentTitleLabelHeight
}
return itemWidth
}
// MARK: - Indicator point Y // MARK: - Indicator point Y
fileprivate func indicatorPointY() -> CGFloat { fileprivate func indicatorPointY() -> CGFloat {
@ -511,6 +559,8 @@ open class Segmentio: UIView {
let isIndicatorTop = indicatorOptions.type == .top let isIndicatorTop = indicatorOptions.type == .top
switch horizontalSeparatorOptions.type { switch horizontalSeparatorOptions.type {
case .none:
break
case .top: case .top:
indicatorPointY = isIndicatorTop ? indicatorPointY + separatorHeight : indicatorPointY indicatorPointY = isIndicatorTop ? indicatorPointY + separatorHeight : indicatorPointY
case .bottom: case .bottom:
@ -526,6 +576,10 @@ open class Segmentio: UIView {
// MARK: - UICollectionViewDataSource // MARK: - UICollectionViewDataSource
extension Segmentio: UICollectionViewDataSource { extension Segmentio: UICollectionViewDataSource {
public func numberOfSections(in collectionView: UICollectionView) -> Int {
return 1
}
public func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { public func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return segmentioItems.count return segmentioItems.count
@ -536,14 +590,20 @@ extension Segmentio: UICollectionViewDataSource {
withReuseIdentifier: segmentioStyle.rawValue, withReuseIdentifier: segmentioStyle.rawValue,
for: indexPath) as! SegmentioCell for: indexPath) as! SegmentioCell
let content = segmentioItems[indexPath.row]
cell.configure( cell.configure(
content: segmentioItems[indexPath.row], content: content,
style: segmentioStyle, style: segmentioStyle,
options: segmentioOptions, options: segmentioOptions,
isLastCell: indexPath.row == segmentioItems.count - 1 isLastCell: indexPath.row == segmentioItems.count - 1
) )
cell.configure(selected: (indexPath.row == selectedSegmentioIndex)) cell.configure(
selected: (indexPath.row == selectedSegmentioIndex),
selectedImage: content.selectedImage,
image: content.image
)
return cell return cell
} }
@ -569,8 +629,7 @@ extension Segmentio: UICollectionViewDelegate {
extension Segmentio: UICollectionViewDelegateFlowLayout { extension Segmentio: UICollectionViewDelegateFlowLayout {
public func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { public func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let maxVisibleItems = segmentioOptions.maxVisibleItems > segmentioItems.count ? CGFloat(segmentioItems.count) : CGFloat(segmentioOptions.maxVisibleItems) return CGSize(width: segmentWidth(for: indexPath), height: collectionView.frame.height)
return CGSize( width: floor(collectionView.frame.width / maxVisibleItems), height: collectionView.frame.height)
} }
} }
@ -583,7 +642,7 @@ extension Segmentio: UIScrollViewDelegate {
if isPerformingScrollAnimation { if isPerformingScrollAnimation {
return return
} }
if let options = segmentioOptions.indicatorOptions, let indicatorLayer = indicatorLayer { if let options = segmentioOptions.indicatorOptions, let indicatorLayer = indicatorLayer {
let item = itemInSuperview(ratio: options.ratio) let item = itemInSuperview(ratio: options.ratio)
moveShapeLayer( moveShapeLayer(
@ -604,41 +663,80 @@ extension Segmentio: UIScrollViewDelegate {
) )
} }
} }
public func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
isCollectionViewScrolling = false
}
} }
extension Segmentio.Points { extension Segmentio.Points {
init(context: Segmentio.Context, item: Segmentio.ItemInSuperview, pointY: CGFloat) { init(context: Segmentio.Context, item: Segmentio.ItemInSuperview, atIndex index: Int, allItems: [SegmentioItem], pointY: CGFloat, position: SegmentioPosition, style: SegmentioStyle) {
let cellWidth = item.cellFrameInSuperview.width let cellWidth = item.cellFrameInSuperview.width
var startX = item.startX var startX = item.startX
var endX = item.endX var endX = item.endX
if context.isFirstCell == false && context.isLastCell == false { switch position {
if context.isLastOrPrelastVisibleCell == true { case .fixed(_):
let updatedStartX = item.collectionViewWidth - (cellWidth * 2) + ((cellWidth - item.shapeLayerWidth) / 2) if context.isFirstCell == false && context.isLastCell == false {
startX = updatedStartX if context.isLastOrPrelastVisibleCell == true {
let updatedEndX = updatedStartX + item.shapeLayerWidth let updatedStartX = item.collectionViewWidth - (cellWidth * 2) + ((cellWidth - item.shapeLayerWidth) / 2)
endX = updatedEndX startX = updatedStartX
let updatedEndX = updatedStartX + item.shapeLayerWidth
endX = updatedEndX
}
if context.isFirstOrSecondVisibleCell == true {
let updatedEndX = (cellWidth * 2) - ((cellWidth - item.shapeLayerWidth) / 2)
endX = updatedEndX
let updatedStartX = updatedEndX - item.shapeLayerWidth
startX = updatedStartX
}
if context.isFirstCell == true {
startX = (cellWidth - item.shapeLayerWidth) / 2
endX = startX + item.shapeLayerWidth
}
if context.isLastCell == true {
startX = item.collectionViewWidth - cellWidth + (cellWidth - item.shapeLayerWidth) / 2
endX = startX + item.shapeLayerWidth
}
} }
case .dynamic:
if context.isFirstOrSecondVisibleCell == true { // If the collection content view is not completely visible...
let updatedEndX = (cellWidth * 2) - ((cellWidth - item.shapeLayerWidth) / 2) // We have to calculate the final position of the item
endX = updatedEndX var dynamicWidth: CGFloat = 0
let updatedStartX = updatedEndX - item.shapeLayerWidth for item in allItems {
startX = updatedStartX dynamicWidth += Segmentio.intrinsicWidth(for: item, style: style)
}
if item.collectionViewWidth < dynamicWidth {
startX = 0
endX = 0
var spaceBefore: CGFloat = 0
var spaceAfter: CGFloat = 0
var i = 0
for item in allItems {
if i < index {
spaceBefore += Segmentio.intrinsicWidth(for: item, style: style)
} else if i > index {
spaceAfter += Segmentio.intrinsicWidth(for: item, style: style)
}
i += 1
}
// Cell will try to position itself in the middle, unless it can't because
// the collection view has reached the beginning or end
if spaceBefore < (item.collectionViewWidth - cellWidth) / 2 {
startX = spaceBefore
} else if spaceAfter < (item.collectionViewWidth - cellWidth) / 2 {
startX = item.collectionViewWidth - spaceAfter - item.cellFrameInSuperview.width
} else {
startX = (item.collectionViewWidth / 2) - (cellWidth / 2 )
}
endX = startX + cellWidth
} }
}
if context.isFirstCell == true {
startX = (cellWidth - item.shapeLayerWidth) / 2
endX = startX + item.shapeLayerWidth
}
if context.isLastCell == true {
startX = item.collectionViewWidth - cellWidth + (cellWidth - item.shapeLayerWidth) / 2
endX = startX + item.shapeLayerWidth
} }
startPoint = CGPoint(x: startX, y: pointY) startPoint = CGPoint(x: startX, y: pointY)

View File

@ -14,12 +14,20 @@ public struct SegmentioItem {
public var title: String? public var title: String?
public var image: UIImage? public var image: UIImage?
public var selectedImage: UIImage?
public var badgeCount: Int? public var badgeCount: Int?
public var badgeColor: UIColor? public var badgeColor: UIColor?
public var intrinsicWidth: CGFloat {
let label = UILabel()
label.text = self.title
label.sizeToFit()
return label.intrinsicContentSize.width
}
public init(title: String?, image: UIImage?) { public init(title: String?, image: UIImage?, selectedImage: UIImage? = nil) {
self.title = title self.title = title
self.image = image self.image = image
self.selectedImage = selectedImage ?? image
} }
public mutating func addBadge(_ count: Int, color: UIColor) { public mutating func addBadge(_ count: Int, color: UIColor) {
@ -56,7 +64,7 @@ public struct SegmentioState {
// MARK: - Horizontal separator // MARK: - Horizontal separator
public enum SegmentioHorizontalSeparatorType { public enum SegmentioHorizontalSeparatorType {
case none
case top case top
case bottom case bottom
case topAndBottom case topAndBottom
@ -116,6 +124,13 @@ public struct SegmentioIndicatorOptions {
} }
// MARK: - Position
public enum SegmentioPosition {
case dynamic
case fixed(maxVisibleItems: Int)
}
// MARK: - Control options // MARK: - Control options
public enum SegmentioStyle: String { public enum SegmentioStyle: String {
@ -148,6 +163,16 @@ public enum SegmentioStyle: String {
return false return false
} }
} }
public var layoutMargins: CGFloat {
let defaultLayoutMargins: CGFloat = 8.0
switch self {
case .onlyLabel, .imageAfterLabel, .imageBeforeLabel, .imageOverLabel, .imageUnderLabel:
return 4 * defaultLayoutMargins
case .onlyImage:
return 2 * defaultLayoutMargins
}
}
} }
public typealias SegmentioStates = (defaultState: SegmentioState, selectedState: SegmentioState, highlightedState: SegmentioState) public typealias SegmentioStates = (defaultState: SegmentioState, selectedState: SegmentioState, highlightedState: SegmentioState)
@ -155,7 +180,7 @@ public typealias SegmentioStates = (defaultState: SegmentioState, selectedState:
public struct SegmentioOptions { public struct SegmentioOptions {
var backgroundColor: UIColor var backgroundColor: UIColor
var maxVisibleItems: Int var segmentPosition: SegmentioPosition
var scrollEnabled: Bool var scrollEnabled: Bool
var horizontalSeparatorOptions: SegmentioHorizontalSeparatorOptions? var horizontalSeparatorOptions: SegmentioHorizontalSeparatorOptions?
var verticalSeparatorOptions: SegmentioVerticalSeparatorOptions? var verticalSeparatorOptions: SegmentioVerticalSeparatorOptions?
@ -168,7 +193,7 @@ public struct SegmentioOptions {
public init() { public init() {
self.backgroundColor = .lightGray self.backgroundColor = .lightGray
self.maxVisibleItems = 4 self.segmentPosition = .fixed(maxVisibleItems: 4)
self.scrollEnabled = true self.scrollEnabled = true
self.horizontalSeparatorOptions = SegmentioHorizontalSeparatorOptions() self.horizontalSeparatorOptions = SegmentioHorizontalSeparatorOptions()
@ -188,9 +213,9 @@ public struct SegmentioOptions {
self.animationDuration = 0.1 self.animationDuration = 0.1
} }
public init(backgroundColor: UIColor, maxVisibleItems: Int, scrollEnabled: Bool, indicatorOptions: SegmentioIndicatorOptions?, horizontalSeparatorOptions: SegmentioHorizontalSeparatorOptions?, verticalSeparatorOptions: SegmentioVerticalSeparatorOptions?, imageContentMode: UIViewContentMode, labelTextAlignment: NSTextAlignment, labelTextNumberOfLines: Int, segmentStates: SegmentioStates, animationDuration: CFTimeInterval) { public init(backgroundColor: UIColor, segmentPosition: SegmentioPosition, scrollEnabled: Bool, indicatorOptions: SegmentioIndicatorOptions?, horizontalSeparatorOptions: SegmentioHorizontalSeparatorOptions?, verticalSeparatorOptions: SegmentioVerticalSeparatorOptions?, imageContentMode: UIViewContentMode, labelTextAlignment: NSTextAlignment, labelTextNumberOfLines: Int, segmentStates: SegmentioStates, animationDuration: CFTimeInterval) {
self.backgroundColor = backgroundColor self.backgroundColor = backgroundColor
self.maxVisibleItems = maxVisibleItems self.segmentPosition = segmentPosition
self.scrollEnabled = scrollEnabled self.scrollEnabled = scrollEnabled
self.indicatorOptions = indicatorOptions self.indicatorOptions = indicatorOptions
self.horizontalSeparatorOptions = horizontalSeparatorOptions self.horizontalSeparatorOptions = horizontalSeparatorOptions