Commit 42b26c64 by Daniel Dahan

development: updating for GM 8 preparation

parent 068676f9
...@@ -33,7 +33,7 @@ import UIKit ...@@ -33,7 +33,7 @@ import UIKit
open class ContentCard: PulseView { open class ContentCard: PulseView {
/// Will render the view. /// Will render the view.
open var willLayout: Bool { open var willLayout: Bool {
return 0 < width && 0 < height && nil != superview return 0 < width && nil != superview
} }
/// A preset wrapper around contentInset. /// A preset wrapper around contentInset.
...@@ -87,21 +87,33 @@ open class ContentCard: PulseView { ...@@ -87,21 +87,33 @@ open class ContentCard: PulseView {
/// A reference to the titleToolbar. /// A reference to the titleToolbar.
open var titleToolbar: Toolbar { open var titleToolbar: Toolbar {
prepareTitleToolbar() prepareTitleToolbar()
layoutSubviews()
return internalTitleToolbar! return internalTitleToolbar!
} }
/// A reference to the contentView. /// A reference to the contentView.
open var contentView: UIView { open var contentView: UIView {
prepareContentView() prepareContentView()
layoutSubviews()
return internalContentView! return internalContentView!
} }
/// A reference to the detailToolbar. /// A reference to the detailToolbar.
open var detailToolbar: Toolbar { open var detailToolbar: Toolbar {
prepareDetailToolbar() prepareDetailToolbar()
layoutSubviews()
return internalDetailToolbar! return internalDetailToolbar!
} }
/// Grid cell factor.
@IBInspectable
open var gridFactor: CGFloat = 24 {
didSet {
assert(0 < gridFactor, "[Material Error: gridFactor must be greater than 0.]")
layoutSubviews()
}
}
/** /**
Prepares the view instance when intialized. When subclassing, Prepares the view instance when intialized. When subclassing,
it is recommended to override the prepare method it is recommended to override the prepare method
...@@ -144,6 +156,46 @@ open class ContentCard: PulseView { ...@@ -144,6 +156,46 @@ open class ContentCard: PulseView {
} }
height = h 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 {
v.grid.rows = rows
if let t = internalTitleToolbar {
v.grid.rows -= t.grid.rows
}
if let d = internalDetailToolbar {
v.grid.rows -= d.grid.rows
}
}
grid.commit()
} }
/// Prepares the titleToolbar. /// Prepares the titleToolbar.
......
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