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:
- Segmentio (1.1.3)
- Segmentio (2.1.2)
DEPENDENCIES:
- Segmentio (from `../`)
@ -9,8 +9,8 @@ EXTERNAL SOURCES:
:path: "../"
SPEC CHECKSUMS:
Segmentio: f784171237bcbb4854f338aef8162e312f4ac5b8
Segmentio: 5d6ce19ca05e83164fff1371396fe6212b8ea82f
PODFILE CHECKSUM: 761653fe0a6001fe4076ba25b04e279672ecc970
COCOAPODS: 1.1.0.rc.2
COCOAPODS: 1.2.1

View File

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

View File

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

View File

@ -7,45 +7,45 @@
objects = {
/* Begin PBXBuildFile section */
0906DB2204F3DA0B929ED2B2FD92C3BE /* SegmentioCellWithImageOverLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71AC7FDBBA82CCF64068DC1436B7C44C /* SegmentioCellWithImageOverLabel.swift */; };
0BC7695D61D9046BFBE6CFD6B47FFFE1 /* Pods-Segmentio_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 8758BAC37EDDE6390078CCD596B97C99 /* Pods-Segmentio_Example-dummy.m */; };
0BC8A81C32C10C3EB2DDF82EAD33481D /* SegmentioCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9034CEC1DC6A90954C69B5CF0A879E9D /* SegmentioCell.swift */; };
11E7945679FA0D80B96BC5DA4B1D00D0 /* SegmentioOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1224468BD5929E62BFF27E1C11853D24 /* SegmentioOptions.swift */; };
1E8DCF6AD4051E3F7CFD9B55341DD455 /* Segmentio-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C56AE5AC5779B7D4F6468D2AB474D9E7 /* Segmentio-dummy.m */; };
1F40A33F3F753FF73C5F80F006E14410 /* Segmentio.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 2AAAF5E594CC994BE5AD10F8928BC48A /* Segmentio.bundle */; };
20218D2C75E1CA8E41531E94BA06C129 /* SegmentioCellWithImageUnderLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 917595D61BE778C2053B6C375292B042 /* SegmentioCellWithImageUnderLabel.swift */; };
2DA5CD5E23B0E19B8FA2F11146E4A0E5 /* SegmentioCellWithLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A4666D5034926280B3C39CB8CA59319 /* SegmentioCellWithLabel.swift */; };
4E01C978EC149C600FF7658A6757204A /* SegmentioCellWithImageAfterLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 564D3D18F6E439E721C7D49AC8379559 /* SegmentioCellWithImageAfterLabel.swift */; };
5BE82675DB7F0C7671EADA9CF99A3C1B /* Segmentio.swift in Sources */ = {isa = PBXBuildFile; fileRef = D91D0C0018887EA8F91F91162FF71F60 /* Segmentio.swift */; };
655C575E9623729978F286F79E4EAEB8 /* BadgeWithCounterViewStandardSized.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E90ECA263F832D2C77F806A4581AE25 /* BadgeWithCounterViewStandardSized.xib */; };
8F726950BDA00432603D2B6B01881D59 /* BadgeWithCounterViewBigSized.xib in Resources */ = {isa = PBXBuildFile; fileRef = 11C011383E55FDF0C1CFAA8E1E01F52C /* BadgeWithCounterViewBigSized.xib */; };
933D56EF2ECC35F1387B739170AFE07B /* Segmentio-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 80BC1DC599A5ED2C131F4E6D0D020D88 /* Segmentio-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
9EE6B5FE2A8EA2C0612C11D34596B7EB /* BadgeViewPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3C9CACA5CC49ABD89BB5C0082B56F17 /* BadgeViewPresenter.swift */; };
BC2B9C2A1711F5583A80C1FA7F6F195F /* SegmentioCellWithImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1BF90D3EF6772ECC6F43EF17AAB5C916 /* SegmentioCellWithImage.swift */; };
C1518E27E6C853C813006C349427A4CC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */; };
C3DB5E9DDBA27211C6E8654A363CA0BC /* UIView+Appearance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38BC6E8817CCBFF23555995D47BF0848 /* UIView+Appearance.swift */; };
C4EFEC716055615A27A3D1338426807D /* BadgeWithCounterViewBigSized.xib in Resources */ = {isa = PBXBuildFile; fileRef = 11C011383E55FDF0C1CFAA8E1E01F52C /* BadgeWithCounterViewBigSized.xib */; };
C917381BC4E7C5EFBC2CD2C898C1C8E4 /* SegmentioCellWithImageBeforeLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56D84AE8DDC577C7E7499059038BABBC /* SegmentioCellWithImageBeforeLabel.swift */; };
D29DE39BAA26D8E4DA7534F05DFB78F4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */; };
D9EBCEA1512D4B307726BFEB5F29EF70 /* BadgeWithCounterViewStandardSized.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E90ECA263F832D2C77F806A4581AE25 /* BadgeWithCounterViewStandardSized.xib */; };
E6E0179AF8247CB20CB77A1E33C88C7F /* RoundImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A561B2B4C70B40E0E028301D454D3EBF /* RoundImageView.swift */; };
EA89BD32CAE3C825C749261B9D4A2031 /* Pods-Segmentio_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = FCCE72372A4C77BEF387923951E588F2 /* Pods-Segmentio_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
F6814CD90D68BE2911E97CE7F62E5DA1 /* BadgeWithCounterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64BE9AEFB42AAAC25501C181FF72B653 /* BadgeWithCounterView.swift */; };
10DBA0DC35646EAA223634A2DD73D86B /* BadgeWithCounterViewStandardSized.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E90ECA263F832D2C77F806A4581AE25 /* BadgeWithCounterViewStandardSized.xib */; };
1F0E113E30DFCE466DADCD6B36FB9563 /* SegmentioCellWithImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1BF90D3EF6772ECC6F43EF17AAB5C916 /* SegmentioCellWithImage.swift */; };
4A6BC5F77C2DC7121875E9796CC0F71C /* RoundImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A561B2B4C70B40E0E028301D454D3EBF /* RoundImageView.swift */; };
65CBF11B7E36B8038CA96C7154BD593F /* SegmentioOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1224468BD5929E62BFF27E1C11853D24 /* SegmentioOptions.swift */; };
6C19E98544CCC74ACB0435CF36812D7E /* SegmentioCellWithLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A4666D5034926280B3C39CB8CA59319 /* SegmentioCellWithLabel.swift */; };
802CB441FA23AAC29D23AF3266B93C81 /* BadgeWithCounterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64BE9AEFB42AAAC25501C181FF72B653 /* BadgeWithCounterView.swift */; };
9B1A0F3B28E1D7077074244267A7CC06 /* BadgeViewPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3C9CACA5CC49ABD89BB5C0082B56F17 /* BadgeViewPresenter.swift */; };
9C52286A3F04BE4FFB59CE603E85EE33 /* UIView+Appearance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38BC6E8817CCBFF23555995D47BF0848 /* UIView+Appearance.swift */; };
9F8DE05359BBE5FE5D6CDF44981E2748 /* Segmentio-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 80BC1DC599A5ED2C131F4E6D0D020D88 /* Segmentio-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
AC1BDB567F0F35B766CA875725D48E4B /* Segmentio-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C56AE5AC5779B7D4F6468D2AB474D9E7 /* Segmentio-dummy.m */; };
B222BF92FB6B2AB1570468B413B9574C /* Pods-Segmentio_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = FCCE72372A4C77BEF387923951E588F2 /* Pods-Segmentio_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
BBBD49F8C72F89C61AF39D22CB78482D /* Segmentio.swift in Sources */ = {isa = PBXBuildFile; fileRef = D91D0C0018887EA8F91F91162FF71F60 /* Segmentio.swift */; };
C460163ABA2667473711E5076164BEA6 /* SegmentioCellWithImageBeforeLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56D84AE8DDC577C7E7499059038BABBC /* SegmentioCellWithImageBeforeLabel.swift */; };
C4D341CAAFF7C6E722E2FA0B51123051 /* SegmentioCellWithImageOverLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71AC7FDBBA82CCF64068DC1436B7C44C /* SegmentioCellWithImageOverLabel.swift */; };
CA80C8652BBBA628FBACB72025D31AB5 /* SegmentioCellWithImageAfterLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 564D3D18F6E439E721C7D49AC8379559 /* SegmentioCellWithImageAfterLabel.swift */; };
CB4E396274804674528FDEF730FFE204 /* SegmentioCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9034CEC1DC6A90954C69B5CF0A879E9D /* SegmentioCell.swift */; };
D2C5536F2936DAFDFB2EB014181A8CD2 /* BadgeWithCounterViewBigSized.xib in Resources */ = {isa = PBXBuildFile; fileRef = 11C011383E55FDF0C1CFAA8E1E01F52C /* BadgeWithCounterViewBigSized.xib */; };
E1A4407E88B99A006D9E2C92438128A4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */; };
E358BED78F38E8EE9D622B189132F620 /* BadgeWithCounterViewBigSized.xib in Resources */ = {isa = PBXBuildFile; fileRef = 11C011383E55FDF0C1CFAA8E1E01F52C /* BadgeWithCounterViewBigSized.xib */; };
E49AB26D0E6E0A15958BA72E63E66F24 /* SegmentioCellWithImageUnderLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 917595D61BE778C2053B6C375292B042 /* SegmentioCellWithImageUnderLabel.swift */; };
E9CCB40A40C825036DBE3AE35204A564 /* Segmentio.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 2AAAF5E594CC994BE5AD10F8928BC48A /* Segmentio.bundle */; };
EBFC5756AF3E115F05FA843982EA45A6 /* BadgeWithCounterViewStandardSized.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E90ECA263F832D2C77F806A4581AE25 /* BadgeWithCounterViewStandardSized.xib */; };
FBD5F9C12B94DAB4178B539E51B01AD5 /* Pods-Segmentio_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 8758BAC37EDDE6390078CCD596B97C99 /* Pods-Segmentio_Example-dummy.m */; };
FFB295F820F3A3F6A6BCFFDA612EE269 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
A6C32E782852D555836218D4A7416DD0 /* PBXContainerItemProxy */ = {
1CD5EA631E033BE1FFAC1F0278614DDB /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
proxyType = 1;
remoteGlobalIDString = D69CC732EFB91EE42BE73E5030BD387C;
remoteGlobalIDString = 699603020952F58BDBA3104C9DFFCE8D;
remoteInfo = Segmentio;
};
B485C2D39BE98A2AA0F4993CC65D306C /* PBXContainerItemProxy */ = {
FC9446558039D9AF888D6FE6B4955A11 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
proxyType = 1;
remoteGlobalIDString = D8AEF8C76AD2A8E5BDCDA4CC1BD107B6;
remoteGlobalIDString = 50E4AD31DE0962A93E2FB9A9936DE5A5;
remoteInfo = "Segmentio-Segmentio";
};
/* End PBXContainerItemProxy section */
@ -55,17 +55,18 @@
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>"; };
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>"; };
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>"; };
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>"; };
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>"; };
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>"; };
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>"; };
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>"; };
@ -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>"; };
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>"; };
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>"; };
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>"; };
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; };
B2527411739A24C97909490FC5C54F10 /* Pods-Segmentio_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-Segmentio_Example.modulemap"; sourceTree = "<group>"; };
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; 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>"; };
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>"; };
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>"; };
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>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
CF0100512E0E927F05DB406E0E01DF38 /* Frameworks */ = {
1032A4A2B2D865D1364B0D814D15B03F /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
FFB295F820F3A3F6A6BCFFDA612EE269 /* Foundation.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
89A56CD477E5A8C2040C847A66A1BB44 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
DD95959AB8521184CAFA5D68D3F0C0BA /* Frameworks */ = {
E3DDCE9DEA1F5BC20D4245CB9DC81BED /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
C1518E27E6C853C813006C349427A4CC /* Foundation.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
FD59EF5B4845512C0FE01CF908756FB5 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
D29DE39BAA26D8E4DA7534F05DFB78F4 /* Foundation.framework in Frameworks */,
E1A4407E88B99A006D9E2C92438128A4 /* Foundation.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -123,6 +123,7 @@
A561B2B4C70B40E0E028301D454D3EBF /* RoundImageView.swift */,
38BC6E8817CCBFF23555995D47BF0848 /* UIView+Appearance.swift */,
);
name = Extensions;
path = Extensions;
sourceTree = "<group>";
};
@ -139,6 +140,7 @@
children = (
C65C2B1DCC149D19571A5F7FAE3D31AF /* Views */,
);
name = Badge;
path = Badge;
sourceTree = "<group>";
};
@ -153,14 +155,6 @@
path = ../..;
sourceTree = "<group>";
};
3DCAB2B7CDE207B3958B6CB957FCC758 /* iOS */ = {
isa = PBXGroup;
children = (
CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */,
);
name = iOS;
sourceTree = "<group>";
};
413F9187DDE34CC36B0E06866BC84500 /* Support Files */ = {
isa = PBXGroup;
children = (
@ -181,6 +175,7 @@
children = (
64BE9AEFB42AAAC25501C181FF72B653 /* BadgeWithCounterView.swift */,
);
name = Views;
path = Views;
sourceTree = "<group>";
};
@ -221,6 +216,7 @@
917595D61BE778C2053B6C375292B042 /* SegmentioCellWithImageUnderLabel.swift */,
6A4666D5034926280B3C39CB8CA59319 /* SegmentioCellWithLabel.swift */,
);
name = Cells;
path = Cells;
sourceTree = "<group>";
};
@ -252,6 +248,7 @@
71680BC21E0B1ABC000B38795FC22CBC /* Cells */,
00A2FBBF1263542044856398E75BAA76 /* Extensions */,
);
name = Source;
path = Source;
sourceTree = "<group>";
};
@ -260,13 +257,14 @@
children = (
A4FF14891748501365A9790ED2BDF024 /* Source */,
);
name = Segmentio;
path = Segmentio;
sourceTree = "<group>";
};
BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = {
isa = PBXGroup;
children = (
3DCAB2B7CDE207B3958B6CB957FCC758 /* iOS */,
D35AF013A5F0BAD4F32504907A52519E /* iOS */,
);
name = Frameworks;
sourceTree = "<group>";
@ -277,6 +275,7 @@
11C011383E55FDF0C1CFAA8E1E01F52C /* BadgeWithCounterViewBigSized.xib */,
6E90ECA263F832D2C77F806A4581AE25 /* BadgeWithCounterViewStandardSized.xib */,
);
name = Views;
path = Views;
sourceTree = "<group>";
};
@ -286,6 +285,7 @@
E3C9CACA5CC49ABD89BB5C0082B56F17 /* BadgeViewPresenter.swift */,
635B6B346CBAAB1DB0593E0D25A25ED9 /* Views */,
);
name = Badge;
path = Badge;
sourceTree = "<group>";
};
@ -299,11 +299,20 @@
name = Products;
sourceTree = "<group>";
};
D35AF013A5F0BAD4F32504907A52519E /* iOS */ = {
isa = PBXGroup;
children = (
6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */,
);
name = iOS;
sourceTree = "<group>";
};
D99857A2684E0E97D1E32D0B130B5366 /* Segmentio */ = {
isa = PBXGroup;
children = (
F1249F9ED37CBEF49B81DE98EA2709C1 /* Source */,
);
name = Segmentio;
path = Segmentio;
sourceTree = "<group>";
};
@ -312,75 +321,39 @@
children = (
1C2ABA084F34F1E71EB56C0EA2DD4699 /* Badge */,
);
name = Source;
path = Source;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
5ADAE197C16A9C5A10D0C5F779D181D8 /* Headers */ = {
598C65CEC64B0118F582684A6FAE8940 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
933D56EF2ECC35F1387B739170AFE07B /* Segmentio-umbrella.h in Headers */,
B222BF92FB6B2AB1570468B413B9574C /* Pods-Segmentio_Example-umbrella.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
C1CCF605E0A81C17A47094F5032DBFAE /* Headers */ = {
6F0BC796080758E4FAABD24B01791B29 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
EA89BD32CAE3C825C749261B9D4A2031 /* Pods-Segmentio_Example-umbrella.h in Headers */,
9F8DE05359BBE5FE5D6CDF44981E2748 /* Segmentio-umbrella.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
1773C65AAC9F8837BB8142660D7320E0 /* Pods-Segmentio_Example */ = {
50E4AD31DE0962A93E2FB9A9936DE5A5 /* Segmentio-Segmentio */ = {
isa = PBXNativeTarget;
buildConfigurationList = CC37EAE0F58FC2B11F123B84FE6B0FAC /* Build configuration list for PBXNativeTarget "Pods-Segmentio_Example" */;
buildConfigurationList = 2041218D8A7CEE9097033B80A896D7B1 /* Build configuration list for PBXNativeTarget "Segmentio-Segmentio" */;
buildPhases = (
5B2B601769FDD1B81F6ECD3FBC7CAF20 /* Sources */,
DD95959AB8521184CAFA5D68D3F0C0BA /* Frameworks */,
C1CCF605E0A81C17A47094F5032DBFAE /* Headers */,
);
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 */,
3F54670759DAE1C79D7082F7577C96BC /* Sources */,
89A56CD477E5A8C2040C847A66A1BB44 /* Frameworks */,
AE553F700E4B89BB20D4562B90C6FDD8 /* Resources */,
);
buildRules = (
);
@ -391,13 +364,50 @@
productReference = 2AAAF5E594CC994BE5AD10F8928BC48A /* Segmentio.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 */
/* Begin PBXProject section */
D41D8CD98F00B204E9800998ECF8427E /* Project object */ = {
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 0730;
LastSwiftUpdateCheck = 0830;
LastUpgradeCheck = 0700;
};
buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */;
@ -412,95 +422,134 @@
projectDirPath = "";
projectRoot = "";
targets = (
1773C65AAC9F8837BB8142660D7320E0 /* Pods-Segmentio_Example */,
D69CC732EFB91EE42BE73E5030BD387C /* Segmentio */,
D8AEF8C76AD2A8E5BDCDA4CC1BD107B6 /* Segmentio-Segmentio */,
FA42DDB511D342F4A39A132C777D0021 /* Pods-Segmentio_Example */,
699603020952F58BDBA3104C9DFFCE8D /* Segmentio */,
50E4AD31DE0962A93E2FB9A9936DE5A5 /* Segmentio-Segmentio */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
2DA0271DF525DE03AD9084DEC244781A /* Resources */ = {
AE553F700E4B89BB20D4562B90C6FDD8 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8F726950BDA00432603D2B6B01881D59 /* BadgeWithCounterViewBigSized.xib in Resources */,
655C575E9623729978F286F79E4EAEB8 /* BadgeWithCounterViewStandardSized.xib in Resources */,
E358BED78F38E8EE9D622B189132F620 /* BadgeWithCounterViewBigSized.xib in Resources */,
10DBA0DC35646EAA223634A2DD73D86B /* BadgeWithCounterViewStandardSized.xib in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
F167B0867D416B414A778DE5486644A6 /* Resources */ = {
EC2DCA2DC35D6B0CC028F0166FFB89D3 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
C4EFEC716055615A27A3D1338426807D /* BadgeWithCounterViewBigSized.xib in Resources */,
D9EBCEA1512D4B307726BFEB5F29EF70 /* BadgeWithCounterViewStandardSized.xib in Resources */,
1F40A33F3F753FF73C5F80F006E14410 /* Segmentio.bundle in Resources */,
D2C5536F2936DAFDFB2EB014181A8CD2 /* BadgeWithCounterViewBigSized.xib in Resources */,
EBFC5756AF3E115F05FA843982EA45A6 /* BadgeWithCounterViewStandardSized.xib in Resources */,
E9CCB40A40C825036DBE3AE35204A564 /* Segmentio.bundle in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
5B2B601769FDD1B81F6ECD3FBC7CAF20 /* Sources */ = {
26746DB23C01A10BE83BA4ED72329865 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
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;
};
BECDA7466A3F2048BD0D16982C6C441A /* Sources */ = {
3F54670759DAE1C79D7082F7577C96BC /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
F9B7581237D6E81DE197B72773B36420 /* Sources */ = {
71E9F4CE9357EDBDEEE4D005D3A6F583 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
9EE6B5FE2A8EA2C0612C11D34596B7EB /* BadgeViewPresenter.swift 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 */,
FBD5F9C12B94DAB4178B539E51B01AD5 /* Pods-Segmentio_Example-dummy.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
7EE0160D6232AE6A93308C253B5E48D6 /* PBXTargetDependency */ = {
0DCD8E423B2B77C138FA0726DE2A5C2D /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = "Segmentio-Segmentio";
target = D8AEF8C76AD2A8E5BDCDA4CC1BD107B6 /* Segmentio-Segmentio */;
targetProxy = B485C2D39BE98A2AA0F4993CC65D306C /* PBXContainerItemProxy */;
target = 50E4AD31DE0962A93E2FB9A9936DE5A5 /* Segmentio-Segmentio */;
targetProxy = FC9446558039D9AF888D6FE6B4955A11 /* PBXContainerItemProxy */;
};
D49BEB0E5AAF16F8BE48EA55C820C1A4 /* PBXTargetDependency */ = {
76FB2D568968517D610E58E6DE20B975 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = Segmentio;
target = D69CC732EFB91EE42BE73E5030BD387C /* Segmentio */;
targetProxy = A6C32E782852D555836218D4A7416DD0 /* PBXContainerItemProxy */;
target = 699603020952F58BDBA3104C9DFFCE8D /* Segmentio */;
targetProxy = 1CD5EA631E033BE1FFAC1F0278614DDB /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency 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;
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;
@ -508,10 +557,182 @@
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__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__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGNING_REQUIRED = NO;
@ -540,115 +761,7 @@
};
name = Debug;
};
44CDBB6D11DE06DB64D6268622BDC47E /* Release */ = {
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 */ = {
CE9298B08B651D08B8B497D16EBD8F6B /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = AAF3441A43AA58E58A7340FA1E66271B /* Segmentio.xcconfig */;
buildSettings = {
@ -665,126 +778,41 @@
};
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 */
/* 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" */ = {
isa = XCConfigurationList;
buildConfigurations = (
015A368F878AC3E2CEAE21DDE8026304 /* Debug */,
44CDBB6D11DE06DB64D6268622BDC47E /* Release */,
C104F7F091290C3D1E248192F07FE689 /* Debug */,
34FE9531DA9AF2820790339988D5FF41 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
785D3215E776BE829EB1D98F89F1A8C1 /* Build configuration list for PBXNativeTarget "Segmentio" */ = {
A1D1618119E2E7C51F19EB05FDF5156C /* Build configuration list for PBXNativeTarget "Pods-Segmentio_Example" */ = {
isa = XCConfigurationList;
buildConfigurations = (
6939D89BCF3CB71D8A0CB554AEAC1779 /* Debug */,
E8435E0DCC8F7A80386C452616DACB34 /* Release */,
4E822D5795BA9E4178943FED4D9C6AF4 /* Debug */,
0CAC0F262E7DD097927860FC763994DF /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
BD0B4F1676768CCD5A8C4B0E5B53427F /* Build configuration list for PBXNativeTarget "Segmentio-Segmentio" */ = {
AEAE75D2FEC7B21249461B615D5A77D0 /* Build configuration list for PBXNativeTarget "Segmentio" */ = {
isa = XCConfigurationList;
buildConfigurations = (
A6D8F8AC9425BACBC3621CFD7597790C /* Debug */,
B39C8A659F54F5D7007A70CE400454EA /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
CC37EAE0F58FC2B11F123B84FE6B0FAC /* Build configuration list for PBXNativeTarget "Pods-Segmentio_Example" */ = {
isa = XCConfigurationList;
buildConfigurations = (
BF58FEE71132386297AFD4D409190547 /* Debug */,
69F41B3AE04E5DCE90065CD8E029712C /* Release */,
7661A8E2CE1CB37964D0DB637C77E431 /* Debug */,
B21E056A43A153E5C75A8623229ECF5D /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;

View File

@ -5,7 +5,7 @@ This application makes use of the following third party libraries:
The MIT License (MIT)
Copyright © 2015 Yalantis
Copyright © 2017 Yalantis
Permission is hereby granted, free of charge, to any person obtaining a copy
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,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
Generated by CocoaPods - https://cocoapods.org

View File

@ -16,7 +16,7 @@
<key>FooterText</key>
<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
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
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.</string>
THE SOFTWARE.
</string>
<key>License</key>
<string>MIT</string>
<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
# Use the current code_sign_identitiy
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\""
/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'"
if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
code_sign_cmd="$code_sign_cmd &"
fi
echo "$code_sign_cmd"
eval "$code_sign_cmd"
fi
}
@ -89,3 +94,6 @@ fi
if [[ "$CONFIGURATION" == "Release" ]]; then
install_framework "$BUILT_PRODUCTS_DIR/Segmentio/Segmentio.framework"
fi
if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
wait
fi

View File

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

View File

@ -1,4 +1,14 @@
#ifdef __OBJC__
#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;

View File

@ -1,5 +1,4 @@
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
EMBEDDED_CONTENT_CONTAINS_SWIFT = YES
FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/Segmentio"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
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"
PODS_BUILD_DIR = $BUILD_DIR
PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
PODS_ROOT = ${SRCROOT}/Pods

View File

@ -1,5 +1,4 @@
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
EMBEDDED_CONTENT_CONTAINS_SWIFT = YES
FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/Segmentio"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
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"
PODS_BUILD_DIR = $BUILD_DIR
PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
PODS_ROOT = ${SRCROOT}/Pods

View File

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

View File

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

View File

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

View File

@ -1,4 +1,14 @@
#ifdef __OBJC__
#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;

View File

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

View File

@ -333,7 +333,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
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;
};
/* 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(
content: segmentioContent(),
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
switch segmentioStyle {
case .imageBeforeLabel, .imageAfterLabel:
@ -49,7 +49,7 @@ struct SegmentioBuilder {
return SegmentioOptions(
backgroundColor: ColorPalette.white,
maxVisibleItems: 3,
segmentPosition: segmentioPosition,
scrollEnabled: true,
indicatorOptions: segmentioIndicatorOptions(),
horizontalSeparatorOptions: segmentioHorizontalSeparatorOptions(),

View File

@ -1,5 +1,15 @@
{
"images" : [
{
"idiom" : "iphone",
"size" : "20x20",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "20x20",
"scale" : "3x"
},
{
"size" : "29x29",
"idiom" : "iphone",
@ -36,6 +46,16 @@
"filename" : "Icon-60@3x.png",
"scale" : "3x"
},
{
"idiom" : "ipad",
"size" : "20x20",
"scale" : "1x"
},
{
"idiom" : "ipad",
"size" : "20x20",
"scale" : "2x"
},
{
"size" : "29x29",
"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)
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>.
##Requirements
## Requirements
- Xcode 8
- iOS 8.x+
- Swift 3
##Installation
## Installation
####[CocoaPods](http://cocoapods.org)
#### [CocoaPods](http://cocoapods.org)
```ruby
use_frameworks!
@ -24,18 +24,18 @@ pod 'Segmentio', '~> 2.1'
*CocoaPods v1.1.0 or later required*
####[Carthage](http://github.com/Carthage/Carthage)
#### [Carthage](http://github.com/Carthage/Carthage)
```ruby
github "Yalantis/Segmentio" ~> 2.1
```
##Usage
####Import `Segmentio` module
## Usage
#### Import `Segmentio` module
```swift
import Segmentio
```
####Init
#### Init
You can initialize a `Segmentio` instance from code:
```swift
@ -54,7 +54,7 @@ add a `UIView` instance in your .storyboard or .xib, set `Segmentio` class and c
@IBOutlet weak var segmentioView: Segmentio!
```
####Setup `Segmentio`
#### Setup `Segmentio`
```swift
segmentioView.setup(
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:
```swift
@ -87,14 +87,14 @@ let tornadoItem = SegmentioItem(
content.append(tornadoItem)
```
####Handling selection
#### Handling selection
You can specify selected item manually:
```swift
segmentioView.selectedSegmentioIndex = 0
```
####Handling callback
#### Handling callback
```swift
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:
```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.
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)

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -49,6 +49,7 @@ open class Segmentio: UIView {
fileprivate var segmentioOptions = SegmentioOptions()
fileprivate var segmentioStyle = SegmentioStyle.imageOverLabel
fileprivate var isPerformingScrollAnimation = false
fileprivate var isCollectionViewScrolling = false
fileprivate var topSeparatorView: UIView?
fileprivate var bottomSeparatorView: UIView?
@ -96,6 +97,7 @@ open class Segmentio: UIView {
collectionView.bounces = true
collectionView.isScrollEnabled = segmentioOptions.scrollEnabled
collectionView.backgroundColor = .clear
collectionView.accessibilityIdentifier = "segmentio_collection_view"
segmentioCollectionView = collectionView
@ -112,6 +114,8 @@ open class Segmentio: UIView {
let separatorHeight = horizontalSeparatorOptions.height
switch horizontalSeparatorOptions.type {
case .none:
separatorsHeight = 0
case .top:
collectionViewFrameMinY = separatorHeight
separatorsHeight = separatorHeight
@ -251,7 +255,7 @@ open class Segmentio: UIView {
bottomSeparatorView = UIView(frame: CGRect.zero)
setupConstraintsForSeparatorView(
separatorView: bottomSeparatorView,
originY: frame.maxY - height
originY: bounds.maxY - height
)
}
}
@ -269,7 +273,7 @@ open class Segmentio: UIView {
item: separatorView,
attribute: .top,
relatedBy: .equal,
toItem: superview,
toItem: self,
attribute: .top,
multiplier: 1,
constant: originY
@ -324,6 +328,7 @@ open class Segmentio: UIView {
public func reloadSegmentio() {
segmentioCollectionView?.collectionViewLayout.invalidateLayout()
segmentioCollectionView?.reloadData()
guard selectedSegmentioIndex != -1 else { return }
scrollToItemAtContext()
moveShapeLayerAtContext()
}
@ -335,11 +340,7 @@ open class Segmentio: UIView {
let item = itemInSuperview(ratio: options.ratio)
let context = contextForItem(item)
let points = Points(
context: context,
item: item,
pointY: indicatorPointY()
)
let points = Points(context: context, item: item, atIndex: selectedSegmentioIndex, allItems: segmentioItems, pointY: indicatorPointY(), position: segmentioOptions.segmentPosition, style: segmentioStyle)
moveShapeLayer(
indicatorLayer,
@ -353,11 +354,7 @@ open class Segmentio: UIView {
let item = itemInSuperview()
let context = contextForItem(item)
let points = Points(
context: context,
item: item,
pointY: bounds.midY
)
let points = Points(context: context, item: item, atIndex: selectedSegmentioIndex, allItems: segmentioItems, pointY: bounds.midY, position: segmentioOptions.segmentPosition, style: segmentioStyle)
moveShapeLayer(
selectedLayer,
@ -375,29 +372,29 @@ open class Segmentio: UIView {
return
}
guard selectedSegmentioIndex != -1 else { return }
let item = itemInSuperview()
let context = contextForItem(item)
if context.isLastOrPrelastVisibleCell == true {
let newIndex = selectedSegmentioIndex + (context.isLastCell ? 0 : 1)
let newIndexPath = IndexPath(item: newIndex, section: numberOfSections - 1)
segmentioCollectionView?.scrollToItem(
at: newIndexPath,
at: UICollectionViewScrollPosition(),
animated: true
)
}
segmentioCollectionView?.scrollRectToVisible(centerRect(for: item), animated: true)
}
if context.isFirstOrSecondVisibleCell == true && selectedSegmentioIndex != -1 {
let newIndex = selectedSegmentioIndex - (context.isFirstIndex ? 1 : 0)
let newIndexPath = IndexPath(item: newIndex, section: numberOfSections - 1)
segmentioCollectionView?.scrollToItem(
at: newIndexPath,
at: UICollectionViewScrollPosition(),
animated: true
)
fileprivate func centerRect(for item: ItemInSuperview) -> CGRect {
let item = itemInSuperview()
var centerRect = item.cellFrameInSuperview
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
} else if segmentioCollectionView!.contentSize.width - item.endX < (item.collectionViewWidth - centerRect.width) / 2 {
centerRect.origin.x = segmentioCollectionView!.contentSize.width - item.collectionViewWidth
centerRect.size.width = item.collectionViewWidth
} else {
centerRect.origin.x = item.startX - (item.collectionViewWidth - centerRect.width) / 2 + segmentioCollectionView!.contentOffset.x
centerRect.size.width = item.collectionViewWidth
}
return centerRect
}
// MARK: Move shape layer
@ -463,15 +460,26 @@ open class Segmentio: UIView {
var cellRect = CGRect.zero
var shapeLayerWidth: CGFloat = 0
if let collectionView = segmentioCollectionView {
if let collectionView = segmentioCollectionView, selectedSegmentioIndex != -1 {
collectionViewWidth = collectionView.frame.width
let maxVisibleItems = segmentioOptions.maxVisibleItems > segmentioItems.count ? CGFloat(segmentioItems.count) : CGFloat(segmentioOptions.maxVisibleItems)
cellWidth = floor(collectionViewWidth / maxVisibleItems)
cellWidth = segmentWidth(for: IndexPath(row: selectedSegmentioIndex, section: 0))
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(
x: floor(CGFloat(selectedSegmentioIndex) * cellWidth - collectionView.contentOffset.x),
x: x,
y: 0,
width: floor(collectionViewWidth / maxVisibleItems),
width: cellWidth,
height: collectionView.frame.height
)
@ -487,6 +495,46 @@ open class Segmentio: UIView {
)
}
// 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
fileprivate func indicatorPointY() -> CGFloat {
@ -511,6 +559,8 @@ open class Segmentio: UIView {
let isIndicatorTop = indicatorOptions.type == .top
switch horizontalSeparatorOptions.type {
case .none:
break
case .top:
indicatorPointY = isIndicatorTop ? indicatorPointY + separatorHeight : indicatorPointY
case .bottom:
@ -527,6 +577,10 @@ open class Segmentio: UIView {
extension Segmentio: UICollectionViewDataSource {
public func numberOfSections(in collectionView: UICollectionView) -> Int {
return 1
}
public func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return segmentioItems.count
}
@ -536,14 +590,20 @@ extension Segmentio: UICollectionViewDataSource {
withReuseIdentifier: segmentioStyle.rawValue,
for: indexPath) as! SegmentioCell
let content = segmentioItems[indexPath.row]
cell.configure(
content: segmentioItems[indexPath.row],
content: content,
style: segmentioStyle,
options: segmentioOptions,
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
}
@ -569,8 +629,7 @@ extension Segmentio: UICollectionViewDelegate {
extension Segmentio: UICollectionViewDelegateFlowLayout {
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: floor(collectionView.frame.width / maxVisibleItems), height: collectionView.frame.height)
return CGSize(width: segmentWidth(for: indexPath), height: collectionView.frame.height)
}
}
@ -605,40 +664,79 @@ extension Segmentio: UIScrollViewDelegate {
}
}
public func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
isCollectionViewScrolling = false
}
}
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
var startX = item.startX
var endX = item.endX
if context.isFirstCell == false && context.isLastCell == false {
if context.isLastOrPrelastVisibleCell == true {
let updatedStartX = item.collectionViewWidth - (cellWidth * 2) + ((cellWidth - item.shapeLayerWidth) / 2)
startX = updatedStartX
let updatedEndX = updatedStartX + item.shapeLayerWidth
endX = updatedEndX
switch position {
case .fixed(_):
if context.isFirstCell == false && context.isLastCell == false {
if context.isLastOrPrelastVisibleCell == true {
let updatedStartX = item.collectionViewWidth - (cellWidth * 2) + ((cellWidth - item.shapeLayerWidth) / 2)
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
}
}
if context.isFirstOrSecondVisibleCell == true {
let updatedEndX = (cellWidth * 2) - ((cellWidth - item.shapeLayerWidth) / 2)
endX = updatedEndX
let updatedStartX = updatedEndX - item.shapeLayerWidth
startX = updatedStartX
case .dynamic:
// If the collection content view is not completely visible...
// We have to calculate the final position of the item
var dynamicWidth: CGFloat = 0
for item in allItems {
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)

View File

@ -14,12 +14,20 @@ public struct SegmentioItem {
public var title: String?
public var image: UIImage?
public var selectedImage: UIImage?
public var badgeCount: Int?
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.image = image
self.selectedImage = selectedImage ?? image
}
public mutating func addBadge(_ count: Int, color: UIColor) {
@ -56,7 +64,7 @@ public struct SegmentioState {
// MARK: - Horizontal separator
public enum SegmentioHorizontalSeparatorType {
case none
case top
case bottom
case topAndBottom
@ -116,6 +124,13 @@ public struct SegmentioIndicatorOptions {
}
// MARK: - Position
public enum SegmentioPosition {
case dynamic
case fixed(maxVisibleItems: Int)
}
// MARK: - Control options
public enum SegmentioStyle: String {
@ -148,6 +163,16 @@ public enum SegmentioStyle: String {
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)
@ -155,7 +180,7 @@ public typealias SegmentioStates = (defaultState: SegmentioState, selectedState:
public struct SegmentioOptions {
var backgroundColor: UIColor
var maxVisibleItems: Int
var segmentPosition: SegmentioPosition
var scrollEnabled: Bool
var horizontalSeparatorOptions: SegmentioHorizontalSeparatorOptions?
var verticalSeparatorOptions: SegmentioVerticalSeparatorOptions?
@ -168,7 +193,7 @@ public struct SegmentioOptions {
public init() {
self.backgroundColor = .lightGray
self.maxVisibleItems = 4
self.segmentPosition = .fixed(maxVisibleItems: 4)
self.scrollEnabled = true
self.horizontalSeparatorOptions = SegmentioHorizontalSeparatorOptions()
@ -188,9 +213,9 @@ public struct SegmentioOptions {
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.maxVisibleItems = maxVisibleItems
self.segmentPosition = segmentPosition
self.scrollEnabled = scrollEnabled
self.indicatorOptions = indicatorOptions
self.horizontalSeparatorOptions = horizontalSeparatorOptions