Commit 012d5b80 by Daniel Dahan

Merge pull request #428 from mohpor/development

Draft for fixing statusbar hide/unhide issue
parents aa42d5fb 046a7b47
...@@ -285,6 +285,21 @@ public class NavigationBar : UINavigationBar { ...@@ -285,6 +285,21 @@ public class NavigationBar : UINavigationBar {
self.init(frame: CGRectZero) self.init(frame: CGRectZero)
} }
private func statusbarOffset() -> CGFloat {
var result: CGFloat = 0
switch MaterialDevice.type {
case .iPad:
result = MaterialDevice.statusBarHidden ? 20 : 0
case .iPhone:
result = MaterialDevice.isPortrait && MaterialDevice.statusBarHidden ? 20 : 0
case .TV:
break
case .Unspecified:
break
}
return result;
}
public override func intrinsicContentSize() -> CGSize { public override func intrinsicContentSize() -> CGSize {
switch navigationBarStyle { switch navigationBarStyle {
case .Tiny: case .Tiny:
...@@ -297,7 +312,9 @@ public class NavigationBar : UINavigationBar { ...@@ -297,7 +312,9 @@ public class NavigationBar : UINavigationBar {
} }
public override func sizeThatFits(size: CGSize) -> CGSize { public override func sizeThatFits(size: CGSize) -> CGSize {
return intrinsicContentSize() var result: CGSize = intrinsicContentSize()
result.height += statusbarOffset()
return result
} }
public override func layoutSubviews() { public override func layoutSubviews() {
...@@ -328,8 +345,8 @@ public class NavigationBar : UINavigationBar { ...@@ -328,8 +345,8 @@ public class NavigationBar : UINavigationBar {
if let contentView: UIView = prepareContentView(item) { if let contentView: UIView = prepareContentView(item) {
if let g: Int = Int(width / gridFactor) { if let g: Int = Int(width / gridFactor) {
let columns: Int = g + 1 let columns: Int = g + 1
titleView.frame.origin = CGPointZero titleView.frame.origin = CGPoint(x: 0, y: statusbarOffset())
titleView.frame.size = intrinsicContentSize() titleView.frame.size = intrinsicContentSize()
titleView.grid.views = [] titleView.grid.views = []
titleView.grid.axis.columns = columns titleView.grid.axis.columns = columns
......
...@@ -1098,9 +1098,10 @@ public class SideNavigationController : UIViewController, UIGestureRecognizerDel ...@@ -1098,9 +1098,10 @@ public class SideNavigationController : UIViewController, UIGestureRecognizerDel
willHideStatusBar = false willHideStatusBar = false
UIView.animateWithDuration(NSTimeInterval(UINavigationControllerHideShowBarDuration), UIView.animateWithDuration(NSTimeInterval(UINavigationControllerHideShowBarDuration),
animations: { [weak self] in animations: { [weak self] in
self?.setNeedsStatusBarAppearanceUpdate()
self?.statusBarHidden = false self?.statusBarHidden = false
}) })
self.setNeedsStatusBarAppearanceUpdate()
delegate?.sideNavigationStatusBarHiddenState?(self, hidden: false) delegate?.sideNavigationStatusBarHiddenState?(self, hidden: false)
} }
} }
...@@ -1112,9 +1113,10 @@ public class SideNavigationController : UIViewController, UIGestureRecognizerDel ...@@ -1112,9 +1113,10 @@ public class SideNavigationController : UIViewController, UIGestureRecognizerDel
if !statusBarHidden { if !statusBarHidden {
UIView.animateWithDuration(NSTimeInterval(UINavigationControllerHideShowBarDuration), UIView.animateWithDuration(NSTimeInterval(UINavigationControllerHideShowBarDuration),
animations: { [weak self] in animations: { [weak self] in
self?.setNeedsStatusBarAppearanceUpdate()
self?.statusBarHidden = true self?.statusBarHidden = true
}) })
self.setNeedsStatusBarAppearanceUpdate()
delegate?.sideNavigationStatusBarHiddenState?(self, hidden: true) delegate?.sideNavigationStatusBarHiddenState?(self, hidden: true)
} }
} }
......
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