Skip to content

Commit d6d4928

Browse files
committed
Apply text color override to collection cells.
1 parent 1fc80ca commit d6d4928

File tree

2 files changed

+17
-6
lines changed

2 files changed

+17
-6
lines changed

Segmentio/Source/Cells/SegmentioCell.swift

+14-3
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ class SegmentioCell: UICollectionViewCell {
1919
var containerView: UIView?
2020
var imageContainerView: UIView?
2121

22+
var overrideTextColor: UIColor?
23+
2224
var topConstraint: NSLayoutConstraint?
2325
var bottomConstraint: NSLayoutConstraint?
2426
var cellSelected = false
@@ -42,11 +44,15 @@ class SegmentioCell: UICollectionViewCell {
4244

4345
if style.isWithText() {
4446
let highlightedTitleTextColor = cellSelected ? selectedState.titleTextColor
45-
: defaultState.titleTextColor
47+
: defaultState.titleTextColor
4648
let highlightedTitleFont = cellSelected ? selectedState.titleFont : defaultState.titleFont
4749

50+
if let overrideTextColor = overrideTextColor {
51+
segmentTitleLabel?.textColor = overrideTextColor
52+
} else {
4853
segmentTitleLabel?.textColor = isHighlighted ? highlightedState.titleTextColor
4954
: highlightedTitleTextColor
55+
}
5056
segmentTitleLabel?.font = isHighlighted ? highlightedState.titleFont : highlightedTitleFont
5157
}
5258

@@ -139,7 +145,11 @@ class SegmentioCell: UICollectionViewCell {
139145
let defaultState = options.states.defaultState
140146

141147
if style.isWithText() {
142-
segmentTitleLabel?.textColor = selected ? selectedState.titleTextColor : defaultState.titleTextColor
148+
if let overrideTextColor = overrideTextColor {
149+
segmentTitleLabel?.textColor = overrideTextColor
150+
} else {
151+
segmentTitleLabel?.textColor = selected ? selectedState.titleTextColor : defaultState.titleTextColor
152+
}
143153
segmentTitleLabel?.font = selected ? selectedState.titleFont : defaultState.titleFont
144154
segmentTitleLabel?.alpha = selected ? selectedState.titleAlpha : defaultState.titleAlpha
145155
segmentTitleLabel?.minimumScaleFactor = 0.5
@@ -291,11 +301,12 @@ class SegmentioCell: UICollectionViewCell {
291301
}
292302
}
293303

304+
overrideTextColor = content.overrideTextColor
294305
if style.isWithText() {
295306
segmentTitleLabel?.textAlignment = options.labelTextAlignment
296307
segmentTitleLabel?.numberOfLines = options.labelTextNumberOfLines
297308
let defaultState = options.states.defaultState
298-
segmentTitleLabel?.textColor = content.textColor ?? defaultState.titleTextColor
309+
segmentTitleLabel?.textColor = overrideTextColor ?? defaultState.titleTextColor
299310
segmentTitleLabel?.font = defaultState.titleFont
300311
segmentTitleLabel?.text = content.title
301312
segmentTitleLabel?.minimumScaleFactor = 0.5

Segmentio/Source/SegmentioOptions.swift

+3-3
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import UIKit
1313
public struct SegmentioItem {
1414

1515
public var title: String?
16-
public var textColor: UIColor?
16+
public var overrideTextColor: UIColor?
1717
public var image: UIImage?
1818
public var selectedImage: UIImage?
1919
public var imageTintColor: UIColor?
@@ -26,9 +26,9 @@ public struct SegmentioItem {
2626
return label.intrinsicContentSize.width
2727
}
2828

29-
public init(title: String?, image: UIImage?, selectedImage: UIImage? = nil, titleColor: UIColor? = nil, imageTintColor: UIColor? = nil) {
29+
public init(title: String?, image: UIImage?, selectedImage: UIImage? = nil, imageTintColor: UIColor? = nil, overrideTextColor: UIColor? = nil) {
3030
self.title = title
31-
self.textColor = titleColor
31+
self.overrideTextColor = overrideTextColor
3232
self.image = image
3333
self.selectedImage = selectedImage ?? image
3434
self.imageTintColor = imageTintColor

0 commit comments

Comments
 (0)