Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
Material
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Dmitriy Stepanets
Material
Commits
4ad815ea
Commit
4ad815ea
authored
Jul 12, 2016
by
Daniel Dahan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
updated MaterialSpacing to InterimSpace
parent
056e1524
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
146 additions
and
146 deletions
+146
-146
Examples/Programmatic/Grid/Grid/ViewController.swift
+7
-7
Examples/Programmatic/Layout/Layout/ViewController.swift
+1
-1
Examples/Programmatic/MaterialCollectionView/MaterialCollectionView/ViewController.swift
+1
-1
Examples/Programmatic/MaterialDepth/MaterialDepth/ViewController.swift
+1
-1
Examples/Programmatic/Menu/Menu/ViewController.swift
+7
-7
Examples/Programmatic/MenuView/MenuView/ViewController.swift
+2
-2
Material.xcodeproj/project.pbxproj
+6
-6
Sources/iOS/ControlView.swift
+9
-9
Sources/iOS/Grid.swift
+15
-15
Sources/iOS/InterimSpace.swift
+35
-35
Sources/iOS/Layout.swift
+16
-16
Sources/iOS/MaterialCollectionReusableView.swift
+7
-7
Sources/iOS/MaterialCollectionView.swift
+6
-6
Sources/iOS/MaterialCollectionViewCell.swift
+7
-7
Sources/iOS/MaterialCollectionViewLayout.swift
+8
-8
Sources/iOS/Menu.swift
+11
-11
Sources/iOS/NavigationBar.swift
+7
-7
No files found.
Examples/Programmatic/Grid/Grid/ViewController.swift
View file @
4ad815ea
...
...
@@ -90,7 +90,7 @@ class ViewController: UIViewController {
btn3
.
grid
.
rows
=
2
view
.
grid
.
axis
.
rows
=
6
view
.
grid
.
spacing
=
16
view
.
grid
.
interimSpace
=
16
view
.
grid
.
axis
.
direction
=
.
Vertical
view
.
grid
.
contentInset
.
left
=
16
view
.
grid
.
contentInset
.
right
=
16
...
...
@@ -139,7 +139,7 @@ class ViewController: UIViewController {
btn3
.
grid
.
rows
=
3
view
.
grid
.
rows
=
9
view
.
grid
.
spacing
=
16
view
.
grid
.
interimSpace
=
16
view
.
grid
.
contentInset
.
left
=
16
view
.
grid
.
contentInset
.
right
=
16
view
.
grid
.
contentInset
.
top
=
100
...
...
@@ -173,7 +173,7 @@ class ViewController: UIViewController {
labelB
.
grid
.
offset
.
rows
=
6
labelB
.
grid
.
offset
.
columns
=
6
view
.
grid
.
spacing
=
16
view
.
grid
.
interimSpace
=
16
view
.
grid
.
axis
.
direction
=
.
None
view
.
grid
.
contentInsetPreset
=
.
Square6
view
.
grid
.
views
=
[
labelA
,
labelB
]
...
...
@@ -264,7 +264,7 @@ class ViewController: UIViewController {
alarmButton
.
grid
.
columns
=
2
alarmButton
.
grid
.
offset
.
columns
=
10
contentView
.
grid
.
spacing
=
8
contentView
.
grid
.
interimSpace
=
8
contentView
.
grid
.
axis
.
direction
=
.
None
contentView
.
grid
.
contentInsetPreset
=
.
Square3
contentView
.
grid
.
views
=
[
...
...
@@ -361,7 +361,7 @@ class ViewController: UIViewController {
alarmButton
.
grid
.
columns
=
3
alarmButton
.
grid
.
offset
.
columns
=
9
contentView
.
grid
.
spacing
=
8
contentView
.
grid
.
interimSpace
=
8
contentView
.
grid
.
axis
.
direction
=
.
None
contentView
.
grid
.
contentInsetPreset
=
.
Square3
contentView
.
grid
.
views
=
[
...
...
@@ -458,7 +458,7 @@ class ViewController: UIViewController {
contentView
.
grid
.
offset
.
rows
=
7
cardView
.
grid
.
axis
.
direction
=
.
None
cardView
.
grid
.
spacing
=
4
cardView
.
grid
.
interimSpace
=
4
cardView
.
grid
.
views
=
[
leftImageView
,
topImageView
,
...
...
@@ -485,7 +485,7 @@ class ViewController: UIViewController {
alarmButton
.
grid
.
columns
=
2
alarmButton
.
grid
.
offset
.
columns
=
10
contentView
.
grid
.
spacing
=
8
contentView
.
grid
.
interimSpace
=
8
contentView
.
grid
.
axis
.
direction
=
.
None
contentView
.
grid
.
contentInsetPreset
=
.
Square3
contentView
.
grid
.
views
=
[
...
...
Examples/Programmatic/Layout/Layout/ViewController.swift
View file @
4ad815ea
...
...
@@ -75,7 +75,7 @@ class ViewController: UIViewController {
let
children
:
Array
<
UIView
>
=
[
label1
,
label2
,
label3
,
label4
]
// Align the labels horizontally with an equal width and vertically with an equal height.
view
.
layout
.
horizontally
(
children
,
left
:
30
,
right
:
30
,
spacing
:
30
)
.
vertically
(
children
,
top
:
100
,
bottom
:
100
)
view
.
layout
.
horizontally
(
children
,
left
:
30
,
right
:
30
,
interimSpace
:
30
)
.
vertically
(
children
,
top
:
100
,
bottom
:
100
)
// Print out the dimensions of the labels.
...
...
Examples/Programmatic/MaterialCollectionView/MaterialCollectionView/ViewController.swift
View file @
4ad815ea
...
...
@@ -83,7 +83,7 @@ class ViewController: UIViewController {
collectionView
.
registerClass
(
MaterialCollectionViewCell
.
self
,
forCellWithReuseIdentifier
:
"MaterialCollectionViewCell"
)
collectionView
.
dataSource
=
self
collectionView
.
contentInset
.
top
=
100
collectionView
.
spacing
=
16
collectionView
.
interimSpace
=
16
view
.
layout
(
collectionView
)
.
edges
()
}
...
...
Examples/Programmatic/MaterialDepth/MaterialDepth/ViewController.swift
View file @
4ad815ea
...
...
@@ -63,7 +63,7 @@ class ViewController: UIViewController {
let
children
:
Array
<
UIView
>
=
[
v1
,
v2
,
v3
,
v4
,
v5
]
// Align the vs vertically with an equal height.
view
.
layout
.
vertically
(
children
,
top
:
100
,
bottom
:
100
,
spacing
:
20
)
view
.
layout
.
vertically
(
children
,
top
:
100
,
bottom
:
100
,
interimSpace
:
20
)
/*
Individually set the vs' horizontal alignment.
...
...
Examples/Programmatic/Menu/Menu/ViewController.swift
View file @
4ad815ea
...
...
@@ -46,8 +46,8 @@ class ViewController: UIViewController {
/// FlashMenu component.
private
var
flashMenu
:
Menu
!
/// Default
spacing
size
let
spacing
:
CGFloat
=
16
/// Default
interimSpace
size
let
interimSpace
:
CGFloat
=
16
/// Diameter for FabButtons.
let
diameter
:
CGFloat
=
56
...
...
@@ -70,8 +70,8 @@ class ViewController: UIViewController {
super
.
viewWillTransitionToSize
(
size
,
withTransitionCoordinator
:
coordinator
)
// Handle orientation change.
fabMenu
.
origin
=
CGPointMake
(
view
.
bounds
.
height
-
diameter
-
spacing
,
view
.
bounds
.
width
-
diameter
-
spacing
)
flatMenu
.
origin
=
CGPointMake
(
spacing
,
view
.
bounds
.
height
-
height
-
spacing
)
fabMenu
.
origin
=
CGPointMake
(
view
.
bounds
.
height
-
diameter
-
interimSpace
,
view
.
bounds
.
width
-
diameter
-
interimSpace
)
flatMenu
.
origin
=
CGPointMake
(
interimSpace
,
view
.
bounds
.
height
-
height
-
interimSpace
)
}
/// Handle the fabMenu touch event.
...
...
@@ -155,7 +155,7 @@ class ViewController: UIViewController {
view
.
addSubview
(
btn4
)
// Initialize the menu and setup the configuration options.
fabMenu
=
Menu
(
origin
:
CGPointMake
(
view
.
bounds
.
width
-
diameter
-
spacing
,
view
.
bounds
.
height
-
diameter
-
spacing
))
fabMenu
=
Menu
(
origin
:
CGPointMake
(
view
.
bounds
.
width
-
diameter
-
interimSpace
,
view
.
bounds
.
height
-
diameter
-
interimSpace
))
fabMenu
.
direction
=
.
Up
fabMenu
.
baseSize
=
CGSizeMake
(
diameter
,
diameter
)
fabMenu
.
views
=
[
btn1
,
btn2
,
btn3
,
btn4
]
...
...
@@ -196,9 +196,9 @@ class ViewController: UIViewController {
view
.
addSubview
(
btn4
)
// Initialize the menu and setup the configuration options.
flatMenu
=
Menu
(
origin
:
CGPointMake
(
spacing
,
view
.
bounds
.
height
-
height
-
spacing
))
flatMenu
=
Menu
(
origin
:
CGPointMake
(
interimSpace
,
view
.
bounds
.
height
-
height
-
interimSpace
))
flatMenu
.
direction
=
.
Up
flatMenu
.
spacing
=
8
flatMenu
.
interimSpace
=
8
flatMenu
.
itemSize
=
CGSizeMake
(
120
,
height
)
flatMenu
.
views
=
[
btn1
,
btn2
,
btn3
,
btn4
]
}
...
...
Examples/Programmatic/MenuView/MenuView/ViewController.swift
View file @
4ad815ea
...
...
@@ -40,8 +40,8 @@ class ViewController: UIViewController {
/// MenuView reference.
private
lazy
var
menuView
:
MenuView
=
MenuView
()
/// Default
spacing
size
let
spacing
:
CGFloat
=
16
/// Default
interimSpace
size
let
interimSpace
:
CGFloat
=
16
/// Diameter for FabButtons.
let
diameter
:
CGFloat
=
56
...
...
Material.xcodeproj/project.pbxproj
View file @
4ad815ea
...
...
@@ -64,7 +64,7 @@
96BCB7CD1CB40DC500C806FE
/* MaterialPulseView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
96BCB7841CB40DC500C806FE
/* MaterialPulseView.swift */
;
};
96BCB7CE1CB40DC500C806FE
/* MaterialRadius.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
96BCB7851CB40DC500C806FE
/* MaterialRadius.swift */
;
};
96BCB7CF1CB40DC500C806FE
/* MaterialShape.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
96BCB7861CB40DC500C806FE
/* MaterialShape.swift */
;
};
96BCB7D01CB40DC500C806FE
/*
MaterialSpacing.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
96BCB7871CB40DC500C806FE
/* MaterialSpacing
.swift */
;
};
96BCB7D01CB40DC500C806FE
/*
InterimSpace.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
96BCB7871CB40DC500C806FE
/* InterimSpace
.swift */
;
};
96BCB7D11CB40DC500C806FE
/* MaterialSwitch.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
96BCB7881CB40DC500C806FE
/* MaterialSwitch.swift */
;
};
96BCB7D21CB40DC500C806FE
/* MaterialTableViewCell.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
96BCB7891CB40DC500C806FE
/* MaterialTableViewCell.swift */
;
};
96BCB7D31CB40DC500C806FE
/* MaterialTextLayer.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
96BCB78A1CB40DC500C806FE
/* MaterialTextLayer.swift */
;
};
...
...
@@ -163,7 +163,7 @@
96BCB84B1CB4115200C806FE
/* TextStorage.swift in Headers */
=
{
isa
=
PBXBuildFile
;
fileRef
=
96BCB79D1CB40DC500C806FE
/* TextStorage.swift */
;
settings
=
{
ATTRIBUTES
=
(
Public
,
);
};
};
96BCB84C1CB4115200C806FE
/* TextView.swift in Headers */
=
{
isa
=
PBXBuildFile
;
fileRef
=
96BCB79E1CB40DC500C806FE
/* TextView.swift */
;
settings
=
{
ATTRIBUTES
=
(
Public
,
);
};
};
96BCB84D1CB4115200C806FE
/* MaterialBorder.swift in Headers */
=
{
isa
=
PBXBuildFile
;
fileRef
=
96BCB76F1CB40DC500C806FE
/* MaterialBorder.swift */
;
settings
=
{
ATTRIBUTES
=
(
Public
,
);
};
};
96BCB84E1CB4115200C806FE
/*
MaterialSpacing.swift in Headers */
=
{
isa
=
PBXBuildFile
;
fileRef
=
96BCB7871CB40DC500C806FE
/* MaterialSpacing
.swift */
;
settings
=
{
ATTRIBUTES
=
(
Public
,
);
};
};
96BCB84E1CB4115200C806FE
/*
InterimSpace.swift in Headers */
=
{
isa
=
PBXBuildFile
;
fileRef
=
96BCB7871CB40DC500C806FE
/* InterimSpace
.swift */
;
settings
=
{
ATTRIBUTES
=
(
Public
,
);
};
};
96BCB84F1CB4115200C806FE
/* MaterialDepth.swift in Headers */
=
{
isa
=
PBXBuildFile
;
fileRef
=
96BCB7781CB40DC500C806FE
/* MaterialDepth.swift */
;
settings
=
{
ATTRIBUTES
=
(
Public
,
);
};
};
96BCB8501CB4115200C806FE
/* MaterialEdgeInset.swift in Headers */
=
{
isa
=
PBXBuildFile
;
fileRef
=
96BCB77A1CB40DC500C806FE
/* MaterialEdgeInset.swift */
;
settings
=
{
ATTRIBUTES
=
(
Public
,
);
};
};
96BCB8511CB4115200C806FE
/* MaterialGravity.swift in Headers */
=
{
isa
=
PBXBuildFile
;
fileRef
=
96BCB77C1CB40DC500C806FE
/* MaterialGravity.swift */
;
settings
=
{
ATTRIBUTES
=
(
Public
,
);
};
};
...
...
@@ -255,7 +255,7 @@
96BCB7841CB40DC500C806FE
/* MaterialPulseView.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
MaterialPulseView.swift
;
sourceTree
=
"<group>"
;
};
96BCB7851CB40DC500C806FE
/* MaterialRadius.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
MaterialRadius.swift
;
sourceTree
=
"<group>"
;
};
96BCB7861CB40DC500C806FE
/* MaterialShape.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
MaterialShape.swift
;
sourceTree
=
"<group>"
;
};
96BCB7871CB40DC500C806FE
/*
MaterialSpacing.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
MaterialSpacing
.swift
;
sourceTree
=
"<group>"
;
};
96BCB7871CB40DC500C806FE
/*
InterimSpace.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
InterimSpace
.swift
;
sourceTree
=
"<group>"
;
};
96BCB7881CB40DC500C806FE
/* MaterialSwitch.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
MaterialSwitch.swift
;
sourceTree
=
"<group>"
;
};
96BCB7891CB40DC500C806FE
/* MaterialTableViewCell.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
MaterialTableViewCell.swift
;
sourceTree
=
"<group>"
;
};
96BCB78A1CB40DC500C806FE
/* MaterialTextLayer.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
MaterialTextLayer.swift
;
sourceTree
=
"<group>"
;
};
...
...
@@ -514,7 +514,7 @@
isa
=
PBXGroup
;
children
=
(
96BCB76F1CB40DC500C806FE
/* MaterialBorder.swift */
,
96BCB7871CB40DC500C806FE
/*
MaterialSpacing
.swift */
,
96BCB7871CB40DC500C806FE
/*
InterimSpace
.swift */
,
96BCB7781CB40DC500C806FE
/* MaterialDepth.swift */
,
96BCB77A1CB40DC500C806FE
/* MaterialEdgeInset.swift */
,
96BCB77C1CB40DC500C806FE
/* MaterialGravity.swift */
,
...
...
@@ -704,7 +704,7 @@
96BCB84B1CB4115200C806FE
/* TextStorage.swift in Headers */
,
96BCB84C1CB4115200C806FE
/* TextView.swift in Headers */
,
96BCB84D1CB4115200C806FE
/* MaterialBorder.swift in Headers */
,
96BCB84E1CB4115200C806FE
/*
MaterialSpacing
.swift in Headers */
,
96BCB84E1CB4115200C806FE
/*
InterimSpace
.swift in Headers */
,
96BCB84F1CB4115200C806FE
/* MaterialDepth.swift in Headers */
,
96BCB8501CB4115200C806FE
/* MaterialEdgeInset.swift in Headers */
,
96BCB8511CB4115200C806FE
/* MaterialGravity.swift in Headers */
,
...
...
@@ -922,7 +922,7 @@
96BCB7BD1CB40DC500C806FE
/* MaterialCollectionViewDelegate.swift in Sources */
,
961F18E81CD93E3E008927C5
/* ErrorTextField.swift in Sources */
,
96BCB7AF1CB40DC500C806FE
/* Material+UIImage+Blank.swift in Sources */
,
96BCB7D01CB40DC500C806FE
/*
MaterialSpacing
.swift in Sources */
,
96BCB7D01CB40DC500C806FE
/*
InterimSpace
.swift in Sources */
,
96BCB7B31CB40DC500C806FE
/* Material+UIImage+Resize.swift in Sources */
,
96BCB7E81CB40DC500C806FE
/* Toolbar.swift in Sources */
,
96BCB7C41CB40DC500C806FE
/* MaterialFont.swift in Sources */
,
...
...
Sources/iOS/ControlView.swift
View file @
4ad815ea
...
...
@@ -56,20 +56,20 @@ public class ControlView : MaterialView {
}
}
/// A preset wrapper around
spacing
.
public
var
spacingPreset
:
MaterialSpacing
=
.
N
one
{
/// A preset wrapper around
interimSpace
.
public
var
interimSpacePreset
:
InterimSpace
=
.
n
one
{
didSet
{
spacing
=
MaterialSpacingToValue
(
spacing
Preset
)
interimSpace
=
interimSpaceToValue
(
interimSpace
Preset
)
}
}
/// A wrapper around grid.
spacing
.
@IBInspectable
public
var
spacing
:
CGFloat
{
/// A wrapper around grid.
interimSpace
.
@IBInspectable
public
var
interimSpace
:
CGFloat
{
get
{
return
grid
.
spacing
return
grid
.
interimSpace
}
set
(
value
)
{
grid
.
spacing
=
value
grid
.
interimSpace
=
value
}
}
...
...
@@ -206,7 +206,7 @@ public class ControlView : MaterialView {
}
grid
.
contentInset
=
contentInset
grid
.
spacing
=
spacing
grid
.
interimSpace
=
interimSpace
grid
.
reloadLayout
()
contentView
.
grid
.
reloadLayout
()
}
...
...
@@ -226,7 +226,7 @@ public class ControlView : MaterialView {
*/
public
override
func
prepareView
()
{
super
.
prepareView
()
spacingPreset
=
.
Spacing
1
interimSpacePreset
=
.
interimSpace
1
contentInsetPreset
=
.
Square1
autoresizingMask
=
.
FlexibleWidth
shadowPathAutoSizeEnabled
=
false
...
...
Sources/iOS/Grid.swift
View file @
4ad815ea
...
...
@@ -153,15 +153,15 @@ public class Grid {
}
}
/// A preset wrapper around
spacing
.
public
var
spacingPreset
:
MaterialSpacing
=
.
N
one
{
/// A preset wrapper around
interimSpace
.
public
var
interimSpacePreset
:
InterimSpace
=
.
n
one
{
didSet
{
spacing
=
MaterialSpacingToValue
(
spacing
Preset
)
interimSpace
=
interimSpaceToValue
(
interimSpace
Preset
)
}
}
/// The space between grid columnss.
public
var
spacing
:
CGFloat
{
public
var
interimSpace
:
CGFloat
{
didSet
{
reloadLayout
()
}
...
...
@@ -178,12 +178,12 @@ public class Grid {
Initializer.
- Parameter rows: The number of rows, Vertical axis the grid will use.
- Parameter columns: The number of columns, Horizontal axis the grid will use.
- Parameter
spacing: The spacing
between rows or columns.
- Parameter
interimSpace: The interimSpace
between rows or columns.
*/
public
init
(
rows
:
Int
=
12
,
columns
:
Int
=
12
,
spacing
:
CGFloat
=
0
)
{
public
init
(
rows
:
Int
=
12
,
columns
:
Int
=
12
,
interimSpace
:
CGFloat
=
0
)
{
self
.
rows
=
rows
self
.
columns
=
columns
self
.
spacing
=
spacing
self
.
interimSpace
=
interimSpace
offset
=
GridOffset
(
grid
:
self
)
axis
=
GridAxis
(
grid
:
self
)
}
...
...
@@ -200,34 +200,34 @@ public class Grid {
sv
.
layoutIfNeeded
()
switch
axis
.
direction
{
case
.
Horizontal
:
let
w
:
CGFloat
=
(
sv
.
bounds
.
width
-
contentInset
.
left
-
contentInset
.
right
-
layoutInset
.
left
-
layoutInset
.
right
+
spacing
)
/
CGFloat
(
gc
)
let
w
:
CGFloat
=
(
sv
.
bounds
.
width
-
contentInset
.
left
-
contentInset
.
right
-
layoutInset
.
left
-
layoutInset
.
right
+
interimSpace
)
/
CGFloat
(
gc
)
let
c
:
Int
=
view
.
grid
.
columns
let
co
:
Int
=
view
.
grid
.
offset
.
columns
let
vh
:
CGFloat
=
sv
.
bounds
.
height
-
contentInset
.
top
-
contentInset
.
bottom
-
layoutInset
.
top
-
layoutInset
.
bottom
let
vl
:
CGFloat
=
CGFloat
(
i
+
n
+
co
)
*
w
+
contentInset
.
left
+
layoutInset
.
left
let
vw
:
CGFloat
=
w
*
CGFloat
(
c
)
-
spacing
let
vw
:
CGFloat
=
w
*
CGFloat
(
c
)
-
interimSpace
view
.
frame
=
CGRectMake
(
vl
,
contentInset
.
top
+
layoutInset
.
top
,
vw
,
vh
)
n
+=
c
+
co
-
1
case
.
Vertical
:
let
h
:
CGFloat
=
(
sv
.
bounds
.
height
-
contentInset
.
top
-
contentInset
.
bottom
-
layoutInset
.
top
-
layoutInset
.
bottom
+
spacing
)
/
CGFloat
(
gr
)
let
h
:
CGFloat
=
(
sv
.
bounds
.
height
-
contentInset
.
top
-
contentInset
.
bottom
-
layoutInset
.
top
-
layoutInset
.
bottom
+
interimSpace
)
/
CGFloat
(
gr
)
let
r
:
Int
=
view
.
grid
.
rows
let
ro
:
Int
=
view
.
grid
.
offset
.
rows
let
vw
:
CGFloat
=
sv
.
bounds
.
width
-
contentInset
.
left
-
contentInset
.
right
-
layoutInset
.
left
-
layoutInset
.
right
let
vt
:
CGFloat
=
CGFloat
(
i
+
n
+
ro
)
*
h
+
contentInset
.
top
+
layoutInset
.
top
let
vh
:
CGFloat
=
h
*
CGFloat
(
r
)
-
spacing
let
vh
:
CGFloat
=
h
*
CGFloat
(
r
)
-
interimSpace
view
.
frame
=
CGRectMake
(
contentInset
.
left
+
layoutInset
.
left
,
vt
,
vw
,
vh
)
n
+=
r
+
ro
-
1
case
.
None
:
let
w
:
CGFloat
=
(
sv
.
bounds
.
width
-
contentInset
.
left
-
contentInset
.
right
-
layoutInset
.
left
-
layoutInset
.
right
+
spacing
)
/
CGFloat
(
gc
)
let
w
:
CGFloat
=
(
sv
.
bounds
.
width
-
contentInset
.
left
-
contentInset
.
right
-
layoutInset
.
left
-
layoutInset
.
right
+
interimSpace
)
/
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
-
layoutInset
.
top
-
layoutInset
.
bottom
+
spacing
)
/
CGFloat
(
gr
)
let
h
:
CGFloat
=
(
sv
.
bounds
.
height
-
contentInset
.
top
-
contentInset
.
bottom
-
layoutInset
.
top
-
layoutInset
.
bottom
+
interimSpace
)
/
CGFloat
(
gr
)
let
r
:
Int
=
view
.
grid
.
rows
let
ro
:
Int
=
view
.
grid
.
offset
.
rows
let
vt
:
CGFloat
=
CGFloat
(
ro
)
*
h
+
contentInset
.
top
+
layoutInset
.
top
let
vl
:
CGFloat
=
CGFloat
(
co
)
*
w
+
contentInset
.
left
+
layoutInset
.
left
let
vh
:
CGFloat
=
h
*
CGFloat
(
r
)
-
spacing
let
vw
:
CGFloat
=
w
*
CGFloat
(
c
)
-
spacing
let
vh
:
CGFloat
=
h
*
CGFloat
(
r
)
-
interimSpace
let
vw
:
CGFloat
=
w
*
CGFloat
(
c
)
-
interimSpace
view
.
frame
=
CGRectMake
(
vl
,
vt
,
vw
,
vh
)
}
}
...
...
Sources/iOS/
MaterialSpacing
.swift
→
Sources/iOS/
InterimSpace
.swift
View file @
4ad815ea
...
...
@@ -30,41 +30,41 @@
import
UIKit
public
enum
MaterialSpacing
{
case
N
one
case
Spacing
1
case
Spacing
2
case
Spacing
3
case
Spacing
4
case
Spacing
5
case
Spacing
6
case
Spacing
7
case
Spacing
8
case
Spacing
9
public
enum
InterimSpace
{
case
n
one
case
interimSpace
1
case
interimSpace
2
case
interimSpace
3
case
interimSpace
4
case
interimSpace
5
case
interimSpace
6
case
interimSpace
7
case
interimSpace
8
case
interimSpace
9
}
/// Converts the
MaterialSpacing
enum to a CGFloat value.
public
func
MaterialSpacingToValue
(
radius
:
MaterialSpacing
)
->
CGFloat
{
switch
radius
{
case
.
N
one
:
return
0
case
.
Spacing
1
:
return
4
case
.
Spacing
2
:
return
8
case
.
Spacing
3
:
return
16
case
.
Spacing
4
:
return
24
case
.
Spacing
5
:
return
32
case
.
Spacing
6
:
return
40
case
.
Spacing
7
:
return
48
case
.
Spacing
8
:
return
56
case
.
Spacing
9
:
return
64
}
/// Converts the
InterimSpace
enum to a CGFloat value.
public
func
interimSpaceToValue
(
interimSpace
:
InterimSpace
)
->
CGFloat
{
switch
interimSpace
{
case
.
n
one
:
return
0
case
.
interimSpace
1
:
return
4
case
.
interimSpace
2
:
return
8
case
.
interimSpace
3
:
return
16
case
.
interimSpace
4
:
return
24
case
.
interimSpace
5
:
return
32
case
.
interimSpace
6
:
return
40
case
.
interimSpace
7
:
return
48
case
.
interimSpace
8
:
return
56
case
.
interimSpace
9
:
return
64
}
}
Sources/iOS/Layout.swift
View file @
4ad815ea
...
...
@@ -162,35 +162,35 @@ public class Layout {
/**
A collection of children views are horizontally stretched with optional left,
right padding and interim
spacing
.
right padding and interim
interimSpace
.
- Parameter children: An Array UIView to layout.
- Parameter left: A CGFloat value for padding the left side.
- Parameter right: A CGFloat value for padding the right side.
- Parameter
spacing: A CGFloat value for interim spacing
.
- Parameter
interimSpace: A CGFloat value for interim interimSpace
.
- Returns: The current Layout instance.
*/
public
func
horizontally
(
children
:
Array
<
UIView
>
,
left
:
CGFloat
=
0
,
right
:
CGFloat
=
0
,
spacing
:
CGFloat
=
0
)
->
Layout
{
public
func
horizontally
(
children
:
Array
<
UIView
>
,
left
:
CGFloat
=
0
,
right
:
CGFloat
=
0
,
interimSpace
:
CGFloat
=
0
)
->
Layout
{
guard
let
v
:
UIView
=
parent
else
{
return
debugParentNotAvailableMessage
()
}
Layout
.
horizontally
(
v
,
children
:
children
,
left
:
left
,
right
:
right
,
spacing
:
spacing
)
Layout
.
horizontally
(
v
,
children
:
children
,
left
:
left
,
right
:
right
,
interimSpace
:
interimSpace
)
return
self
}
/**
A collection of children views are vertically stretched with optional top,
bottom padding and interim
spacing
.
bottom padding and interim
interimSpace
.
- Parameter children: An Array UIView to layout.
- Parameter top: A CGFloat value for padding the top side.
- Parameter bottom: A CGFloat value for padding the bottom side.
- Parameter
spacing: A CGFloat value for interim spacing
.
- Parameter
interimSpace: A CGFloat value for interim interimSpace
.
- Returns: The current Layout instance.
*/
public
func
vertically
(
children
:
Array
<
UIView
>
,
top
:
CGFloat
=
0
,
bottom
:
CGFloat
=
0
,
spacing
:
CGFloat
=
0
)
->
Layout
{
public
func
vertically
(
children
:
Array
<
UIView
>
,
top
:
CGFloat
=
0
,
bottom
:
CGFloat
=
0
,
interimSpace
:
CGFloat
=
0
)
->
Layout
{
guard
let
v
:
UIView
=
parent
else
{
return
debugParentNotAvailableMessage
()
}
Layout
.
vertically
(
v
,
children
:
children
,
top
:
top
,
bottom
:
bottom
,
spacing
:
spacing
)
Layout
.
vertically
(
v
,
children
:
children
,
top
:
top
,
bottom
:
bottom
,
interimSpace
:
interimSpace
)
return
self
}
...
...
@@ -633,19 +633,19 @@ public extension Layout {
/**
A collection of children views are horizontally stretched with optional left,
right padding and interim
spacing
.
right padding and interim
interimSpace
.
- Parameter parent: A parent UIView context.
- Parameter children: An Array UIView to layout.
- Parameter left: A CGFloat value for padding the left side.
- Parameter right: A CGFloat value for padding the right side.
- Parameter
spacing: A CGFloat value for interim spacing
.
- Parameter
interimSpace: A CGFloat value for interim interimSpace
.
*/
public
class
func
horizontally
(
parent
:
UIView
,
children
:
Array
<
UIView
>
,
left
:
CGFloat
=
0
,
right
:
CGFloat
=
0
,
spacing
:
CGFloat
=
0
)
{
public
class
func
horizontally
(
parent
:
UIView
,
children
:
Array
<
UIView
>
,
left
:
CGFloat
=
0
,
right
:
CGFloat
=
0
,
interimSpace
:
CGFloat
=
0
)
{
prepareForConstraint
(
parent
,
children
:
children
)
if
0
<
children
.
count
{
parent
.
addConstraint
(
NSLayoutConstraint
(
item
:
children
[
0
],
attribute
:
.
Left
,
relatedBy
:
.
Equal
,
toItem
:
parent
,
attribute
:
.
Left
,
multiplier
:
1
,
constant
:
left
))
for
i
in
1
..<
children
.
count
{
parent
.
addConstraint
(
NSLayoutConstraint
(
item
:
children
[
i
],
attribute
:
.
Left
,
relatedBy
:
.
Equal
,
toItem
:
children
[
i
-
1
],
attribute
:
.
Right
,
multiplier
:
1
,
constant
:
spacing
))
parent
.
addConstraint
(
NSLayoutConstraint
(
item
:
children
[
i
],
attribute
:
.
Left
,
relatedBy
:
.
Equal
,
toItem
:
children
[
i
-
1
],
attribute
:
.
Right
,
multiplier
:
1
,
constant
:
interimSpace
))
parent
.
addConstraint
(
NSLayoutConstraint
(
item
:
children
[
i
],
attribute
:
.
Width
,
relatedBy
:
.
Equal
,
toItem
:
children
[
0
],
attribute
:
.
Width
,
multiplier
:
1
,
constant
:
0
))
}
parent
.
addConstraint
(
NSLayoutConstraint
(
item
:
children
[
children
.
count
-
1
],
attribute
:
.
Right
,
relatedBy
:
.
Equal
,
toItem
:
parent
,
attribute
:
.
Right
,
multiplier
:
1
,
constant
:
-
right
))
...
...
@@ -654,19 +654,19 @@ public extension Layout {
/**
A collection of children views are vertically stretched with optional top,
bottom padding and interim
spacing
.
bottom padding and interim
interimSpace
.
- Parameter parent: A parent UIView context.
- Parameter children: An Array UIView to layout.
- Parameter top: A CGFloat value for padding the top side.
- Parameter bottom: A CGFloat value for padding the bottom side.
- Parameter
spacing: A CGFloat value for interim spacing
.
- Parameter
interimSpace: A CGFloat value for interim interimSpace
.
*/
public
class
func
vertically
(
parent
:
UIView
,
children
:
Array
<
UIView
>
,
top
:
CGFloat
=
0
,
bottom
:
CGFloat
=
0
,
spacing
:
CGFloat
=
0
)
{
public
class
func
vertically
(
parent
:
UIView
,
children
:
Array
<
UIView
>
,
top
:
CGFloat
=
0
,
bottom
:
CGFloat
=
0
,
interimSpace
:
CGFloat
=
0
)
{
prepareForConstraint
(
parent
,
children
:
children
)
if
0
<
children
.
count
{
parent
.
addConstraint
(
NSLayoutConstraint
(
item
:
children
[
0
],
attribute
:
.
Top
,
relatedBy
:
.
Equal
,
toItem
:
parent
,
attribute
:
.
Top
,
multiplier
:
1
,
constant
:
top
))
for
i
in
1
..<
children
.
count
{
parent
.
addConstraint
(
NSLayoutConstraint
(
item
:
children
[
i
],
attribute
:
.
Top
,
relatedBy
:
.
Equal
,
toItem
:
children
[
i
-
1
],
attribute
:
.
Bottom
,
multiplier
:
1
,
constant
:
spacing
))
parent
.
addConstraint
(
NSLayoutConstraint
(
item
:
children
[
i
],
attribute
:
.
Top
,
relatedBy
:
.
Equal
,
toItem
:
children
[
i
-
1
],
attribute
:
.
Bottom
,
multiplier
:
1
,
constant
:
interimSpace
))
parent
.
addConstraint
(
NSLayoutConstraint
(
item
:
children
[
i
],
attribute
:
.
Height
,
relatedBy
:
.
Equal
,
toItem
:
children
[
0
],
attribute
:
.
Height
,
multiplier
:
1
,
constant
:
0
))
}
parent
.
addConstraint
(
NSLayoutConstraint
(
item
:
children
[
children
.
count
-
1
],
attribute
:
.
Bottom
,
relatedBy
:
.
Equal
,
toItem
:
parent
,
attribute
:
.
Bottom
,
multiplier
:
1
,
constant
:
-
bottom
))
...
...
Sources/iOS/MaterialCollectionReusableView.swift
View file @
4ad815ea
...
...
@@ -152,20 +152,20 @@ public class MaterialCollectionReusableView : UICollectionReusableView {
}
}
/// A preset wrapper around
spacing
.
public
var
spacingPreset
:
MaterialSpacing
=
.
N
one
{
/// A preset wrapper around
interimSpace
.
public
var
interimSpacePreset
:
InterimSpace
=
.
n
one
{
didSet
{
spacing
=
MaterialSpacingToValue
(
spacing
Preset
)
interimSpace
=
interimSpaceToValue
(
interimSpace
Preset
)
}
}
/// A wrapper around grid.
spacing
.
@IBInspectable
public
var
spacing
:
CGFloat
{
/// A wrapper around grid.
interimSpace
.
@IBInspectable
public
var
interimSpace
:
CGFloat
{
get
{
return
grid
.
spacing
return
grid
.
interimSpace
}
set
(
value
)
{
grid
.
spacing
=
value
grid
.
interimSpace
=
value
}
}
...
...
Sources/iOS/MaterialCollectionView.swift
View file @
4ad815ea
...
...
@@ -101,20 +101,20 @@ public class MaterialCollectionView : UICollectionView {
}
}
/// A preset wrapper around
spacing
.
public
var
spacingPreset
:
MaterialSpacing
=
.
N
one
{
/// A preset wrapper around
interimSpace
.
public
var
interimSpacePreset
:
InterimSpace
=
.
n
one
{
didSet
{
spacing
=
MaterialSpacingToValue
(
spacing
Preset
)
interimSpace
=
interimSpaceToValue
(
interimSpace
Preset
)
}
}
/// Spacing between items.
@IBInspectable
public
var
spacing
:
CGFloat
{
@IBInspectable
public
var
interimSpace
:
CGFloat
{
get
{
return
(
collectionViewLayout
as?
MaterialCollectionViewLayout
)
!.
spacing
return
(
collectionViewLayout
as?
MaterialCollectionViewLayout
)
!.
interimSpace
}
set
(
value
)
{
(
collectionViewLayout
as?
MaterialCollectionViewLayout
)
!.
spacing
=
value
(
collectionViewLayout
as?
MaterialCollectionViewLayout
)
!.
interimSpace
=
value
}
}
...
...
Sources/iOS/MaterialCollectionViewCell.swift
View file @
4ad815ea
...
...
@@ -152,20 +152,20 @@ public class MaterialCollectionViewCell : UICollectionViewCell {
}
}
/// A preset wrapper around
spacing
.
public
var
spacingPreset
:
MaterialSpacing
=
.
N
one
{
/// A preset wrapper around
interimSpace
.
public
var
interimSpacePreset
:
InterimSpace
=
.
n
one
{
didSet
{
spacing
=
MaterialSpacingToValue
(
spacing
Preset
)
interimSpace
=
interimSpaceToValue
(
interimSpace
Preset
)
}
}
/// A wrapper around grid.
spacing
.
@IBInspectable
public
var
spacing
:
CGFloat
{
/// A wrapper around grid.
interimSpace
.
@IBInspectable
public
var
interimSpace
:
CGFloat
{
get
{
return
contentView
.
grid
.
spacing
return
contentView
.
grid
.
interimSpace
}
set
(
value
)
{
contentView
.
grid
.
spacing
=
value
contentView
.
grid
.
interimSpace
=
value
}
}
...
...
Sources/iOS/MaterialCollectionViewLayout.swift
View file @
4ad815ea
...
...
@@ -59,15 +59,15 @@ public class MaterialCollectionViewLayout : UICollectionViewLayout {
/// Scroll direction.
public
var
scrollDirection
:
UICollectionViewScrollDirection
=
.
Vertical
/// A preset wrapper around
spacing
.
public
var
spacingPreset
:
MaterialSpacing
=
.
N
one
{
/// A preset wrapper around
interimSpace
.
public
var
interimSpacePreset
:
InterimSpace
=
.
n
one
{
didSet
{
spacing
=
MaterialSpacingToValue
(
spacing
Preset
)
interimSpace
=
interimSpaceToValue
(
interimSpace
Preset
)
}
}
/// Spacing between items.
public
var
spacing
:
CGFloat
=
0
public
var
interimSpace
:
CGFloat
=
0
/**
Retrieves the index paths for the items within the passed in CGRect.
...
...
@@ -141,15 +141,15 @@ public class MaterialCollectionViewLayout : UICollectionViewLayout {
indexPath
=
NSIndexPath
(
forItem
:
i
,
inSection
:
0
)
layoutItems
.
append
((
layoutAttributesForItemAtIndexPath
(
indexPath
!
)
!
,
indexPath
!
))
offset
.
x
+=
spacing
offset
.
x
+=
interimSpace
offset
.
x
+=
nil
==
item
.
width
?
itemSize
.
width
:
item
.
width
!
offset
.
y
+=
spacing
offset
.
y
+=
interimSpace
offset
.
y
+=
nil
==
item
.
height
?
itemSize
.
height
:
item
.
height
!
}
offset
.
x
+=
contentInset
.
right
-
spacing
offset
.
y
+=
contentInset
.
bottom
-
spacing
offset
.
x
+=
contentInset
.
right
-
interimSpace
offset
.
y
+=
contentInset
.
bottom
-
interimSpace
if
0
<
itemSize
.
width
&&
0
<
itemSize
.
height
{
contentSize
=
CGSizeMake
(
offset
.
x
,
offset
.
y
)
...
...
Sources/iOS/Menu.swift
View file @
4ad815ea
...
...
@@ -48,15 +48,15 @@ public class Menu {
}
}
/// A preset wrapper around
spacing
.
public
var
spacingPreset
:
MaterialSpacing
=
.
N
one
{
/// A preset wrapper around
interimSpace
.
public
var
interimSpacePreset
:
InterimSpace
=
.
n
one
{
didSet
{
spacing
=
MaterialSpacingToValue
(
spacing
Preset
)
interimSpace
=
interimSpaceToValue
(
interimSpace
Preset
)
}
}
/// The space between views.
public
var
spacing
:
CGFloat
{
public
var
interimSpace
:
CGFloat
{
didSet
{
reloadLayout
()
}
...
...
@@ -88,11 +88,11 @@ public class Menu {
/**
Initializer.
- Parameter origin: The origin position of the Menu.
- Parameter
spacing: The spacing
size between views.
- Parameter
interimSpace: The interimSpace
size between views.
*/
public
init
(
origin
:
CGPoint
,
spacing
:
CGFloat
=
16
)
{
public
init
(
origin
:
CGPoint
,
interimSpace
:
CGFloat
=
16
)
{
self
.
origin
=
origin
self
.
spacing
=
spacing
self
.
interimSpace
=
interimSpace
}
/// Convenience initializer.
...
...
@@ -186,7 +186,7 @@ public class Menu {
animations
:
{
[
weak
self
]
in
if
let
s
:
Menu
=
self
{
view
.
alpha
=
1
view
.
frame
.
origin
.
y
=
base
!.
frame
.
origin
.
y
-
CGFloat
(
i
)
*
s
.
itemSize
.
height
-
CGFloat
(
i
)
*
s
.
spacing
view
.
frame
.
origin
.
y
=
base
!.
frame
.
origin
.
y
-
CGFloat
(
i
)
*
s
.
itemSize
.
height
-
CGFloat
(
i
)
*
s
.
interimSpace
animations
?(
view
)
}
})
{
[
weak
self
]
_
in
...
...
@@ -272,7 +272,7 @@ public class Menu {
animations
:
{
[
weak
self
]
in
if
let
s
:
Menu
=
self
{
view
.
alpha
=
1
view
.
frame
.
origin
.
y
=
base
!.
frame
.
origin
.
y
+
h
+
CGFloat
(
i
-
1
)
*
s
.
itemSize
.
height
+
CGFloat
(
i
)
*
s
.
spacing
view
.
frame
.
origin
.
y
=
base
!.
frame
.
origin
.
y
+
h
+
CGFloat
(
i
-
1
)
*
s
.
itemSize
.
height
+
CGFloat
(
i
)
*
s
.
interimSpace
animations
?(
view
)
}
})
{
[
weak
self
]
_
in
...
...
@@ -358,7 +358,7 @@ public class Menu {
animations
:
{
[
weak
self
]
in
if
let
s
:
Menu
=
self
{
view
.
alpha
=
1
view
.
frame
.
origin
.
x
=
base
!.
frame
.
origin
.
x
-
CGFloat
(
i
)
*
s
.
itemSize
.
width
-
CGFloat
(
i
)
*
s
.
spacing
view
.
frame
.
origin
.
x
=
base
!.
frame
.
origin
.
x
-
CGFloat
(
i
)
*
s
.
itemSize
.
width
-
CGFloat
(
i
)
*
s
.
interimSpace
animations
?(
view
)
}
})
{
[
weak
self
]
_
in
...
...
@@ -442,7 +442,7 @@ public class Menu {
animations
:
{
[
weak
self
]
in
if
let
s
:
Menu
=
self
{
view
.
alpha
=
1
view
.
frame
.
origin
.
x
=
base
!.
frame
.
origin
.
x
+
h
+
CGFloat
(
i
-
1
)
*
s
.
itemSize
.
width
+
CGFloat
(
i
)
*
s
.
spacing
view
.
frame
.
origin
.
x
=
base
!.
frame
.
origin
.
x
+
h
+
CGFloat
(
i
-
1
)
*
s
.
itemSize
.
width
+
CGFloat
(
i
)
*
s
.
interimSpace
animations
?(
view
)
}
})
{
[
weak
self
]
_
in
...
...
Sources/iOS/NavigationBar.swift
View file @
4ad815ea
...
...
@@ -75,15 +75,15 @@ public class NavigationBar : UINavigationBar {
}
}
/// A preset wrapper around
spacing
.
public
var
spacingPreset
:
MaterialSpacing
=
.
N
one
{
/// A preset wrapper around
interimSpace
.
public
var
interimSpacePreset
:
InterimSpace
=
.
n
one
{
didSet
{
spacing
=
MaterialSpacingToValue
(
spacing
Preset
)
interimSpace
=
interimSpaceToValue
(
interimSpace
Preset
)
}
}
/// A wrapper around grid.
spacing
.
@IBInspectable
public
var
spacing
:
CGFloat
=
0
{
/// A wrapper around grid.
interimSpace
.
@IBInspectable
public
var
interimSpace
:
CGFloat
=
0
{
didSet
{
layoutSubviews
()
}
...
...
@@ -377,7 +377,7 @@ public class NavigationBar : UINavigationBar {
}
titleView
.
grid
.
contentInset
=
contentInset
titleView
.
grid
.
spacing
=
spacing
titleView
.
grid
.
interimSpace
=
interimSpace
titleView
.
grid
.
reloadLayout
()
// contentView alignment.
...
...
@@ -432,7 +432,7 @@ public class NavigationBar : UINavigationBar {
barStyle
=
.
Black
translucent
=
false
depth
=
.
Depth1
spacingPreset
=
.
Spacing
1
interimSpacePreset
=
.
interimSpace
1
contentInsetPreset
=
.
Square1
contentScaleFactor
=
MaterialDevice
.
scale
backButtonImage
=
Icon
.
cm
.
arrowBack
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment