Commit 412c2ca7 by Daniel Dahan

development: added multiplier to Layout parameters, as well, minor tweaks to…

development: added multiplier to Layout parameters, as well, minor tweaks to Grid calculations for Bar types
parent b3f16f78
...@@ -75,34 +75,25 @@ open class ContentCard: PulseView { ...@@ -75,34 +75,25 @@ open class ContentCard: PulseView {
} }
} }
/// An internal reference to the titleToolbar. /// A reference to the titleBar.
internal var internalTitleToolbar: Toolbar? open var titleBar: Toolbar? {
didSet {
/// An internal reference to the contentView.
internal var internalContentView: UIView?
/// An internal reference to the detailToolbar.
internal var internalDetailToolbar: Toolbar?
/// A reference to the titleToolbar.
open var titleToolbar: Toolbar {
prepareTitleToolbar()
layoutSubviews() layoutSubviews()
return internalTitleToolbar! }
} }
/// A reference to the contentView. /// A reference to the contentView.
open var contentView: UIView { open var contentView = UIView() {
prepareContentView() didSet {
layoutSubviews() layoutSubviews()
return internalContentView! }
} }
/// A reference to the detailToolbar. /// A reference to the bottomBar.
open var detailToolbar: Toolbar { open var bottomBar: BarView? {
prepareDetailToolbar() didSet {
layoutSubviews() layoutSubviews()
return internalDetailToolbar! }
} }
/// Grid cell factor. /// Grid cell factor.
...@@ -138,87 +129,26 @@ open class ContentCard: PulseView { ...@@ -138,87 +129,26 @@ open class ContentCard: PulseView {
v.removeFromSuperview() v.removeFromSuperview()
} }
var h: CGFloat = 0 var views = [String: Any]()
var format = "V:|"
if let v = internalTitleToolbar {
v.layoutIfNeeded()
h += v.height
}
if let v = internalContentView {
v.layoutIfNeeded()
h += v.height
}
if let v = internalDetailToolbar {
v.layoutIfNeeded()
h += v.height
}
height = h
let l = nil == internalTitleToolbar ? 0 : interimSpace
let r = nil == internalDetailToolbar || nil == internalContentView ? 0 : interimSpace
let p = h - l - r - contentEdgeInsets.top - contentEdgeInsets.bottom
let rows = Int(p / gridFactor)
grid.begin()
grid.views.removeAll()
grid.axis.rows = rows
grid.axis.direction = .vertical
print("Value", height, rows)
if let v = internalTitleToolbar {
grid.views.append(v)
v.grid.rows = Int(ceil(v.height / gridFactor)) + 1
}
if let v = internalContentView {
grid.views.append(v)
}
if let v = internalDetailToolbar {
grid.views.append(v)
v.grid.rows = Int(ceil(v.height / gridFactor)) + 1
}
if let v = internalContentView { if let v = titleBar {
v.grid.rows = rows views["titleBar"] = v
if let t = internalTitleToolbar { format += "[titleBar]"
v.grid.rows -= t.grid.rows _ = layout(v).horizontally()
} }
if let d = internalDetailToolbar { views["contentView"] = contentView
v.grid.rows -= d.grid.rows format += "[contentView]"
} _ = layout(contentView).horizontally()
} contentView.layoutIfNeeded()
grid.commit() if let v = bottomBar {
views["bottomBar"] = v
format += "[bottomBar]"
_ = layout(v).horizontally()
} }
/// Prepares the titleToolbar. addConstraints(Layout.constraint(format: "\(format)|", options: [], metrics: nil, views: views))
private func prepareTitleToolbar() {
guard nil == internalTitleToolbar else {
return
}
internalTitleToolbar = Toolbar()
}
/// Prepares the contentView.
private func prepareContentView() {
guard nil == internalContentView else {
return
}
internalContentView = UIView()
}
/// Prepares the detailToolbar.
private func prepareDetailToolbar() {
guard nil == internalDetailToolbar else {
return
}
internalDetailToolbar = Toolbar()
} }
} }
...@@ -171,7 +171,7 @@ open class ContentView: View { ...@@ -171,7 +171,7 @@ open class ContentView: View {
let l = (CGFloat(leftControls.count) * interimSpace) let l = (CGFloat(leftControls.count) * interimSpace)
let r = (CGFloat(rightControls.count) * interimSpace) let r = (CGFloat(rightControls.count) * interimSpace)
let p = width - l - r - contentEdgeInsets.left - contentEdgeInsets.right let p = width - l - r - contentEdgeInsets.left - contentEdgeInsets.right
let columns = Int(p / gridFactor) let columns = Int(ceil(p / gridFactor))
grid.begin() grid.begin()
grid.views.removeAll() grid.views.removeAll()
......
...@@ -40,6 +40,7 @@ internal class MaterialLayer { ...@@ -40,6 +40,7 @@ internal class MaterialLayer {
guard let v = layer else { guard let v = layer else {
return return
} }
v.cornerRadius = CornerRadiusPresetToValue(preset: cornerRadiusPreset) v.cornerRadius = CornerRadiusPresetToValue(preset: cornerRadiusPreset)
} }
} }
...@@ -50,6 +51,7 @@ internal class MaterialLayer { ...@@ -50,6 +51,7 @@ internal class MaterialLayer {
guard let v = layer else { guard let v = layer else {
return return
} }
v.borderWidth = BorderWidthPresetToValue(preset: borderWidthPreset) v.borderWidth = BorderWidthPresetToValue(preset: borderWidthPreset)
} }
} }
...@@ -82,13 +84,7 @@ internal class MaterialLayer { ...@@ -82,13 +84,7 @@ internal class MaterialLayer {
} }
/// Enables automatic shadowPath sizing. /// Enables automatic shadowPath sizing.
internal var isShadowPathAutoSizing = false { internal var isShadowPathAutoSizing = false
didSet {
if isShadowPathAutoSizing {
layer?.layoutShadowPath()
}
}
}
/** /**
Initializer that takes in a CALayer. Initializer that takes in a CALayer.
......
...@@ -204,7 +204,7 @@ open class NavigationBar: UINavigationBar { ...@@ -204,7 +204,7 @@ open class NavigationBar: UINavigationBar {
let l = (CGFloat(item.leftControls.count) * interimSpace) let l = (CGFloat(item.leftControls.count) * interimSpace)
let r = (CGFloat(item.rightControls.count) * interimSpace) let r = (CGFloat(item.rightControls.count) * interimSpace)
let p = width - l - r - contentEdgeInsets.left - contentEdgeInsets.right let p = width - l - r - contentEdgeInsets.left - contentEdgeInsets.right
let columns = Int(p / gridFactor) let columns = Int(ceil(p / gridFactor))
item.titleView!.grid.begin() item.titleView!.grid.begin()
item.titleView!.grid.views.removeAll() item.titleView!.grid.views.removeAll()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment