From 5936fc8b560ab25032753ac84d94017b93d00adf Mon Sep 17 00:00:00 2001 From: Charles Magahern Date: Sun, 3 Jan 2016 13:21:50 -0800 Subject: [PATCH] Fix animation and layout bugs on iPad Pro --- XIONControlPanel/Application/AppDelegate.swift | 13 ++++++++++++- .../Controllers/MainViewController.swift | 7 ++----- .../Controllers/SwitchesViewController.swift | 2 +- XIONControlPanel/Views/XIONLogoView.swift | 2 ++ 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/XIONControlPanel/Application/AppDelegate.swift b/XIONControlPanel/Application/AppDelegate.swift index 8270fcc..9fbe100 100644 --- a/XIONControlPanel/Application/AppDelegate.swift +++ b/XIONControlPanel/Application/AppDelegate.swift @@ -11,18 +11,29 @@ import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? + var mainViewController: MainViewController = MainViewController() func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { application.statusBarHidden = true self.window = UIWindow(frame: UIScreen.mainScreen().bounds) - self.window?.rootViewController = MainViewController() + self.window?.rootViewController = self.mainViewController self.window?.makeKeyAndVisible() return true } + func applicationDidBecomeActive(application: UIApplication) + { + self.mainViewController.viewDidAppear(false) + } + + func applicationDidEnterBackground(application: UIApplication) + { + self.mainViewController.viewDidDisappear(false) + } + func application(application: UIApplication, supportedInterfaceOrientationsForWindow window: UIWindow?) -> UIInterfaceOrientationMask { return UIInterfaceOrientationMask.Landscape diff --git a/XIONControlPanel/Controllers/MainViewController.swift b/XIONControlPanel/Controllers/MainViewController.swift index e18b069..ff7e007 100644 --- a/XIONControlPanel/Controllers/MainViewController.swift +++ b/XIONControlPanel/Controllers/MainViewController.swift @@ -87,6 +87,8 @@ class MainViewController: UIViewController, SwitchesViewControllerDelegate { override func viewDidAppear(animated: Bool) { + super.viewDidAppear(animated) + _headerView.xionLogoView.beginAnimating() if (!_server.connected) { @@ -102,11 +104,6 @@ class MainViewController: UIViewController, SwitchesViewControllerDelegate { } } - override func viewDidDisappear(animated: Bool) - { - _headerView.xionLogoView.stopAnimating() - } - override func prefersStatusBarHidden() -> Bool { return true diff --git a/XIONControlPanel/Controllers/SwitchesViewController.swift b/XIONControlPanel/Controllers/SwitchesViewController.swift index 6a7bfbd..b16224e 100644 --- a/XIONControlPanel/Controllers/SwitchesViewController.swift +++ b/XIONControlPanel/Controllers/SwitchesViewController.swift @@ -182,7 +182,7 @@ class SwitchesViewController: UIViewController, { let spacing = SwitchesViewController.collectionViewCellsSpacing let cellsPerRow = CGFloat(SwitchesViewController.collectionViewCellsPerRow) - let dimensions = rint((collectionView.bounds.size.width / cellsPerRow) - ((spacing * (cellsPerRow - 1.0)) / cellsPerRow)) + let dimensions = floor((collectionView.bounds.size.width / cellsPerRow) - ((spacing * (cellsPerRow - 1.0)) / cellsPerRow)) if (indexPath.item < ActionCell.count) { return CGSize(width: collectionView.bounds.size.width, height: rint(dimensions / 2.0)) diff --git a/XIONControlPanel/Views/XIONLogoView.swift b/XIONControlPanel/Views/XIONLogoView.swift index 381083c..bc2ba04 100644 --- a/XIONControlPanel/Views/XIONLogoView.swift +++ b/XIONControlPanel/Views/XIONLogoView.swift @@ -52,6 +52,8 @@ class XIONLogoView: UIView { func beginAnimating() { + self.stopAnimating() + let duration: NSTimeInterval = 20.0 let clockwiseAnim = CABasicAnimation(keyPath: "transform.rotation")