Commit e1e1abc3 by Daniel Dahan

updated Grid examples and added multi axis Grid management

parent c95a0cf6
{
"images" : [
{
"idiom" : "universal",
"filename" : "ic_more_horiz_white.png",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "ic_more_horiz_white_2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "ic_more_horiz_white_3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
\ No newline at end of file
...@@ -40,11 +40,12 @@ class ViewController: UIViewController { ...@@ -40,11 +40,12 @@ class ViewController: UIViewController {
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
prepareView() prepareView()
prepareHorizontalGridViewExample() // prepareHorizontalGridViewExample()
// prepareVerticalGridViewExample() // prepareVerticalGridViewExample()
// prepareGridDirectionNoneExample()
// prepareSmallCardViewExample() // prepareSmallCardViewExample()
// prepareMediumCardViewExample() // prepareMediumCardViewExample()
// prepareLargeCardViewExample() prepareLargeCardViewExample()
} }
...@@ -57,7 +58,6 @@ class ViewController: UIViewController { ...@@ -57,7 +58,6 @@ class ViewController: UIViewController {
private func prepareHorizontalGridViewExample() { private func prepareHorizontalGridViewExample() {
var image: UIImage? = UIImage(named: "ic_flash_auto_white")?.imageWithRenderingMode(.AlwaysTemplate) var image: UIImage? = UIImage(named: "ic_flash_auto_white")?.imageWithRenderingMode(.AlwaysTemplate)
let btn1: FlatButton = FlatButton() let btn1: FlatButton = FlatButton()
btn1.grid.columns = 3
btn1.pulseColor = MaterialColor.blueGrey.darken4 btn1.pulseColor = MaterialColor.blueGrey.darken4
btn1.tintColor = MaterialColor.blueGrey.darken4 btn1.tintColor = MaterialColor.blueGrey.darken4
btn1.backgroundColor = MaterialColor.grey.lighten3 btn1.backgroundColor = MaterialColor.grey.lighten3
...@@ -67,7 +67,6 @@ class ViewController: UIViewController { ...@@ -67,7 +67,6 @@ class ViewController: UIViewController {
image = UIImage(named: "ic_flash_off_white")?.imageWithRenderingMode(.AlwaysTemplate) image = UIImage(named: "ic_flash_off_white")?.imageWithRenderingMode(.AlwaysTemplate)
let btn2: FlatButton = FlatButton() let btn2: FlatButton = FlatButton()
btn2.grid.columns = 3
btn2.pulseColor = MaterialColor.blueGrey.darken4 btn2.pulseColor = MaterialColor.blueGrey.darken4
btn2.tintColor = MaterialColor.blueGrey.darken4 btn2.tintColor = MaterialColor.blueGrey.darken4
btn2.backgroundColor = MaterialColor.grey.lighten3 btn2.backgroundColor = MaterialColor.grey.lighten3
...@@ -77,7 +76,6 @@ class ViewController: UIViewController { ...@@ -77,7 +76,6 @@ class ViewController: UIViewController {
image = UIImage(named: "ic_flash_on_white")?.imageWithRenderingMode(.AlwaysTemplate) image = UIImage(named: "ic_flash_on_white")?.imageWithRenderingMode(.AlwaysTemplate)
let btn3: FlatButton = FlatButton() let btn3: FlatButton = FlatButton()
btn3.grid.columns = 3
btn3.pulseColor = MaterialColor.blueGrey.darken4 btn3.pulseColor = MaterialColor.blueGrey.darken4
btn3.tintColor = MaterialColor.blueGrey.darken4 btn3.tintColor = MaterialColor.blueGrey.darken4
btn3.backgroundColor = MaterialColor.grey.lighten3 btn3.backgroundColor = MaterialColor.grey.lighten3
...@@ -85,6 +83,12 @@ class ViewController: UIViewController { ...@@ -85,6 +83,12 @@ class ViewController: UIViewController {
btn3.setImage(image, forState: .Highlighted) btn3.setImage(image, forState: .Highlighted)
view.addSubview(btn3) view.addSubview(btn3)
btn1.grid.columns = 3
btn2.grid.columns = 3
btn3.grid.columns = 3
view.grid.columns = 9 view.grid.columns = 9
view.grid.spacing = 16 view.grid.spacing = 16
view.grid.contentInset.left = 16 view.grid.contentInset.left = 16
...@@ -102,7 +106,6 @@ class ViewController: UIViewController { ...@@ -102,7 +106,6 @@ class ViewController: UIViewController {
private func prepareVerticalGridViewExample() { private func prepareVerticalGridViewExample() {
var image: UIImage? = UIImage(named: "ic_flash_auto_white")?.imageWithRenderingMode(.AlwaysTemplate) var image: UIImage? = UIImage(named: "ic_flash_auto_white")?.imageWithRenderingMode(.AlwaysTemplate)
let btn1: FlatButton = FlatButton() let btn1: FlatButton = FlatButton()
btn1.grid.rows = 3
btn1.pulseColor = MaterialColor.blueGrey.darken4 btn1.pulseColor = MaterialColor.blueGrey.darken4
btn1.tintColor = MaterialColor.blueGrey.darken4 btn1.tintColor = MaterialColor.blueGrey.darken4
btn1.backgroundColor = MaterialColor.grey.lighten3 btn1.backgroundColor = MaterialColor.grey.lighten3
...@@ -112,7 +115,6 @@ class ViewController: UIViewController { ...@@ -112,7 +115,6 @@ class ViewController: UIViewController {
image = UIImage(named: "ic_flash_off_white")?.imageWithRenderingMode(.AlwaysTemplate) image = UIImage(named: "ic_flash_off_white")?.imageWithRenderingMode(.AlwaysTemplate)
let btn2: FlatButton = FlatButton() let btn2: FlatButton = FlatButton()
btn2.grid.rows = 3
btn2.pulseColor = MaterialColor.blueGrey.darken4 btn2.pulseColor = MaterialColor.blueGrey.darken4
btn2.tintColor = MaterialColor.blueGrey.darken4 btn2.tintColor = MaterialColor.blueGrey.darken4
btn2.backgroundColor = MaterialColor.grey.lighten3 btn2.backgroundColor = MaterialColor.grey.lighten3
...@@ -122,7 +124,6 @@ class ViewController: UIViewController { ...@@ -122,7 +124,6 @@ class ViewController: UIViewController {
image = UIImage(named: "ic_flash_on_white")?.imageWithRenderingMode(.AlwaysTemplate) image = UIImage(named: "ic_flash_on_white")?.imageWithRenderingMode(.AlwaysTemplate)
let btn3: FlatButton = FlatButton() let btn3: FlatButton = FlatButton()
btn3.grid.rows = 3
btn3.pulseColor = MaterialColor.blueGrey.darken4 btn3.pulseColor = MaterialColor.blueGrey.darken4
btn3.tintColor = MaterialColor.blueGrey.darken4 btn3.tintColor = MaterialColor.blueGrey.darken4
btn3.backgroundColor = MaterialColor.grey.lighten3 btn3.backgroundColor = MaterialColor.grey.lighten3
...@@ -130,13 +131,19 @@ class ViewController: UIViewController { ...@@ -130,13 +131,19 @@ class ViewController: UIViewController {
btn3.setImage(image, forState: .Highlighted) btn3.setImage(image, forState: .Highlighted)
view.addSubview(btn3) view.addSubview(btn3)
view.grid.axis.direction = .Vertical btn1.grid.rows = 3
btn2.grid.rows = 3
btn3.grid.rows = 3
view.grid.rows = 9 view.grid.rows = 9
view.grid.spacing = 16 view.grid.spacing = 16
view.grid.contentInset.left = 16 view.grid.contentInset.left = 16
view.grid.contentInset.right = 16 view.grid.contentInset.right = 16
view.grid.contentInset.top = 100 view.grid.contentInset.top = 100
view.grid.contentInset.bottom = 100 view.grid.contentInset.bottom = 100
view.grid.axis.direction = .Vertical
view.grid.views = [btn1, btn2, btn3] view.grid.views = [btn1, btn2, btn3]
for v in view.grid.views! { for v in view.grid.views! {
...@@ -144,6 +151,33 @@ class ViewController: UIViewController { ...@@ -144,6 +151,33 @@ class ViewController: UIViewController {
} }
} }
private func prepareGridDirectionNoneExample() {
let labelA: UILabel = UILabel()
labelA.text = "A"
labelA.textAlignment = .Center
labelA.backgroundColor = MaterialColor.yellow.lighten3
view.addSubview(labelA)
let labelB: UILabel = UILabel()
labelB.text = "B"
labelB.textAlignment = .Center
labelB.backgroundColor = MaterialColor.green.lighten3
view.addSubview(labelB)
labelA.grid.rows = 6
labelA.grid.columns = 6
labelB.grid.rows = 6
labelB.grid.columns = 6
labelB.grid.offset.rows = 6
labelB.grid.offset.columns = 6
view.grid.spacing = 16
view.grid.contentInsetPreset = .Square6
view.grid.axis.direction = .None
view.grid.views = [labelA, labelB]
}
/// Prepares the small card example. /// Prepares the small card example.
private func prepareSmallCardViewExample() { private func prepareSmallCardViewExample() {
let cardView: MaterialPulseView = MaterialPulseView(frame: CGRectMake(16, 100, view.bounds.width - 32, 152)) let cardView: MaterialPulseView = MaterialPulseView(frame: CGRectMake(16, 100, view.bounds.width - 32, 152))
...@@ -153,44 +187,30 @@ class ViewController: UIViewController { ...@@ -153,44 +187,30 @@ class ViewController: UIViewController {
var image: UIImage? = UIImage(named: "CosmicMindInverted") var image: UIImage? = UIImage(named: "CosmicMindInverted")
let imageView: MaterialView = MaterialView() let imageView: MaterialView = MaterialView()
imageView.grid.columns = 4
imageView.image = image imageView.image = image
imageView.contentsGravity = .ResizeAspectFill imageView.contentsGravity = .ResizeAspectFill
cardView.addSubview(imageView) cardView.addSubview(imageView)
let contentView: MaterialView = MaterialView() let contentView: MaterialView = MaterialView()
contentView.grid.columns = 8
contentView.grid.axis.direction = .Vertical
contentView.grid.contentInsetPreset = .Square3
contentView.grid.spacing = 12
contentView.backgroundColor = MaterialColor.clear contentView.backgroundColor = MaterialColor.clear
cardView.addSubview(contentView) cardView.addSubview(contentView)
let titleView: MaterialView = MaterialView()
titleView.grid.columns = 8
titleView.grid.rows = 4
titleView.backgroundColor = MaterialColor.clear
contentView.addSubview(titleView)
let titleLabel: UILabel = UILabel() let titleLabel: UILabel = UILabel()
titleLabel.grid.columns = 7
titleLabel.text = "Material" titleLabel.text = "Material"
titleLabel.textColor = MaterialColor.blueGrey.darken4 titleLabel.textColor = MaterialColor.blueGrey.darken4
titleLabel.backgroundColor = MaterialColor.clear titleLabel.backgroundColor = MaterialColor.clear
titleView.addSubview(titleLabel) contentView.addSubview(titleLabel)
image = UIImage(named: "ic_more_vert_white")?.imageWithRenderingMode(.AlwaysTemplate) image = UIImage(named: "ic_more_vert_white")?.imageWithRenderingMode(.AlwaysTemplate)
let moreButton: FlatButton = FlatButton() let moreButton: FlatButton = FlatButton()
moreButton.grid.columns = 1
moreButton.contentInsetPreset = .None moreButton.contentInsetPreset = .None
moreButton.pulseColor = MaterialColor.blueGrey.darken4 moreButton.pulseColor = MaterialColor.blueGrey.darken4
moreButton.tintColor = MaterialColor.blueGrey.darken4 moreButton.tintColor = MaterialColor.blueGrey.darken4
moreButton.setImage(image, forState: .Normal) moreButton.setImage(image, forState: .Normal)
moreButton.setImage(image, forState: .Highlighted) moreButton.setImage(image, forState: .Highlighted)
titleView.addSubview(moreButton) contentView.addSubview(moreButton)
let detailLabel: UILabel = UILabel() let detailLabel: UILabel = UILabel()
detailLabel.grid.rows = 4
detailLabel.numberOfLines = 0 detailLabel.numberOfLines = 0
detailLabel.lineBreakMode = .ByTruncatingTail detailLabel.lineBreakMode = .ByTruncatingTail
detailLabel.font = RobotoFont.regularWithSize(12) detailLabel.font = RobotoFont.regularWithSize(12)
...@@ -199,34 +219,61 @@ class ViewController: UIViewController { ...@@ -199,34 +219,61 @@ class ViewController: UIViewController {
detailLabel.backgroundColor = MaterialColor.clear detailLabel.backgroundColor = MaterialColor.clear
contentView.addSubview(detailLabel) contentView.addSubview(detailLabel)
let alarmView: MaterialView = MaterialView()
alarmView.grid.columns = 8
alarmView.grid.rows = 4
alarmView.backgroundColor = MaterialColor.clear
contentView.addSubview(alarmView)
let alarmLabel: UILabel = UILabel() let alarmLabel: UILabel = UILabel()
alarmLabel.grid.columns = 7
alarmLabel.font = RobotoFont.regularWithSize(12) alarmLabel.font = RobotoFont.regularWithSize(12)
alarmLabel.text = "34 min" alarmLabel.text = "34 min"
alarmLabel.textColor = MaterialColor.blueGrey.darken4 alarmLabel.textColor = MaterialColor.blueGrey.darken4
alarmLabel.backgroundColor = MaterialColor.clear alarmLabel.backgroundColor = MaterialColor.clear
alarmView.addSubview(alarmLabel) contentView.addSubview(alarmLabel)
image = UIImage(named: "ic_alarm_white")?.imageWithRenderingMode(.AlwaysTemplate) image = UIImage(named: "ic_alarm_white")?.imageWithRenderingMode(.AlwaysTemplate)
let alarmButton: FlatButton = FlatButton() let alarmButton: FlatButton = FlatButton()
alarmButton.grid.columns = 1
alarmButton.contentInsetPreset = .None alarmButton.contentInsetPreset = .None
alarmButton.pulseColor = MaterialColor.blueGrey.darken4 alarmButton.pulseColor = MaterialColor.blueGrey.darken4
alarmButton.tintColor = MaterialColor.red.base alarmButton.tintColor = MaterialColor.red.base
alarmButton.setImage(image, forState: .Normal) alarmButton.setImage(image, forState: .Normal)
alarmButton.setImage(image, forState: .Highlighted) alarmButton.setImage(image, forState: .Highlighted)
alarmView.addSubview(alarmButton) contentView.addSubview(alarmButton)
imageView.grid.columns = 4
contentView.grid.columns = 8
cardView.grid.views = [
imageView,
contentView
]
titleLabel.grid.rows = 3
titleLabel.grid.columns = 9
moreButton.grid.rows = 3
moreButton.grid.columns = 2
moreButton.grid.offset.columns = 10
detailLabel.grid.rows = 4
detailLabel.grid.offset.rows = 4
alarmLabel.grid.rows = 3
alarmLabel.grid.offset.rows = 9
alarmLabel.grid.columns = 9
cardView.grid.views = [imageView, contentView] alarmButton.grid.rows = 3
contentView.grid.views = [titleView, detailLabel, alarmView] alarmButton.grid.offset.rows = 9
titleView.grid.views = [titleLabel, moreButton] alarmButton.grid.columns = 2
alarmView.grid.views = [alarmLabel, alarmButton] alarmButton.grid.offset.columns = 10
contentView.grid.spacing = 8
contentView.grid.axis.inherited = false
contentView.grid.axis.direction = .None
contentView.grid.contentInsetPreset = .Square3
contentView.grid.views = [
titleLabel,
moreButton,
detailLabel,
alarmLabel,
alarmButton
]
} }
/// Prepares the medium card example. /// Prepares the medium card example.
...@@ -238,44 +285,30 @@ class ViewController: UIViewController { ...@@ -238,44 +285,30 @@ class ViewController: UIViewController {
var image: UIImage? = UIImage(named: "CosmicMindInverted") var image: UIImage? = UIImage(named: "CosmicMindInverted")
let imageView: MaterialView = MaterialView() let imageView: MaterialView = MaterialView()
imageView.grid.columns = 6
imageView.image = image imageView.image = image
imageView.contentsGravity = .ResizeAspectFill imageView.contentsGravity = .ResizeAspectFill
cardView.addSubview(imageView) cardView.addSubview(imageView)
let contentView: MaterialView = MaterialView() let contentView: MaterialView = MaterialView()
contentView.grid.columns = 6
contentView.grid.axis.direction = .Vertical
contentView.grid.contentInsetPreset = .Square3
contentView.grid.spacing = 8
contentView.backgroundColor = MaterialColor.clear contentView.backgroundColor = MaterialColor.clear
cardView.addSubview(contentView) cardView.addSubview(contentView)
let titleView: MaterialView = MaterialView()
titleView.grid.columns = 6
titleView.grid.rows = 2
titleView.backgroundColor = MaterialColor.clear
contentView.addSubview(titleView)
let titleLabel: UILabel = UILabel() let titleLabel: UILabel = UILabel()
titleLabel.grid.columns = 5
titleLabel.text = "Material" titleLabel.text = "Material"
titleLabel.textColor = MaterialColor.blueGrey.darken4 titleLabel.textColor = MaterialColor.blueGrey.darken4
titleLabel.backgroundColor = MaterialColor.clear titleLabel.backgroundColor = MaterialColor.clear
titleView.addSubview(titleLabel) contentView.addSubview(titleLabel)
image = UIImage(named: "ic_more_vert_white")?.imageWithRenderingMode(.AlwaysTemplate) image = UIImage(named: "ic_more_vert_white")?.imageWithRenderingMode(.AlwaysTemplate)
let moreButton: FlatButton = FlatButton() let moreButton: FlatButton = FlatButton()
moreButton.grid.columns = 1
moreButton.contentInsetPreset = .None moreButton.contentInsetPreset = .None
moreButton.pulseColor = MaterialColor.blueGrey.darken4 moreButton.pulseColor = MaterialColor.blueGrey.darken4
moreButton.tintColor = MaterialColor.blueGrey.darken4 moreButton.tintColor = MaterialColor.blueGrey.darken4
moreButton.setImage(image, forState: .Normal) moreButton.setImage(image, forState: .Normal)
moreButton.setImage(image, forState: .Highlighted) moreButton.setImage(image, forState: .Highlighted)
titleView.addSubview(moreButton) contentView.addSubview(moreButton)
let detailLabel: UILabel = UILabel() let detailLabel: UILabel = UILabel()
detailLabel.grid.rows = 8
detailLabel.numberOfLines = 0 detailLabel.numberOfLines = 0
detailLabel.lineBreakMode = .ByTruncatingTail detailLabel.lineBreakMode = .ByTruncatingTail
detailLabel.font = RobotoFont.regularWithSize(12) detailLabel.font = RobotoFont.regularWithSize(12)
...@@ -284,112 +317,108 @@ class ViewController: UIViewController { ...@@ -284,112 +317,108 @@ class ViewController: UIViewController {
detailLabel.backgroundColor = MaterialColor.clear detailLabel.backgroundColor = MaterialColor.clear
contentView.addSubview(detailLabel) contentView.addSubview(detailLabel)
let alarmView: MaterialView = MaterialView()
alarmView.grid.columns = 6
alarmView.grid.rows = 2
alarmView.backgroundColor = MaterialColor.clear
contentView.addSubview(alarmView)
let alarmLabel: UILabel = UILabel() let alarmLabel: UILabel = UILabel()
alarmLabel.grid.columns = 5
alarmLabel.font = RobotoFont.regularWithSize(12) alarmLabel.font = RobotoFont.regularWithSize(12)
alarmLabel.text = "34 min" alarmLabel.text = "34 min"
alarmLabel.textColor = MaterialColor.blueGrey.darken4 alarmLabel.textColor = MaterialColor.blueGrey.darken4
alarmLabel.backgroundColor = MaterialColor.clear alarmLabel.backgroundColor = MaterialColor.clear
alarmView.addSubview(alarmLabel) contentView.addSubview(alarmLabel)
image = UIImage(named: "ic_alarm_white")?.imageWithRenderingMode(.AlwaysTemplate) image = UIImage(named: "ic_alarm_white")?.imageWithRenderingMode(.AlwaysTemplate)
let alarmButton: FlatButton = FlatButton() let alarmButton: FlatButton = FlatButton()
alarmButton.grid.columns = 1
alarmButton.contentInsetPreset = .None alarmButton.contentInsetPreset = .None
alarmButton.pulseColor = MaterialColor.blueGrey.darken4 alarmButton.pulseColor = MaterialColor.blueGrey.darken4
alarmButton.tintColor = MaterialColor.red.base alarmButton.tintColor = MaterialColor.red.base
alarmButton.setImage(image, forState: .Normal) alarmButton.setImage(image, forState: .Normal)
alarmButton.setImage(image, forState: .Highlighted) alarmButton.setImage(image, forState: .Highlighted)
alarmView.addSubview(alarmButton) contentView.addSubview(alarmButton)
imageView.grid.columns = 6
contentView.grid.columns = 6
cardView.grid.views = [
imageView,
contentView
]
titleLabel.grid.rows = 2
titleLabel.grid.columns = 9
moreButton.grid.rows = 2
moreButton.grid.columns = 3
moreButton.grid.offset.columns = 9
detailLabel.grid.rows = 8
detailLabel.grid.offset.rows = 2
alarmLabel.grid.rows = 2
alarmLabel.grid.offset.rows = 10
alarmLabel.grid.columns = 9
alarmButton.grid.rows = 2
alarmButton.grid.offset.rows = 10
alarmButton.grid.columns = 3
alarmButton.grid.offset.columns = 9
cardView.grid.views = [imageView, contentView] contentView.grid.spacing = 8
contentView.grid.views = [titleView, detailLabel, alarmView] contentView.grid.axis.inherited = false
titleView.grid.views = [titleLabel, moreButton] contentView.grid.axis.direction = .None
alarmView.grid.views = [alarmLabel, alarmButton] contentView.grid.contentInsetPreset = .Square3
contentView.grid.views = [
titleLabel,
moreButton,
detailLabel,
alarmLabel,
alarmButton
]
} }
/// Prepares the medium card example. /// Prepares the medium card example.
private func prepareLargeCardViewExample() { private func prepareLargeCardViewExample() {
var image: UIImage? = UIImage(named: "CosmicMindInverted")
let cardView: MaterialPulseView = MaterialPulseView(frame: CGRectMake(16, 100, view.bounds.width - 32, 400)) let cardView: MaterialPulseView = MaterialPulseView(frame: CGRectMake(16, 100, view.bounds.width - 32, 400))
cardView.pulseColor = MaterialColor.blueGrey.base cardView.pulseColor = MaterialColor.blueGrey.base
cardView.grid.axis.direction = .Vertical
cardView.depth = .Depth1 cardView.depth = .Depth1
view.addSubview(cardView) view.addSubview(cardView)
let imageView: MaterialView = MaterialView() let leftImageView: MaterialView = MaterialView()
imageView.grid.rows = 7 leftImageView.image = image
imageView.grid.columns = 6 leftImageView.contentsGravity = .ResizeAspectFill
imageView.grid.spacing = 4 cardView.addSubview(leftImageView)
imageView.backgroundColor = MaterialColor.clear
cardView.addSubview(imageView)
var image: UIImage? = UIImage(named: "CosmicMindInverted") let topImageView: MaterialView = MaterialView()
let leftImageViewCollection: MaterialView = MaterialView() topImageView.image = image
leftImageViewCollection.grid.columns = 3 topImageView.contentsGravity = .ResizeAspectFill
leftImageViewCollection.image = image cardView.addSubview(topImageView)
leftImageViewCollection.contentsGravity = .ResizeAspectFill
imageView.addSubview(leftImageViewCollection) let bottomImageView: MaterialView = MaterialView()
bottomImageView.image = image
let rightImageViewCollection: MaterialView = MaterialView() bottomImageView.contentsGravity = .ResizeAspectFill
rightImageViewCollection.grid.columns = 3 cardView.addSubview(bottomImageView)
rightImageViewCollection.grid.axis.direction = .Vertical
rightImageViewCollection.grid.spacing = 4
rightImageViewCollection.backgroundColor = MaterialColor.clear
imageView.addSubview(rightImageViewCollection)
image = UIImage(named: "CosmicMindInverted")
let topImageViewCollection: MaterialView = MaterialView()
topImageViewCollection.grid.rows = 6
topImageViewCollection.image = image
topImageViewCollection.contentsGravity = .ResizeAspectFill
rightImageViewCollection.addSubview(topImageViewCollection)
image = UIImage(named: "CosmicMindInverted")
let bottomImageViewCollection: MaterialView = MaterialView()
bottomImageViewCollection.grid.rows = 6
bottomImageViewCollection.image = image
bottomImageViewCollection.contentsGravity = .ResizeAspectFill
rightImageViewCollection.addSubview(bottomImageViewCollection)
let contentView: MaterialView = MaterialView() let contentView: MaterialView = MaterialView()
contentView.grid.rows = 5
contentView.grid.axis.direction = .Vertical
contentView.grid.contentInsetPreset = .Square3
contentView.backgroundColor = MaterialColor.clear contentView.backgroundColor = MaterialColor.clear
cardView.addSubview(contentView) cardView.addSubview(contentView)
let titleView: MaterialView = MaterialView()
titleView.grid.rows = 1
titleView.backgroundColor = MaterialColor.clear
contentView.addSubview(titleView)
let titleLabel: UILabel = UILabel() let titleLabel: UILabel = UILabel()
titleLabel.grid.columns = 7
titleLabel.text = "Material" titleLabel.text = "Material"
titleLabel.textColor = MaterialColor.blueGrey.darken4 titleLabel.textColor = MaterialColor.blueGrey.darken4
titleLabel.backgroundColor = MaterialColor.clear titleLabel.backgroundColor = MaterialColor.clear
titleView.addSubview(titleLabel) contentView.addSubview(titleLabel)
image = UIImage(named: "ic_more_vert_white")?.imageWithRenderingMode(.AlwaysTemplate) image = UIImage(named: "ic_more_horiz_white")?.imageWithRenderingMode(.AlwaysTemplate)
let moreButton: FlatButton = FlatButton() let moreButton: FlatButton = FlatButton()
moreButton.grid.columns = 1
moreButton.grid.offset.columns = 4
moreButton.contentInsetPreset = .None moreButton.contentInsetPreset = .None
moreButton.pulseColor = MaterialColor.blueGrey.darken4 moreButton.pulseColor = MaterialColor.blueGrey.darken4
moreButton.tintColor = MaterialColor.blueGrey.darken4 moreButton.tintColor = MaterialColor.blueGrey.darken4
moreButton.setImage(image, forState: .Normal) moreButton.setImage(image, forState: .Normal)
moreButton.setImage(image, forState: .Highlighted) moreButton.setImage(image, forState: .Highlighted)
titleView.addSubview(moreButton) contentView.addSubview(moreButton)
let detailLabel: UILabel = UILabel() let detailLabel: UILabel = UILabel()
detailLabel.grid.rows = 3
detailLabel.numberOfLines = 0 detailLabel.numberOfLines = 0
detailLabel.lineBreakMode = .ByTruncatingTail detailLabel.lineBreakMode = .ByTruncatingTail
detailLabel.font = RobotoFont.regularWithSize(12) detailLabel.font = RobotoFont.regularWithSize(12)
...@@ -398,36 +427,76 @@ class ViewController: UIViewController { ...@@ -398,36 +427,76 @@ class ViewController: UIViewController {
detailLabel.backgroundColor = MaterialColor.clear detailLabel.backgroundColor = MaterialColor.clear
contentView.addSubview(detailLabel) contentView.addSubview(detailLabel)
let alarmView: MaterialView = MaterialView()
alarmView.grid.rows = 1
alarmView.backgroundColor = MaterialColor.clear
contentView.addSubview(alarmView)
let alarmLabel: UILabel = UILabel() let alarmLabel: UILabel = UILabel()
alarmLabel.grid.columns = 7
alarmLabel.font = RobotoFont.regularWithSize(12) alarmLabel.font = RobotoFont.regularWithSize(12)
alarmLabel.text = "34 min" alarmLabel.text = "34 min"
alarmLabel.textColor = MaterialColor.blueGrey.darken4 alarmLabel.textColor = MaterialColor.blueGrey.darken4
alarmLabel.backgroundColor = MaterialColor.clear alarmLabel.backgroundColor = MaterialColor.clear
alarmView.addSubview(alarmLabel) contentView.addSubview(alarmLabel)
image = UIImage(named: "ic_alarm_white")?.imageWithRenderingMode(.AlwaysTemplate) image = UIImage(named: "ic_alarm_white")?.imageWithRenderingMode(.AlwaysTemplate)
let alarmButton: FlatButton = FlatButton() let alarmButton: FlatButton = FlatButton()
alarmButton.grid.columns = 1
alarmButton.grid.offset.columns = 4
alarmButton.contentInsetPreset = .None alarmButton.contentInsetPreset = .None
alarmButton.pulseColor = MaterialColor.blueGrey.darken4 alarmButton.pulseColor = MaterialColor.blueGrey.darken4
alarmButton.tintColor = MaterialColor.red.base alarmButton.tintColor = MaterialColor.red.base
alarmButton.setImage(image, forState: .Normal) alarmButton.setImage(image, forState: .Normal)
alarmButton.setImage(image, forState: .Highlighted) alarmButton.setImage(image, forState: .Highlighted)
alarmView.addSubview(alarmButton) contentView.addSubview(alarmButton)
cardView.grid.views = [imageView, contentView] leftImageView.grid.rows = 7
imageView.grid.views = [leftImageViewCollection, rightImageViewCollection] leftImageView.grid.columns = 6
rightImageViewCollection.grid.views = [topImageViewCollection, bottomImageViewCollection]
contentView.grid.views = [titleView, detailLabel, alarmView] topImageView.grid.rows = 4
titleView.grid.views = [titleLabel, moreButton] topImageView.grid.columns = 6
alarmView.grid.views = [alarmLabel, alarmButton] topImageView.grid.offset.columns = 6
bottomImageView.grid.rows = 3
bottomImageView.grid.offset.rows = 4
bottomImageView.grid.columns = 6
bottomImageView.grid.offset.columns = 6
contentView.grid.rows = 5
contentView.grid.offset.rows = 7
cardView.grid.axis.direction = .None
cardView.grid.spacing = 4
cardView.grid.views = [
leftImageView,
topImageView,
bottomImageView,
contentView
]
titleLabel.grid.rows = 3
titleLabel.grid.columns = 8
moreButton.grid.rows = 3
moreButton.grid.columns = 2
moreButton.grid.offset.columns = 10
detailLabel.grid.rows = 6
detailLabel.grid.offset.rows = 3
alarmLabel.grid.rows = 3
alarmLabel.grid.columns = 8
alarmLabel.grid.offset.rows = 9
alarmButton.grid.rows = 3
alarmButton.grid.offset.rows = 9
alarmButton.grid.columns = 2
alarmButton.grid.offset.columns = 10
contentView.grid.axis.inherited = false
contentView.grid.axis.direction = .None
contentView.grid.contentInsetPreset = .Square3
contentView.grid.spacing = 8
contentView.grid.views = [
titleLabel,
moreButton,
detailLabel,
alarmLabel,
alarmButton
]
} }
} }
Pod::Spec.new do |s| Pod::Spec.new do |s|
s.name = 'Material' s.name = 'Material'
s.version = '1.31.5' s.version = '1.31.6'
s.license = 'BSD' s.license = 'BSD'
s.summary = 'Material is an animation and graphics framework.' s.summary = 'Material is an animation and graphics framework in Swift.'
s.homepage = 'http://cosmicmind.io' s.homepage = 'http://cosmicmind.io'
s.social_media_url = 'https://www.facebook.com/graphkit' s.social_media_url = 'https://www.facebook.com/graphkit'
s.authors = { 'CosmicMind, Inc.' => 'support@cosmicmind.io' } s.authors = { 'CosmicMind, Inc.' => 'support@cosmicmind.io' }
......
...@@ -13,8 +13,8 @@ Material is an animation and graphics framework. It may be used for Google's Mat ...@@ -13,8 +13,8 @@ Material is an animation and graphics framework. It may be used for Google's Mat
- [x] Side Navigation View Controller - [x] Side Navigation View Controller
- [x] Navigation Bar View - [x] Navigation Bar View
- [x] Material Buttons - [x] Material Buttons
- [x] Material Menu Toolset To Create Animated Menus
- [x] Material Card Views - [x] Material Card Views
- [x] Menu Toolset To Create Animated Menus
- [x] Camera / Video Extension With Extensive Functionality - [x] Camera / Video Extension With Extensive Functionality
- [x] Animation Extension To Create Intricate Animations - [x] Animation Extension To Create Intricate Animations
- [x] Complete Material Color Library - [x] Complete Material Color Library
......
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
import UIKit import UIKit
public enum GridAxisDirection { public enum GridAxisDirection {
case None
case Horizontal case Horizontal
case Vertical case Vertical
} }
...@@ -169,43 +170,44 @@ public class Grid { ...@@ -169,43 +170,44 @@ public class Grid {
/// Reload the button layout. /// Reload the button layout.
public func reloadLayout() { public func reloadLayout() {
if let v: Array<UIView> = views { if let v: Array<UIView> = views {
let gc: Int = axis.inherited ? columns : axis.columns
let gr: Int = axis.inherited ? rows : axis.rows
var n: Int = 0 var n: Int = 0
for var i: Int = 0, l: Int = v.count - 1; i <= l; ++i { for var i: Int = 0, l: Int = v.count - 1; i <= l; ++i {
let view: UIView = v[i] let view: UIView = v[i]
if let sv: UIView = view.superview { if let sv: UIView = view.superview {
sv.layoutIfNeeded() sv.layoutIfNeeded()
if .Horizontal == axis.direction { switch axis.direction {
let w: CGFloat = (sv.bounds.width - contentInset.left - contentInset.right + spacing) / CGFloat(axis.inherited ? columns : axis.columns) case .Horizontal:
let w: CGFloat = (sv.bounds.width - contentInset.left - contentInset.right + spacing) / CGFloat(gc)
let c: Int = view.grid.columns let c: Int = view.grid.columns
let co: Int = view.grid.offset.columns let co: Int = view.grid.offset.columns
// View height.
let vh: CGFloat = sv.bounds.height - contentInset.top - contentInset.bottom let vh: CGFloat = sv.bounds.height - contentInset.top - contentInset.bottom
// View left.
let vl: CGFloat = CGFloat(i + n + co) * w + contentInset.left let vl: CGFloat = CGFloat(i + n + co) * w + contentInset.left
let vw: CGFloat = w * CGFloat(c) - spacing
// View width.
let vw: CGFloat = (w * CGFloat(c)) - spacing
view.frame = CGRectMake(vl, contentInset.top, vw, vh) view.frame = CGRectMake(vl, contentInset.top, vw, vh)
n += c + co - 1 n += c + co - 1
} else if .Vertical == axis.direction { case .Vertical:
let h: CGFloat = (sv.bounds.height - contentInset.top - contentInset.bottom + spacing) / CGFloat(axis.inherited ? rows : axis.rows) let h: CGFloat = (sv.bounds.height - contentInset.top - contentInset.bottom + spacing) / CGFloat(gr)
let r: Int = view.grid.rows let r: Int = view.grid.rows
let ro: Int = view.grid.offset.rows let ro: Int = view.grid.offset.rows
// View width.
let vw: CGFloat = sv.bounds.width - contentInset.left - contentInset.right let vw: CGFloat = sv.bounds.width - contentInset.left - contentInset.right
// View top.
let vt: CGFloat = CGFloat(i + n + ro) * h + contentInset.top let vt: CGFloat = CGFloat(i + n + ro) * h + contentInset.top
let vh: CGFloat = h * CGFloat(r) - spacing
// View height.
let vh: CGFloat = (h * CGFloat(r)) - spacing
view.frame = CGRectMake(contentInset.left, vt, vw, vh) view.frame = CGRectMake(contentInset.left, vt, vw, vh)
n += r + ro - 1 n += r + ro - 1
case .None:
let w: CGFloat = (sv.bounds.width - contentInset.left - contentInset.right + spacing) / CGFloat(gc)
let c: Int = view.grid.columns
let co: Int = view.grid.offset.columns
let h: CGFloat = (sv.bounds.height - contentInset.top - contentInset.bottom + spacing) / CGFloat(gr)
let r: Int = view.grid.rows
let ro: Int = view.grid.offset.rows
let vt: CGFloat = CGFloat(ro) * h + contentInset.top
let vl: CGFloat = CGFloat(co) * w + contentInset.left
let vh: CGFloat = h * CGFloat(r) - spacing
let vw: CGFloat = w * CGFloat(c) - spacing
view.frame = CGRectMake(vl, vt, vw, vh)
} }
} }
} }
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>FMWK</string> <string>FMWK</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>1.31.5</string> <string>1.31.6</string>
<key>CFBundleSignature</key> <key>CFBundleSignature</key>
<string>????</string> <string>????</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
......
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