Skip to content

Commit 40be511

Browse files
committed
add example of usage stackview
1 parent 98faef2 commit 40be511

File tree

3 files changed

+34
-2
lines changed

3 files changed

+34
-2
lines changed

Components/Sources/Common/Views/StackView.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import UIKit
99
import ReactiveDataDisplayManager
1010

11-
final public class StackView: UIView {
11+
public final class StackView: UIView {
1212

1313
// MARK: - Private Properties
1414

Example/ReactiveDataDisplayManager/Table/StackCellExampleViewController/StackCellExampleViewController.swift

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ private extension StackCellExampleViewController {
4848
func fillAdapter() {
4949

5050
// Add section into adapter
51-
adapter += Section(header: EmptyTableHeaderGenerator(), footer: EmptyTableFooterGenerator()) {
51+
adapter += Section(header: TitleHeaderGenerator(model: "TableVStack"), footer: EmptyTableFooterGenerator()) {
5252
TableVStack {
5353
TitleTableViewCell.buildView(with: "Текст 1")
5454
TitleTableViewCell.buildView(with: "Текст 2")
@@ -63,6 +63,34 @@ private extension StackCellExampleViewController {
6363
}
6464
}
6565

66+
// Note that using `UITableViewCell` or `UICollectionViewCell` inside stack is not recommended, but it possible
67+
adapter += Section(header: TitleHeaderGenerator(model: "StackView based cells"), footer: EmptyTableFooterGenerator()) {
68+
StackView.rddm.tableGenerator(with: .build { vStack in
69+
vStack.background(.solid(.rddm))
70+
vStack.style(.init(axis: .vertical,
71+
spacing: 8,
72+
alignment: .fill,
73+
distribution: .fill))
74+
vStack.children([
75+
TitleTableViewCell.rddm.baseStackGenerator(with: "Текст 1", and: .nib),
76+
TitleTableViewCell.rddm.baseStackGenerator(with: "Текст 2", and: .nib),
77+
StackView.rddm.baseStackGenerator(with: .build { hStack in
78+
hStack.background(.solid(.systemBlue))
79+
hStack.style(.init(axis: .horizontal,
80+
spacing: 4,
81+
alignment: .fill,
82+
distribution: .fillEqually))
83+
84+
hStack.children([
85+
TitleTableViewCell.rddm.baseStackGenerator(with: "Текст 4", and: .nib),
86+
TitleTableViewCell.rddm.baseStackGenerator(with: "Текст 5", and: .nib)
87+
])
88+
}),
89+
TitleTableViewCell.rddm.baseStackGenerator(with: "Текст 3", and: .nib)
90+
])
91+
}, and: .class)
92+
}
93+
6694
// Tell adapter that we've changed generators
6795
adapter => .reload
6896
}

Example/ReactiveDataDisplayManager/Table/Views/Cells/TitleTableViewCell/TitleTableViewCell.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ class TitleTableViewCell: UITableViewCell, CalculatableHeightItem {
2626
return self
2727
}
2828

29+
override var intrinsicContentSize: CGSize {
30+
return CGSize(width: UIView.noIntrinsicMetric, height: 44)
31+
}
32+
2933
// MARK: - CalculatableHeightItem
3034

3135
static func getHeight(forWidth width: CGFloat, with model: String) -> CGFloat {

0 commit comments

Comments
 (0)