Merge branch 'feature/develop_mvp_3' into feature/navigation_bar_style
This commit is contained in:
commit
67c745c719
@ -23,7 +23,7 @@ import UIKit
|
||||
var additionalData: [AnyHashable: Any]?
|
||||
|
||||
let layout = UICollectionViewFlowLayout()
|
||||
public var collectionView: UICollectionView?
|
||||
public var collectionView: CollectionView?
|
||||
|
||||
let bottomScrollView = UIScrollView(frame: .zero)
|
||||
let bottomContentView = View()
|
||||
@ -61,6 +61,7 @@ import UIKit
|
||||
|
||||
open override func updateView(_ size: CGFloat) {
|
||||
super.updateView(size)
|
||||
collectionView?.updateView(size)
|
||||
}
|
||||
|
||||
open override func setupView() {
|
||||
@ -76,7 +77,7 @@ import UIKit
|
||||
layout.scrollDirection = .horizontal
|
||||
layout.minimumLineSpacing = 0
|
||||
|
||||
let collectionView = UICollectionView(frame: .zero, collectionViewLayout: layout)
|
||||
let collectionView = CollectionView(frame: .zero, collectionViewLayout: layout)
|
||||
collectionView.translatesAutoresizingMaskIntoConstraints = false
|
||||
collectionView.register(TabItemCell.self, forCellWithReuseIdentifier: TabCellId)
|
||||
collectionView.backgroundColor = .clear
|
||||
@ -171,6 +172,7 @@ extension Tabs: UICollectionViewDataSource {
|
||||
return UICollectionViewCell()
|
||||
}
|
||||
cell.updateCell(labelModel: labelModel, indexPath: indexPath, delegateObject: delegateObject, additionalData: additionalData, selected: indexPath.row == selectedIndex, tabsModel: tabsModel)
|
||||
updateView(collectionView.bounds.width)
|
||||
return cell
|
||||
}
|
||||
}
|
||||
@ -316,7 +318,6 @@ extension Tabs {
|
||||
|
||||
@objcMembers public class TabItemCell: CollectionViewCell {
|
||||
public let label = Label()
|
||||
public var labelModel: LabelModel?
|
||||
|
||||
public override func setupView() {
|
||||
super.setupView()
|
||||
@ -325,10 +326,14 @@ extension Tabs {
|
||||
label.baselineAdjustment = .alignCenters
|
||||
}
|
||||
|
||||
public override func updateView(_ size: CGFloat) {
|
||||
super.updateView(size)
|
||||
label.updateView(size)
|
||||
}
|
||||
|
||||
public func updateCell(labelModel: LabelModel, indexPath: IndexPath, delegateObject: MVMCoreUIDelegateObject?, additionalData: [AnyHashable: Any]?, selected: Bool, tabsModel: TabsModel?) {
|
||||
label.reset()
|
||||
label.set(with: labelModel, delegateObject, additionalData)
|
||||
self.labelModel = labelModel
|
||||
if selected {
|
||||
label.textColor = tabsModel?.selectedColor.uiColor ?? .black
|
||||
} else {
|
||||
|
||||
@ -113,8 +113,8 @@ public class TabsModel: MoleculeModelProtocol {
|
||||
|
||||
|
||||
public class TabItemModel: Codable {
|
||||
var label: LabelModel
|
||||
var action: ActionModelProtocol?
|
||||
public var label: LabelModel
|
||||
public var action: ActionModelProtocol?
|
||||
|
||||
init(label: LabelModel) {
|
||||
self.label = label
|
||||
|
||||
@ -16,6 +16,15 @@ open class SubNavManagerController: ViewController, MVMCoreViewManagerProtocol,
|
||||
|
||||
/// A list of cached controllers.
|
||||
private var viewControllers: [UIViewController?]
|
||||
|
||||
/// Used to layout the ui.
|
||||
public lazy var stackView: UIStackView = {
|
||||
let stackView = UIStackView(arrangedSubviews: [tabs, line, subNavigationController.view])
|
||||
stackView.translatesAutoresizingMaskIntoConstraints = false
|
||||
stackView.isAccessibilityElement = false
|
||||
stackView.axis = .vertical
|
||||
return stackView
|
||||
}()
|
||||
|
||||
private var tabsModel: TabsModel
|
||||
public lazy var tabs: Tabs = {
|
||||
@ -79,24 +88,16 @@ open class SubNavManagerController: ViewController, MVMCoreViewManagerProtocol,
|
||||
open override func loadView() {
|
||||
let view = View()
|
||||
view.translatesAutoresizingMaskIntoConstraints = true
|
||||
|
||||
view.addSubview(tabs)
|
||||
view.addSubview(line)
|
||||
|
||||
addChild(subNavigationController)
|
||||
view.addSubview(subNavigationController.view)
|
||||
view.addSubview(stackView)
|
||||
subNavigationController.didMove(toParent: self)
|
||||
|
||||
NSLayoutConstraint.activate([
|
||||
tabs.leadingAnchor.constraint(equalTo: view.leadingAnchor),
|
||||
view.trailingAnchor.constraint(equalTo: tabs.trailingAnchor),
|
||||
line.leadingAnchor.constraint(equalTo: view.leadingAnchor),
|
||||
view.trailingAnchor.constraint(equalTo: line.trailingAnchor),
|
||||
subNavigationController.view.leadingAnchor.constraint(equalTo: view.leadingAnchor),
|
||||
view.trailingAnchor.constraint(equalTo: subNavigationController.view.trailingAnchor),
|
||||
tabs.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor),
|
||||
line.topAnchor.constraint(equalTo: tabs.bottomAnchor),
|
||||
subNavigationController.view.topAnchor.constraint(equalTo: line.bottomAnchor),
|
||||
view.bottomAnchor.constraint(equalTo: subNavigationController.view.bottomAnchor)
|
||||
stackView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
|
||||
view.trailingAnchor.constraint(equalTo: stackView.trailingAnchor),
|
||||
stackView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor),
|
||||
view.bottomAnchor.constraint(equalTo: stackView.bottomAnchor)
|
||||
])
|
||||
self.view = view
|
||||
}
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
|
||||
import Foundation
|
||||
|
||||
/// The navigation controller that the tabbarpagecontrol uses for the children controllers. It always has the navigation bar hidden.
|
||||
/// The navigation controller that the SubNavManager uses for the children controllers. It always has the navigation bar hidden.
|
||||
@objc public class SubNavManagerNavigationController: UINavigationController {
|
||||
|
||||
public override init(rootViewController: UIViewController) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user