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
b254e22d
Commit
b254e22d
authored
Aug 08, 2017
by
Daniel Dahan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
updated layout mathematics for TabBarController and ChipBarController
parent
4d61e3f8
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
196 additions
and
262 deletions
+196
-262
Sources/iOS/Bar.swift
+1
-0
Sources/iOS/ChipBar.swift
+47
-113
Sources/iOS/ChipBarController.swift
+54
-13
Sources/iOS/TabBar.swift
+40
-111
Sources/iOS/TabBarController.swift
+23
-6
Sources/iOS/ToolbarController.swift
+31
-19
No files found.
Sources/iOS/Bar.swift
View file @
b254e22d
...
@@ -265,6 +265,7 @@ open class Bar: View {
...
@@ -265,6 +265,7 @@ open class Bar: View {
autoresizingMask
=
.
flexibleWidth
autoresizingMask
=
.
flexibleWidth
interimSpacePreset
=
.
interimSpace3
interimSpacePreset
=
.
interimSpace3
contentEdgeInsetsPreset
=
.
square1
contentEdgeInsetsPreset
=
.
square1
prepareContentView
()
prepareContentView
()
}
}
}
}
...
...
Sources/iOS/ChipBar.swift
View file @
b254e22d
...
@@ -156,10 +156,10 @@ open class ChipBar: Bar {
...
@@ -156,10 +156,10 @@ open class ChipBar: Bar {
/// A preset wrapper around chipItems contentEdgeInsets.
/// A preset wrapper around chipItems contentEdgeInsets.
open
var
chipItemsContentEdgeInsetsPreset
:
EdgeInsetsPreset
{
open
var
chipItemsContentEdgeInsetsPreset
:
EdgeInsetsPreset
{
get
{
get
{
return
scroll
View
.
grid
.
contentEdgeInsetsPreset
return
content
View
.
grid
.
contentEdgeInsetsPreset
}
}
set
(
value
)
{
set
(
value
)
{
scroll
View
.
grid
.
contentEdgeInsetsPreset
=
value
content
View
.
grid
.
contentEdgeInsetsPreset
=
value
}
}
}
}
...
@@ -167,20 +167,20 @@ open class ChipBar: Bar {
...
@@ -167,20 +167,20 @@ open class ChipBar: Bar {
@IBInspectable
@IBInspectable
open
var
chipItemsContentEdgeInsets
:
EdgeInsets
{
open
var
chipItemsContentEdgeInsets
:
EdgeInsets
{
get
{
get
{
return
scroll
View
.
grid
.
contentEdgeInsets
return
content
View
.
grid
.
contentEdgeInsets
}
}
set
(
value
)
{
set
(
value
)
{
scroll
View
.
grid
.
contentEdgeInsets
=
value
content
View
.
grid
.
contentEdgeInsets
=
value
}
}
}
}
/// A preset wrapper around chipItems interimSpace.
/// A preset wrapper around chipItems interimSpace.
open
var
chipItemsInterimSpacePreset
:
InterimSpacePreset
{
open
var
chipItemsInterimSpacePreset
:
InterimSpacePreset
{
get
{
get
{
return
scroll
View
.
grid
.
interimSpacePreset
return
content
View
.
grid
.
interimSpacePreset
}
}
set
(
value
)
{
set
(
value
)
{
scroll
View
.
grid
.
interimSpacePreset
=
value
content
View
.
grid
.
interimSpacePreset
=
value
}
}
}
}
...
@@ -188,10 +188,10 @@ open class ChipBar: Bar {
...
@@ -188,10 +188,10 @@ open class ChipBar: Bar {
@IBInspectable
@IBInspectable
open
var
chipItemsInterimSpace
:
InterimSpace
{
open
var
chipItemsInterimSpace
:
InterimSpace
{
get
{
get
{
return
scroll
View
.
grid
.
interimSpace
return
content
View
.
grid
.
interimSpace
}
}
set
(
value
)
{
set
(
value
)
{
scroll
View
.
grid
.
interimSpace
=
value
content
View
.
grid
.
interimSpace
=
value
}
}
}
}
...
@@ -213,116 +213,17 @@ open class ChipBar: Bar {
...
@@ -213,116 +213,17 @@ open class ChipBar: Bar {
return
return
}
}
var
lc
=
0
layoutScrollView
()
var
rc
=
0
grid
.
begin
()
grid
.
views
.
removeAll
()
for
v
in
leftViews
{
if
let
b
=
v
as?
ChipItem
{
b
.
contentEdgeInsets
=
.
zero
b
.
titleEdgeInsets
=
.
zero
}
v
.
width
=
v
.
intrinsicContentSize
.
width
v
.
sizeToFit
()
v
.
grid
.
columns
=
Int
(
ceil
(
v
.
width
/
gridFactor
))
+
2
lc
+=
v
.
grid
.
columns
grid
.
views
.
append
(
v
)
}
grid
.
views
.
append
(
contentView
)
for
v
in
rightViews
{
if
let
b
=
v
as?
ChipItem
{
b
.
contentEdgeInsets
=
.
zero
b
.
titleEdgeInsets
=
.
zero
}
v
.
width
=
v
.
intrinsicContentSize
.
width
v
.
sizeToFit
()
v
.
grid
.
columns
=
Int
(
ceil
(
v
.
width
/
gridFactor
))
+
2
rc
+=
v
.
grid
.
columns
grid
.
views
.
append
(
v
)
}
contentView
.
grid
.
begin
()
contentView
.
grid
.
offset
.
columns
=
0
var
l
:
CGFloat
=
0
var
r
:
CGFloat
=
0
if
.
center
==
contentViewAlignment
{
if
leftViews
.
count
<
rightViews
.
count
{
r
=
CGFloat
(
rightViews
.
count
)
*
interimSpace
l
=
r
}
else
{
l
=
CGFloat
(
leftViews
.
count
)
*
interimSpace
r
=
l
}
}
let
p
=
width
-
l
-
r
-
contentEdgeInsets
.
left
-
contentEdgeInsets
.
right
let
columns
=
Int
(
ceil
(
p
/
gridFactor
))
if
.
center
==
contentViewAlignment
{
if
lc
<
rc
{
contentView
.
grid
.
columns
=
columns
-
2
*
rc
contentView
.
grid
.
offset
.
columns
=
rc
-
lc
}
else
{
contentView
.
grid
.
columns
=
columns
-
2
*
lc
rightViews
.
first
?
.
grid
.
offset
.
columns
=
lc
-
rc
}
}
else
{
contentView
.
grid
.
columns
=
columns
-
lc
-
rc
}
grid
.
axis
.
columns
=
columns
if
.
scrollable
==
chipBarStyle
||
(
.
auto
==
chipBarStyle
&&
chipItemsTotalWidth
>
bounds
.
width
)
{
var
w
:
CGFloat
=
chipItemsContentEdgeInsets
.
left
let
q
=
2
*
chipItemsInterimSpace
let
p
=
q
+
chipItemsInterimSpace
for
v
in
chipItems
{
let
x
=
v
.
sizeThatFits
(
CGSize
(
width
:
CGFloat
.
greatestFiniteMagnitude
,
height
:
scrollView
.
height
))
.
width
v
.
height
=
scrollView
.
height
v
.
width
=
x
+
q
v
.
x
=
w
w
+=
x
w
+=
p
if
scrollView
!=
v
.
superview
{
v
.
removeFromSuperview
()
scrollView
.
addSubview
(
v
)
}
}
w
+=
chipItemsContentEdgeInsets
.
right
-
chipItemsInterimSpace
scrollView
.
contentSize
=
CGSize
(
width
:
w
,
height
:
scrollView
.
height
-
chipItemsContentEdgeInsets
.
top
-
chipItemsContentEdgeInsets
.
bottom
)
}
else
{
scrollView
.
grid
.
views
=
chipItems
scrollView
.
grid
.
axis
.
columns
=
chipItems
.
count
scrollView
.
contentSize
=
CGSize
(
width
:
scrollView
.
width
,
height
:
scrollView
.
height
-
chipItemsContentEdgeInsets
.
top
-
chipItemsContentEdgeInsets
.
bottom
)
}
grid
.
commit
()
contentView
.
grid
.
commit
()
layoutDivider
()
}
}
open
override
func
prepare
()
{
open
override
func
prepare
()
{
super
.
prepare
()
super
.
prepare
()
contentEdgeInsetsPreset
=
.
square2
interimSpacePreset
=
.
interimSpace3
interimSpacePreset
=
.
interimSpace6
contentEdgeInsetsPreset
=
.
square1
chipItemsInterimSpacePreset
=
.
interimSpace4
chipItemsInterimSpacePreset
=
.
interimSpace4
chipItemsContentEdgeInsetsPreset
=
.
square2
chipItemsContentEdgeInsets
.
left
=
0
chipItemsContentEdgeInsets
.
right
=
0
prepareContentView
()
prepareContentView
()
prepareScrollView
()
prepareScrollView
()
...
@@ -363,6 +264,39 @@ fileprivate extension ChipBar {
...
@@ -363,6 +264,39 @@ fileprivate extension ChipBar {
}
}
fileprivate
extension
ChipBar
{
fileprivate
extension
ChipBar
{
/// Layout the scrollView.
func
layoutScrollView
()
{
if
.
scrollable
==
chipBarStyle
||
(
.
auto
==
chipBarStyle
&&
chipItemsTotalWidth
>
bounds
.
width
)
{
var
w
:
CGFloat
=
0
let
q
=
2
*
chipItemsInterimSpace
let
p
=
q
+
chipItemsInterimSpace
for
v
in
chipItems
{
let
x
=
v
.
sizeThatFits
(
CGSize
(
width
:
CGFloat
.
greatestFiniteMagnitude
,
height
:
scrollView
.
height
))
.
width
v
.
height
=
scrollView
.
height
v
.
width
=
x
+
q
v
.
x
=
w
w
+=
x
w
+=
p
if
scrollView
!=
v
.
superview
{
v
.
removeFromSuperview
()
scrollView
.
addSubview
(
v
)
}
}
w
-=
chipItemsInterimSpace
scrollView
.
contentSize
=
CGSize
(
width
:
w
,
height
:
scrollView
.
height
)
}
else
{
scrollView
.
grid
.
views
=
chipItems
scrollView
.
grid
.
axis
.
columns
=
chipItems
.
count
scrollView
.
contentSize
=
scrollView
.
bounds
.
size
}
}
}
fileprivate
extension
ChipBar
{
/// Handles the chipItem touch event.
/// Handles the chipItem touch event.
@objc
@objc
func
handle
(
chipItem
:
ChipItem
)
{
func
handle
(
chipItem
:
ChipItem
)
{
...
...
Sources/iOS/ChipBarController.swift
View file @
b254e22d
...
@@ -75,19 +75,9 @@ open class ChipBarController: TransitionController {
...
@@ -75,19 +75,9 @@ open class ChipBarController: TransitionController {
open
override
func
layoutSubviews
()
{
open
override
func
layoutSubviews
()
{
super
.
layoutSubviews
()
super
.
layoutSubviews
()
layoutChipBar
()
chipBar
.
width
=
view
.
width
layoutContainer
()
layoutRootViewController
()
switch
displayStyle
{
case
.
partial
:
let
h
=
chipBar
.
height
container
.
y
=
h
container
.
height
=
view
.
height
-
h
case
.
full
:
container
.
frame
=
view
.
bounds
}
rootViewController
.
view
.
frame
=
container
.
bounds
}
}
open
override
func
prepare
()
{
open
override
func
prepare
()
{
...
@@ -103,3 +93,54 @@ fileprivate extension ChipBarController {
...
@@ -103,3 +93,54 @@ fileprivate extension ChipBarController {
view
.
addSubview
(
chipBar
)
view
.
addSubview
(
chipBar
)
}
}
}
}
fileprivate
extension
ChipBarController
{
/// Layout the container.
func
layoutContainer
()
{
chipBar
.
width
=
view
.
width
switch
displayStyle
{
case
.
partial
:
let
p
=
chipBar
.
height
let
y
=
view
.
height
-
p
switch
chipBarAlignment
{
case
.
top
:
container
.
y
=
p
container
.
height
=
y
case
.
bottom
:
container
.
y
=
0
container
.
height
=
y
case
.
hidden
:
container
.
y
=
0
container
.
height
=
view
.
height
}
container
.
width
=
view
.
width
case
.
full
:
container
.
frame
=
view
.
bounds
}
}
/// Layout the chipBar.
func
layoutChipBar
()
{
chipBar
.
width
=
view
.
width
switch
chipBarAlignment
{
case
.
top
:
chipBar
.
isHidden
=
false
chipBar
.
y
=
0
case
.
bottom
:
chipBar
.
isHidden
=
false
chipBar
.
y
=
view
.
height
-
chipBar
.
height
case
.
hidden
:
chipBar
.
isHidden
=
true
}
}
/// Layout the rootViewController.
func
layoutRootViewController
()
{
rootViewController
.
view
.
frame
=
container
.
bounds
}
}
Sources/iOS/TabBar.swift
View file @
b254e22d
...
@@ -115,10 +115,10 @@ open class TabBar: Bar {
...
@@ -115,10 +115,10 @@ open class TabBar: Bar {
/// A preset wrapper around tabItems contentEdgeInsets.
/// A preset wrapper around tabItems contentEdgeInsets.
open
var
tabItemsContentEdgeInsetsPreset
:
EdgeInsetsPreset
{
open
var
tabItemsContentEdgeInsetsPreset
:
EdgeInsetsPreset
{
get
{
get
{
return
scroll
View
.
grid
.
contentEdgeInsetsPreset
return
content
View
.
grid
.
contentEdgeInsetsPreset
}
}
set
(
value
)
{
set
(
value
)
{
scroll
View
.
grid
.
contentEdgeInsetsPreset
=
value
content
View
.
grid
.
contentEdgeInsetsPreset
=
value
}
}
}
}
...
@@ -126,20 +126,20 @@ open class TabBar: Bar {
...
@@ -126,20 +126,20 @@ open class TabBar: Bar {
@IBInspectable
@IBInspectable
open
var
tabItemsContentEdgeInsets
:
EdgeInsets
{
open
var
tabItemsContentEdgeInsets
:
EdgeInsets
{
get
{
get
{
return
scroll
View
.
grid
.
contentEdgeInsets
return
content
View
.
grid
.
contentEdgeInsets
}
}
set
(
value
)
{
set
(
value
)
{
scroll
View
.
grid
.
contentEdgeInsets
=
value
content
View
.
grid
.
contentEdgeInsets
=
value
}
}
}
}
/// A preset wrapper around tabItems interimSpace.
/// A preset wrapper around tabItems interimSpace.
open
var
tabItemsInterimSpacePreset
:
InterimSpacePreset
{
open
var
tabItemsInterimSpacePreset
:
InterimSpacePreset
{
get
{
get
{
return
scroll
View
.
grid
.
interimSpacePreset
return
content
View
.
grid
.
interimSpacePreset
}
}
set
(
value
)
{
set
(
value
)
{
scroll
View
.
grid
.
interimSpacePreset
=
value
content
View
.
grid
.
interimSpacePreset
=
value
}
}
}
}
...
@@ -147,10 +147,10 @@ open class TabBar: Bar {
...
@@ -147,10 +147,10 @@ open class TabBar: Bar {
@IBInspectable
@IBInspectable
open
var
tabItemsInterimSpace
:
InterimSpace
{
open
var
tabItemsInterimSpace
:
InterimSpace
{
get
{
get
{
return
scroll
View
.
grid
.
interimSpace
return
content
View
.
grid
.
interimSpace
}
}
set
(
value
)
{
set
(
value
)
{
scroll
View
.
grid
.
interimSpace
=
value
content
View
.
grid
.
interimSpace
=
value
}
}
}
}
...
@@ -216,109 +216,7 @@ open class TabBar: Bar {
...
@@ -216,109 +216,7 @@ open class TabBar: Bar {
return
return
}
}
var
lc
=
0
layoutScrollView
()
var
rc
=
0
grid
.
begin
()
grid
.
views
.
removeAll
()
for
v
in
leftViews
{
if
let
b
=
v
as?
TabItem
{
b
.
contentEdgeInsets
=
.
zero
b
.
titleEdgeInsets
=
.
zero
}
v
.
width
=
v
.
intrinsicContentSize
.
width
v
.
sizeToFit
()
v
.
grid
.
columns
=
Int
(
ceil
(
v
.
width
/
gridFactor
))
+
2
lc
+=
v
.
grid
.
columns
grid
.
views
.
append
(
v
)
}
grid
.
views
.
append
(
contentView
)
for
v
in
rightViews
{
if
let
b
=
v
as?
TabItem
{
b
.
contentEdgeInsets
=
.
zero
b
.
titleEdgeInsets
=
.
zero
}
v
.
width
=
v
.
intrinsicContentSize
.
width
v
.
sizeToFit
()
v
.
grid
.
columns
=
Int
(
ceil
(
v
.
width
/
gridFactor
))
+
2
rc
+=
v
.
grid
.
columns
grid
.
views
.
append
(
v
)
}
contentView
.
grid
.
begin
()
contentView
.
grid
.
offset
.
columns
=
0
var
l
:
CGFloat
=
0
var
r
:
CGFloat
=
0
if
.
center
==
contentViewAlignment
{
if
leftViews
.
count
<
rightViews
.
count
{
r
=
CGFloat
(
rightViews
.
count
)
*
interimSpace
l
=
r
}
else
{
l
=
CGFloat
(
leftViews
.
count
)
*
interimSpace
r
=
l
}
}
let
p
=
width
-
l
-
r
-
contentEdgeInsets
.
left
-
contentEdgeInsets
.
right
let
columns
=
Int
(
ceil
(
p
/
gridFactor
))
if
.
center
==
contentViewAlignment
{
if
lc
<
rc
{
contentView
.
grid
.
columns
=
columns
-
2
*
rc
contentView
.
grid
.
offset
.
columns
=
rc
-
lc
}
else
{
contentView
.
grid
.
columns
=
columns
-
2
*
lc
rightViews
.
first
?
.
grid
.
offset
.
columns
=
lc
-
rc
}
}
else
{
contentView
.
grid
.
columns
=
columns
-
lc
-
rc
}
grid
.
axis
.
columns
=
columns
if
.
scrollable
==
tabBarStyle
||
(
.
auto
==
tabBarStyle
&&
tabItemsTotalWidth
>
bounds
.
width
)
{
var
w
:
CGFloat
=
tabItemsContentEdgeInsets
.
left
let
q
=
scrollView
.
height
/
2
let
p
=
q
+
tabItemsInterimSpace
for
v
in
tabItems
{
let
x
=
v
.
sizeThatFits
(
CGSize
(
width
:
CGFloat
.
greatestFiniteMagnitude
,
height
:
scrollView
.
height
))
.
width
v
.
height
=
scrollView
.
height
v
.
width
=
x
+
q
v
.
x
=
w
w
+=
x
w
+=
p
if
scrollView
!=
v
.
superview
{
v
.
removeFromSuperview
()
scrollView
.
addSubview
(
v
)
}
}
w
+=
tabItemsContentEdgeInsets
.
right
-
tabItemsInterimSpace
scrollView
.
contentSize
=
CGSize
(
width
:
w
,
height
:
scrollView
.
height
-
tabItemsContentEdgeInsets
.
top
-
tabItemsContentEdgeInsets
.
bottom
)
}
else
{
scrollView
.
grid
.
views
=
tabItems
scrollView
.
grid
.
axis
.
columns
=
tabItems
.
count
scrollView
.
contentSize
=
CGSize
(
width
:
scrollView
.
width
,
height
:
scrollView
.
height
-
tabItemsContentEdgeInsets
.
top
-
tabItemsContentEdgeInsets
.
bottom
)
}
grid
.
commit
()
contentView
.
grid
.
commit
()
layoutDivider
()
layoutLine
()
layoutLine
()
}
}
...
@@ -387,6 +285,37 @@ fileprivate extension TabBar {
...
@@ -387,6 +285,37 @@ fileprivate extension TabBar {
}
}
fileprivate
extension
TabBar
{
fileprivate
extension
TabBar
{
/// Layout the scrollView.
func
layoutScrollView
()
{
if
.
scrollable
==
tabBarStyle
||
(
.
auto
==
tabBarStyle
&&
tabItemsTotalWidth
>
bounds
.
width
)
{
var
w
:
CGFloat
=
0
let
q
=
2
*
tabItemsInterimSpace
let
p
=
q
+
tabItemsInterimSpace
for
v
in
tabItems
{
let
x
=
v
.
sizeThatFits
(
CGSize
(
width
:
CGFloat
.
greatestFiniteMagnitude
,
height
:
scrollView
.
height
))
.
width
v
.
height
=
scrollView
.
height
v
.
width
=
x
+
q
v
.
x
=
w
w
+=
x
w
+=
p
if
scrollView
!=
v
.
superview
{
v
.
removeFromSuperview
()
scrollView
.
addSubview
(
v
)
}
}
w
-=
tabItemsInterimSpace
scrollView
.
contentSize
=
CGSize
(
width
:
w
,
height
:
scrollView
.
height
)
}
else
{
scrollView
.
grid
.
views
=
tabItems
scrollView
.
grid
.
axis
.
columns
=
tabItems
.
count
scrollView
.
contentSize
=
scrollView
.
bounds
.
size
}
}
/// Layout the line view.
/// Layout the line view.
func
layoutLine
()
{
func
layoutLine
()
{
guard
0
<
tabItems
.
count
else
{
guard
0
<
tabItems
.
count
else
{
...
...
Sources/iOS/TabBarController.swift
View file @
b254e22d
...
@@ -65,6 +65,17 @@ extension UIViewController {
...
@@ -65,6 +65,17 @@ extension UIViewController {
}
}
open
class
TabBarController
:
UIViewController
{
open
class
TabBarController
:
UIViewController
{
/**
A Display value to indicate whether or not to
display the rootViewController to the full view
bounds, or up to the toolbar height.
*/
open
var
displayStyle
=
DisplayStyle
.
partial
{
didSet
{
layoutSubviews
()
}
}
/// The TabBar used to switch between view controllers.
/// The TabBar used to switch between view controllers.
@IBInspectable
@IBInspectable
open
let
tabBar
=
TabBar
()
open
let
tabBar
=
TabBar
()
...
@@ -150,9 +161,9 @@ open class TabBarController: UIViewController {
...
@@ -150,9 +161,9 @@ open class TabBarController: UIViewController {
open
func
prepare
()
{
open
func
prepare
()
{
view
.
backgroundColor
=
.
white
view
.
backgroundColor
=
.
white
view
.
contentScaleFactor
=
Screen
.
scale
view
.
contentScaleFactor
=
Screen
.
scale
prepareContainer
()
prepareTabBar
()
prepareTabBar
()
prepareTabBarItems
()
prepareTabBarItems
()
prepareContainer
()
prepareViewControllers
()
prepareViewControllers
()
}
}
}
}
...
@@ -219,8 +230,12 @@ fileprivate extension TabBarController {
...
@@ -219,8 +230,12 @@ fileprivate extension TabBarController {
}
}
fileprivate
extension
TabBarController
{
fileprivate
extension
TabBarController
{
/// Layout the container
view
.
/// Layout the container.
func
layoutContainer
()
{
func
layoutContainer
()
{
tabBar
.
width
=
view
.
width
switch
displayStyle
{
case
.
partial
:
let
p
=
tabBar
.
height
let
p
=
tabBar
.
height
let
y
=
view
.
height
-
p
let
y
=
view
.
height
-
p
...
@@ -237,12 +252,14 @@ fileprivate extension TabBarController {
...
@@ -237,12 +252,14 @@ fileprivate extension TabBarController {
}
}
container
.
width
=
view
.
width
container
.
width
=
view
.
width
case
.
full
:
container
.
frame
=
view
.
bounds
}
}
}
/// Layout the
T
abBar.
/// Layout the
t
abBar.
func
layoutTabBar
()
{
func
layoutTabBar
()
{
let
y
=
view
.
height
-
tabBar
.
height
tabBar
.
width
=
view
.
width
tabBar
.
width
=
view
.
width
switch
tabBarAlignment
{
switch
tabBarAlignment
{
...
@@ -251,7 +268,7 @@ fileprivate extension TabBarController {
...
@@ -251,7 +268,7 @@ fileprivate extension TabBarController {
tabBar
.
y
=
0
tabBar
.
y
=
0
case
.
bottom
:
case
.
bottom
:
tabBar
.
isHidden
=
false
tabBar
.
isHidden
=
false
tabBar
.
y
=
y
tabBar
.
y
=
view
.
height
-
tabBar
.
height
case
.
hidden
:
case
.
hidden
:
tabBar
.
isHidden
=
true
tabBar
.
isHidden
=
true
}
}
...
...
Sources/iOS/ToolbarController.swift
View file @
b254e22d
...
@@ -49,22 +49,9 @@ open class ToolbarController: StatusBarController {
...
@@ -49,22 +49,9 @@ open class ToolbarController: StatusBarController {
open
override
func
layoutSubviews
()
{
open
override
func
layoutSubviews
()
{
super
.
layoutSubviews
()
super
.
layoutSubviews
()
layoutToolbar
()
let
y
=
Application
.
shouldStatusBarBeHidden
||
statusBar
.
isHidden
?
0
:
statusBar
.
height
layoutContainer
()
layoutRootViewController
()
toolbar
.
y
=
y
toolbar
.
width
=
view
.
width
switch
displayStyle
{
case
.
partial
:
let
h
=
y
+
toolbar
.
height
container
.
y
=
h
container
.
height
=
view
.
height
-
h
case
.
full
:
container
.
frame
=
view
.
bounds
}
rootViewController
.
view
.
frame
=
container
.
bounds
}
}
open
override
func
prepare
()
{
open
override
func
prepare
()
{
...
@@ -76,15 +63,40 @@ open class ToolbarController: StatusBarController {
...
@@ -76,15 +63,40 @@ open class ToolbarController: StatusBarController {
}
}
}
}
extension
ToolbarController
{
fileprivate
extension
ToolbarController
{
/// Prepares the statusBar.
/// Prepares the statusBar.
f
ileprivate
f
unc
prepareStatusBar
()
{
func
prepareStatusBar
()
{
shouldHideStatusBarOnRotation
=
false
shouldHideStatusBarOnRotation
=
false
}
}
/// Prepares the toolbar.
/// Prepares the toolbar.
f
ileprivate
f
unc
prepareToolbar
()
{
func
prepareToolbar
()
{
toolbar
.
depthPreset
=
.
depth1
toolbar
.
depthPreset
=
.
depth1
view
.
addSubview
(
toolbar
)
view
.
addSubview
(
toolbar
)
}
}
}
}
fileprivate
extension
ToolbarController
{
/// Layout the toolbar.
func
layoutToolbar
()
{
toolbar
.
y
=
Application
.
shouldStatusBarBeHidden
||
statusBar
.
isHidden
?
0
:
statusBar
.
height
toolbar
.
width
=
view
.
width
}
/// Layout the container.
func
layoutContainer
()
{
switch
displayStyle
{
case
.
partial
:
let
h
=
toolbar
.
y
+
toolbar
.
height
container
.
y
=
h
container
.
height
=
view
.
height
-
h
case
.
full
:
container
.
frame
=
view
.
bounds
}
}
/// Layout the rootViewController.
func
layoutRootViewController
()
{
rootViewController
.
view
.
frame
=
container
.
bounds
}
}
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