Skip to content

Commit 0fec6fb

Browse files
Make horizontal padding configurable on IconCollectionView (#1421)
* Pass padding * Test spacing between image and text * Remove unnecessary code * Update FinniversKit/Sources/Components/IconCollection/IconCollectionView.swift Co-authored-by: Andrii <[email protected]> * Update FinniversKit/Sources/Components/IconCollection/IconCollectionView.swift Co-authored-by: Andrii <[email protected]> --------- Co-authored-by: Andrii <[email protected]>
1 parent 384e923 commit 0fec6fb

File tree

2 files changed

+20
-11
lines changed

2 files changed

+20
-11
lines changed

FinniversKit/Sources/Components/IconCollection/HorizontalIconCollectionViewCell.swift

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,18 @@ import UIKit
66
import Warp
77

88
public class HorizontalIconCollectionViewCell: UICollectionViewCell {
9-
private static let titleSideMargin = Warp.Spacing.spacing100
9+
private static let leadingInset: CGFloat = 0
10+
private static let trailingInset: CGFloat = Warp.Spacing.spacing100
11+
private static let iconToTextSpacing: CGFloat = Warp.Spacing.spacing100
12+
private static let verticalPadding: CGFloat = Warp.Spacing.spacing50
1013
private static let titleStyle = Warp.Typography.body
1114
private static let bodyStyle = Warp.Typography.bodyStrong
1215

1316
static func height(for viewModel: IconCollectionViewModel, withWidth width: CGFloat) -> CGFloat {
1417
let imageSize = viewModel.image.size
15-
let textWidth = width - imageSize.width - (3 * titleSideMargin)
18+
let textWidth = width
19+
- imageSize.width
20+
- (Self.leadingInset + Self.iconToTextSpacing + Self.trailingInset)
1621

1722
let titleHeight = viewModel.title?.height(withConstrainedWidth: textWidth, font: titleStyle.uiFont) ?? 0
1823
let bodyHeight = viewModel.text.height(withConstrainedWidth: textWidth, font: bodyStyle.uiFont)
@@ -87,15 +92,17 @@ public class HorizontalIconCollectionViewCell: UICollectionViewCell {
8792

8893
NSLayoutConstraint.activate([
8994
iconImageView.centerYAnchor.constraint(equalTo: contentView.centerYAnchor),
90-
iconImageView.leadingAnchor.constraint(equalTo: contentView.leadingAnchor, constant: HorizontalIconCollectionViewCell.titleSideMargin),
95+
iconImageView.leadingAnchor.constraint(equalTo: contentView.leadingAnchor, constant: Self.leadingInset),
9196

92-
titleLabel.topAnchor.constraint(equalTo: contentView.topAnchor, constant: Warp.Spacing.spacing50),
93-
titleLabel.leadingAnchor.constraint(equalTo: iconImageView.trailingAnchor, constant: HorizontalIconCollectionViewCell.titleSideMargin),
94-
titleLabel.trailingAnchor.constraint(equalTo: contentView.trailingAnchor, constant: -HorizontalIconCollectionViewCell.titleSideMargin),
97+
titleLabel.topAnchor.constraint(equalTo: contentView.topAnchor, constant: Self.verticalPadding),
98+
titleLabel.leadingAnchor.constraint(equalTo: iconImageView.trailingAnchor, constant: Self.iconToTextSpacing),
99+
titleLabel.trailingAnchor.constraint(equalTo: contentView.trailingAnchor, constant: -Self.trailingInset),
95100

96101
bodyLabel.topAnchor.constraint(equalTo: titleLabel.bottomAnchor),
97-
bodyLabel.leadingAnchor.constraint(equalTo: iconImageView.trailingAnchor, constant: HorizontalIconCollectionViewCell.titleSideMargin),
98-
bodyLabel.trailingAnchor.constraint(equalTo: contentView.trailingAnchor, constant: -HorizontalIconCollectionViewCell.titleSideMargin)
102+
bodyLabel.leadingAnchor.constraint(equalTo: iconImageView.trailingAnchor, constant: Self.iconToTextSpacing),
103+
bodyLabel.trailingAnchor.constraint(equalTo: contentView.trailingAnchor, constant: -Self.trailingInset),
104+
105+
bodyLabel.bottomAnchor.constraint(lessThanOrEqualTo: contentView.bottomAnchor, constant: -Self.verticalPadding)
99106
])
100107
}
101108
}

FinniversKit/Sources/Components/IconCollection/IconCollectionView.swift

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ public final class IconCollectionView: UIView {
2020

2121
// MARK: - Private properties
2222

23-
private var alignment: Alignment
23+
private let alignment: Alignment
24+
private let horisontalPadding: CGFloat
2425
private var viewModels = [IconCollectionViewModel]()
2526

2627
private lazy var collectionView: UICollectionView = {
@@ -46,16 +47,17 @@ public final class IconCollectionView: UIView {
4647
private lazy var margins: UIEdgeInsets = {
4748
switch alignment {
4849
case .horizontal:
49-
return UIEdgeInsets(vertical: Warp.Spacing.spacing200, horizontal: Warp.Spacing.spacing50)
50+
return UIEdgeInsets(vertical: Warp.Spacing.spacing200, horizontal: horisontalPadding)
5051
case .vertical:
5152
return .zero
5253
}
5354
}()
5455

5556
// MARK: - Init
5657

57-
public init(alignment: Alignment = .vertical) {
58+
public init(alignment: Alignment = .vertical, horisontalPadding: CGFloat = Warp.Spacing.spacing50) {
5859
self.alignment = alignment
60+
self.horisontalPadding = horisontalPadding
5961
super.init(frame: .zero)
6062
setup()
6163
}

0 commit comments

Comments
 (0)