Skip to content

Instantly share code, notes, and snippets.

@akisute
Last active November 16, 2018 02:46
Show Gist options
  • Star 8 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save akisute/291170b50ad87ce95a47 to your computer and use it in GitHub Desktop.
Save akisute/291170b50ad87ce95a47 to your computer and use it in GitHub Desktop.
Handling Size Class, UITraitEnvironment, UIContentContainer on iOS 9 (beta 1)
////////////////
// on iPad Air 2
////////////////
// Boot as portrait
2015-06-15 19:57:47.597 ios9[16003:229076] viewDidLoad()
2015-06-15 19:57:47.598 ios9[16003:229076] viewWillAppear - false
2015-06-15 19:57:47.601 ios9[16003:229076] traitCollectionDidChange - nil
2015-06-15 19:57:47.602 ios9[16003:229076] viewWillLayoutSubviews()
2015-06-15 19:57:47.602 ios9[16003:229076] viewDidLayoutSubviews()
2015-06-15 19:57:47.603 ios9[16003:229076] viewDidAppear - false
// Rotate CW to horizontal right
2015-06-15 19:58:13.775 ios9[16003:229076] viewWillTransitionToSize(_:withTransitionCoordinator:) - {1024, 768} <_UIViewControllerTransitionCoordinator: 0x7ffeb3c25340>
2015-06-15 19:58:13.777 ios9[16003:229076] viewWillLayoutSubviews()
2015-06-15 19:58:13.777 ios9[16003:229076] viewDidLayoutSubviews()
// Rotate CW to portrait upside down
2015-06-15 19:58:15.903 ios9[16003:229076] viewWillTransitionToSize(_:withTransitionCoordinator:) - {768, 1024} <_UIViewControllerTransitionCoordinator: 0x7ffeb3f13430>
2015-06-15 19:58:15.904 ios9[16003:229076] viewWillLayoutSubviews()
2015-06-15 19:58:15.904 ios9[16003:229076] viewDidLayoutSubviews()
// Rotate CW to horizontal left
2015-06-15 19:58:17.819 ios9[16003:229076] viewWillTransitionToSize(_:withTransitionCoordinator:) - {1024, 768} <_UIViewControllerTransitionCoordinator: 0x7ffeb6014a70>
2015-06-15 19:58:17.821 ios9[16003:229076] viewWillLayoutSubviews()
2015-06-15 19:58:17.821 ios9[16003:229076] viewDidLayoutSubviews()
// Rotate CW to portrait
2015-06-15 19:58:19.920 ios9[16003:229076] viewWillTransitionToSize(_:withTransitionCoordinator:) - {768, 1024} <_UIViewControllerTransitionCoordinator: 0x7ffeb6207350>
2015-06-15 19:58:19.921 ios9[16003:229076] viewWillLayoutSubviews()
2015-06-15 19:58:19.921 ios9[16003:229076] viewDidLayoutSubviews()
// Split Screen on portrait
2015-06-15 20:11:29.187 ios9[16125:244376] willTransitionToTraitCollection(_:withTransitionCoordinator:) - <UITraitCollection: 0x7fac68495830; _UITraitNameUserInterfaceIdiom = Pad, _UITraitNameDisplayScale = 2.000000, _UITraitNameHorizontalSizeClass = Compact, _UITraitNameVerticalSizeClass = Regular, _UITraitNameTouchLevel = 0, _UITraitNameInteractionModel = 1> <_UIViewControllerTransitionCoordinator: 0x7fac68491ab0>
2015-06-15 20:11:29.187 ios9[16125:244376] viewWillTransitionToSize(_:withTransitionCoordinator:) - {438, 1024} <_UIViewControllerTransitionCoordinator: 0x7fac68491ab0>
2015-06-15 20:11:29.188 ios9[16125:244376] traitCollectionDidChange - Optional(<UITraitCollection: 0x7fac6a01c460; _UITraitNameUserInterfaceIdiom = Pad, _UITraitNameDisplayScale = 2.000000, _UITraitNameHorizontalSizeClass = Regular, _UITraitNameVerticalSizeClass = Regular, _UITraitNameTouchLevel = 0, _UITraitNameInteractionModel = 1>)
2015-06-15 20:11:29.188 ios9[16125:244376] viewWillLayoutSubviews()
2015-06-15 20:11:29.188 ios9[16125:244376] viewDidLayoutSubviews()
// Rotate from Split Screen on portrait to Split Screen on horizontal, 2/3
2015-06-15 20:11:42.792 ios9[16125:244376] willTransitionToTraitCollection(_:withTransitionCoordinator:) - <UITraitCollection: 0x7fac6a107ee0; _UITraitNameUserInterfaceIdiom = Pad, _UITraitNameDisplayScale = 2.000000, _UITraitNameHorizontalSizeClass = Regular, _UITraitNameVerticalSizeClass = Regular, _UITraitNameTouchLevel = 0, _UITraitNameInteractionModel = 1> <_UIViewControllerTransitionCoordinator: 0x7fac6a107e60>
2015-06-15 20:11:42.792 ios9[16125:244376] viewWillTransitionToSize(_:withTransitionCoordinator:) - {694, 768} <_UIViewControllerTransitionCoordinator: 0x7fac6a107e60>
2015-06-15 20:11:42.794 ios9[16125:244376] traitCollectionDidChange - Optional(<UITraitCollection: 0x7fac6a101330; _UITraitNameUserInterfaceIdiom = Pad, _UITraitNameDisplayScale = 2.000000, _UITraitNameHorizontalSizeClass = Compact, _UITraitNameVerticalSizeClass = Regular, _UITraitNameTouchLevel = 0, _UITraitNameInteractionModel = 1>)
2015-06-15 20:11:42.794 ios9[16125:244376] viewWillLayoutSubviews()
2015-06-15 20:11:42.794 ios9[16125:244376] viewDidLayoutSubviews()
// Split Screen on horizontal, 2/3
2015-06-15 20:14:17.061 ios9[16125:244376] viewWillTransitionToSize(_:withTransitionCoordinator:) - {694, 768} <_UIViewControllerTransitionCoordinator: 0x7fac684045a0>
2015-06-15 20:14:17.062 ios9[16125:244376] viewWillLayoutSubviews()
2015-06-15 20:14:17.062 ios9[16125:244376] viewDidLayoutSubviews()
// Split Screen on horizontal, 1/2
2015-06-15 20:15:33.045 ios9[16125:244376] willTransitionToTraitCollection(_:withTransitionCoordinator:) - <UITraitCollection: 0x7fac6861e850; _UITraitNameUserInterfaceIdiom = Pad, _UITraitNameDisplayScale = 2.000000, _UITraitNameHorizontalSizeClass = Compact, _UITraitNameVerticalSizeClass = Regular, _UITraitNameTouchLevel = 0, _UITraitNameInteractionModel = 1> <_UIViewControllerTransitionCoordinator: 0x7fac68607220>
2015-06-15 20:15:33.045 ios9[16125:244376] viewWillTransitionToSize(_:withTransitionCoordinator:) - {507, 768} <_UIViewControllerTransitionCoordinator: 0x7fac68607220>
2015-06-15 20:15:33.046 ios9[16125:244376] traitCollectionDidChange - Optional(<UITraitCollection: 0x7fac6a01a650; _UITraitNameUserInterfaceIdiom = Pad, _UITraitNameDisplayScale = 2.000000, _UITraitNameHorizontalSizeClass = Regular, _UITraitNameVerticalSizeClass = Regular, _UITraitNameTouchLevel = 0, _UITraitNameInteractionModel = 1>)
2015-06-15 20:15:33.046 ios9[16125:244376] viewWillLayoutSubviews()
2015-06-15 20:15:33.046 ios9[16125:244376] viewDidLayoutSubviews()
// Rotate from Split Screen on horizontal, 1/2 to Split Screen on portrait
2015-06-15 20:16:43.111 ios9[16125:244376] viewWillTransitionToSize(_:withTransitionCoordinator:) - {438, 1024} <_UIViewControllerTransitionCoordinator: 0x7fac6a10da30>
2015-06-15 20:16:43.112 ios9[16125:244376] viewWillLayoutSubviews()
2015-06-15 20:16:43.113 ios9[16125:244376] viewDidLayoutSubviews()
// Dismiss App by swiping divider to the left edge on portrait from Split Screen on portrait
// Behaves so wierdly, possibly results in a bug when you ignore traitCollectionDidChange
// traitCollection will not change again when the app is once again activated from app switcher!
2015-06-15 20:21:08.546 ios9[16148:251930] willTransitionToTraitCollection(_:withTransitionCoordinator:) - <UITraitCollection: 0x7feb49a09370; _UITraitNameUserInterfaceIdiom = Pad, _UITraitNameDisplayScale = 2.000000, _UITraitNameHorizontalSizeClass = Regular, _UITraitNameVerticalSizeClass = Regular, _UITraitNameTouchLevel = 0, _UITraitNameInteractionModel = 1> <_UIViewControllerTransitionCoordinator: 0x7feb49a17840>
2015-06-15 20:21:08.546 ios9[16148:251930] viewWillTransitionToSize(_:withTransitionCoordinator:) - {768, 1024} <_UIViewControllerTransitionCoordinator: 0x7feb49a17840>
2015-06-15 20:21:08.546 ios9[16148:251930] traitCollectionDidChange - Optional(<UITraitCollection: 0x7feb48424660; _UITraitNameUserInterfaceIdiom = Pad, _UITraitNameDisplayScale = 2.000000, _UITraitNameHorizontalSizeClass = Compact, _UITraitNameVerticalSizeClass = Regular, _UITraitNameTouchLevel = 0, _UITraitNameInteractionModel = 1>)
2015-06-15 20:21:08.547 ios9[16148:251930] viewWillLayoutSubviews()
2015-06-15 20:21:08.547 ios9[16148:251930] viewDidLayoutSubviews()
2015-06-15 20:21:08.704 ios9[16148:251930] viewWillTransitionToSize(_:withTransitionCoordinator:) - {1024, 768} <_UIViewControllerTransitionCoordinator: 0x7feb48403350>
2015-06-15 20:21:08.705 ios9[16148:251930] viewWillLayoutSubviews()
2015-06-15 20:21:08.705 ios9[16148:251930] viewDidLayoutSubviews()
2015-06-15 20:21:09.151 ios9[16148:251930] willTransitionToTraitCollection(_:withTransitionCoordinator:) - <UITraitCollection: 0x7feb48419ab0; _UITraitNameUserInterfaceIdiom = Pad, _UITraitNameDisplayScale = 2.000000, _UITraitNameHorizontalSizeClass = Compact, _UITraitNameVerticalSizeClass = Regular, _UITraitNameTouchLevel = 0, _UITraitNameInteractionModel = 1> <_UIViewControllerTransitionCoordinator: 0x7feb48411e80>
2015-06-15 20:21:09.152 ios9[16148:251930] viewWillTransitionToSize(_:withTransitionCoordinator:) - {438, 1024} <_UIViewControllerTransitionCoordinator: 0x7feb48411e80>
2015-06-15 20:21:09.152 ios9[16148:251930] traitCollectionDidChange - Optional(<UITraitCollection: 0x7feb49a16660; _UITraitNameUserInterfaceIdiom = Pad, _UITraitNameDisplayScale = 2.000000, _UITraitNameHorizontalSizeClass = Regular, _UITraitNameVerticalSizeClass = Regular, _UITraitNameTouchLevel = 0, _UITraitNameInteractionModel = 1>)
2015-06-15 20:21:09.153 ios9[16148:251930] viewWillLayoutSubviews()
2015-06-15 20:21:09.153 ios9[16148:251930] viewDidLayoutSubviews()
//////////////
// on iPhone 6
//////////////
// Boot as portrait
2015-06-15 19:40:21.075 ios9[15774:214095] viewDidLoad()
2015-06-15 19:40:21.076 ios9[15774:214095] viewWillAppear - false
2015-06-15 19:40:21.079 ios9[15774:214095] viewWillLayoutSubviews()
2015-06-15 19:40:21.079 ios9[15774:214095] viewDidLayoutSubviews()
2015-06-15 19:40:21.080 ios9[15774:214095] viewDidAppear - false
// Rotate CW to horizontal right
2015-06-15 19:40:27.050 ios9[15774:214095] willTransitionToTraitCollection(_:withTransitionCoordinator:) - <UITraitCollection: 0x7fd24bf85120; _UITraitNameUserInterfaceIdiom = Phone, _UITraitNameDisplayScale = 2.000000, _UITraitNameHorizontalSizeClass = Compact, _UITraitNameVerticalSizeClass = Compact, _UITraitNameTouchLevel = 0, _UITraitNameInteractionModel = 1> <_UIViewControllerTransitionCoordinator: 0x7fd24bf8cd60>
2015-06-15 19:40:27.050 ios9[15774:214095] viewWillTransitionToSize(_:withTransitionCoordinator:) - {667, 375} <_UIViewControllerTransitionCoordinator: 0x7fd24bf8cd60>
2015-06-15 19:40:27.053 ios9[15774:214095] viewWillLayoutSubviews()
2015-06-15 19:40:27.053 ios9[15774:214095] viewDidLayoutSubviews()
// Rotate CW to portrait upside down
// nothing happened because iPhone doesn't support upside down by default
// Rotate CW to horizontal left
2015-06-15 19:40:34.490 ios9[15774:214095] viewWillTransitionToSize(_:withTransitionCoordinator:) - {667, 375} <_UIViewControllerTransitionCoordinator: 0x7fd24bc09c30>
// Rotate CW to portrait
2015-06-15 19:40:36.557 ios9[15774:214095] willTransitionToTraitCollection(_:withTransitionCoordinator:) - <UITraitCollection: 0x7fd24d318330; _UITraitNameUserInterfaceIdiom = Phone, _UITraitNameDisplayScale = 2.000000, _UITraitNameHorizontalSizeClass = Compact, _UITraitNameVerticalSizeClass = Regular, _UITraitNameTouchLevel = 0, _UITraitNameInteractionModel = 1> <_UIViewControllerTransitionCoordinator: 0x7fd24d30f9d0>
2015-06-15 19:40:36.558 ios9[15774:214095] viewWillTransitionToSize(_:withTransitionCoordinator:) - {375, 667} <_UIViewControllerTransitionCoordinator: 0x7fd24d30f9d0>
2015-06-15 19:40:36.560 ios9[15774:214095] viewWillLayoutSubviews()
2015-06-15 19:40:36.561 ios9[15774:214095] viewDidLayoutSubviews()
///////////////////
// on iPhone 6 plus
///////////////////
// Boot as portrait
2015-06-15 19:55:28.310 ios9[15903:226692] viewDidLoad()
2015-06-15 19:55:28.310 ios9[15903:226692] viewWillAppear - false
2015-06-15 19:55:28.312 ios9[15903:226692] traitCollectionDidChange - nil
2015-06-15 19:55:28.313 ios9[15903:226692] viewWillLayoutSubviews()
2015-06-15 19:55:28.313 ios9[15903:226692] viewDidLayoutSubviews()
2015-06-15 19:55:28.313 ios9[15903:226692] viewDidAppear - false
// Rotate CW to horizontal right
2015-06-15 19:55:33.318 ios9[15903:226692] willTransitionToTraitCollection(_:withTransitionCoordinator:) - <UITraitCollection: 0x7fb732c088a0; _UITraitNameUserInterfaceIdiom = Phone, _UITraitNameDisplayScale = 3.000000, _UITraitNameHorizontalSizeClass = Regular, _UITraitNameVerticalSizeClass = Compact, _UITraitNameTouchLevel = 0, _UITraitNameInteractionModel = 1> <_UIViewControllerTransitionCoordinator: 0x7fb732c11720>
2015-06-15 19:55:33.319 ios9[15903:226692] viewWillTransitionToSize(_:withTransitionCoordinator:) - {736, 414} <_UIViewControllerTransitionCoordinator: 0x7fb732c11720>
2015-06-15 19:55:33.322 ios9[15903:226692] traitCollectionDidChange - Optional(<UITraitCollection: 0x7fb732d26a00; _UITraitNameUserInterfaceIdiom = Phone, _UITraitNameDisplayScale = 3.000000, _UITraitNameHorizontalSizeClass = Compact, _UITraitNameVerticalSizeClass = Regular, _UITraitNameTouchLevel = 0, _UITraitNameInteractionModel = 1>)
2015-06-15 19:55:33.322 ios9[15903:226692] viewWillLayoutSubviews()
2015-06-15 19:55:33.323 ios9[15903:226692] viewDidLayoutSubviews()
// Rotate CW to portrait upside down
// nothing happened because iPhone doesn't support upside down by default
// Rotate CW to horizontal left
2015-06-15 19:55:37.071 ios9[15903:226692] viewWillTransitionToSize(_:withTransitionCoordinator:) - {736, 414} <_UIViewControllerTransitionCoordinator: 0x7fb732c07b80>
// Rotate CW to portrait
2015-06-15 19:55:38.956 ios9[15903:226692] willTransitionToTraitCollection(_:withTransitionCoordinator:) - <UITraitCollection: 0x7fb732d1b3f0; _UITraitNameUserInterfaceIdiom = Phone, _UITraitNameDisplayScale = 3.000000, _UITraitNameHorizontalSizeClass = Compact, _UITraitNameVerticalSizeClass = Regular, _UITraitNameTouchLevel = 0, _UITraitNameInteractionModel = 1> <_UIViewControllerTransitionCoordinator: 0x7fb732d16040>
2015-06-15 19:55:38.956 ios9[15903:226692] viewWillTransitionToSize(_:withTransitionCoordinator:) - {414, 736} <_UIViewControllerTransitionCoordinator: 0x7fb732d16040>
2015-06-15 19:55:38.959 ios9[15903:226692] traitCollectionDidChange - Optional(<UITraitCollection: 0x7fb732ca80c0; _UITraitNameUserInterfaceIdiom = Phone, _UITraitNameDisplayScale = 3.000000, _UITraitNameHorizontalSizeClass = Regular, _UITraitNameVerticalSizeClass = Compact, _UITraitNameTouchLevel = 0, _UITraitNameInteractionModel = 1>)
2015-06-15 19:55:38.959 ios9[15903:226692] viewWillLayoutSubviews()
2015-06-15 19:55:38.960 ios9[15903:226692] viewDidLayoutSubviews()
@guangLess
Copy link

Thank you for doing this!

@m3kwong
Copy link

m3kwong commented Jan 29, 2016

how do i use this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment