Merge branch 'develop' into feature/harmony
This commit is contained in:
commit
e3c4e52981
@ -1 +1 @@
|
||||
Subproject commit 89e9837cd27a6200871053af1072af1055873fbe
|
||||
Subproject commit 911d36bd01964ad7aeb0b4a37610402fd9845310
|
||||
@ -1 +1 @@
|
||||
Subproject commit d73ce5037d4f7e4852aff7642b65d0c8a1e32fb3
|
||||
Subproject commit 21ba9850fb0812148d0826069f8cc3000d476a07
|
||||
@ -1 +1 @@
|
||||
Subproject commit 8a963b61a5e5ff0917b8e278fd07a7d99ae89c98
|
||||
Subproject commit 6da27f9b694e886d6c9805ba54848b0f0a922598
|
||||
@ -1 +1 @@
|
||||
Subproject commit 21bb3a1e144a6c4a1b863fa1f09d1a0492de96a2
|
||||
Subproject commit 5f341a67ad326829d3557d01df6977d02722a5da
|
||||
@ -26,6 +26,8 @@
|
||||
BF0418141D01E93400E85BCF /* GBADeltaCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF0418131D01E93400E85BCF /* GBADeltaCore.framework */; };
|
||||
BF0418151D01E93400E85BCF /* GBADeltaCore.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = BF0418131D01E93400E85BCF /* GBADeltaCore.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
BF04E6FF1DB8625C000F35D3 /* ControllerSkinsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF04E6FE1DB8625C000F35D3 /* ControllerSkinsViewController.swift */; };
|
||||
BF072010219A3A9D00F05DA4 /* ZIPFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF07200E219A3A9500F05DA4 /* ZIPFoundation.framework */; };
|
||||
BF072011219A3A9D00F05DA4 /* ZIPFoundation.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = BF07200E219A3A9500F05DA4 /* ZIPFoundation.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
BF1020E31F95B05B00313182 /* DeltaToDelta2.xcmappingmodel in Sources */ = {isa = PBXBuildFile; fileRef = BF1020E21F95B05B00313182 /* DeltaToDelta2.xcmappingmodel */; };
|
||||
BF107EC41BF413F000E0C32C /* GamesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF107EC31BF413F000E0C32C /* GamesViewController.swift */; };
|
||||
BF1173501DA32CF600047DF8 /* ControllersSettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF11734F1DA32CF600047DF8 /* ControllersSettingsViewController.swift */; };
|
||||
@ -140,6 +142,7 @@
|
||||
BFEC732E1AAECC4A00650035 /* Roxas.framework in Embed Frameworks */,
|
||||
BF0418151D01E93400E85BCF /* GBADeltaCore.framework in Embed Frameworks */,
|
||||
BF99C6951D0A9AA600BA92BC /* SNESDeltaCore.framework in Embed Frameworks */,
|
||||
BF072011219A3A9D00F05DA4 /* ZIPFoundation.framework in Embed Frameworks */,
|
||||
);
|
||||
name = "Embed Frameworks";
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
@ -153,6 +156,7 @@
|
||||
BF02D5D91DDEBB3000A5E131 /* openvgdb.sqlite */ = {isa = PBXFileReference; lastKnownFileType = file; path = openvgdb.sqlite; sourceTree = "<group>"; };
|
||||
BF0418131D01E93400E85BCF /* GBADeltaCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = GBADeltaCore.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
BF04E6FE1DB8625C000F35D3 /* ControllerSkinsViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ControllerSkinsViewController.swift; sourceTree = "<group>"; };
|
||||
BF07200E219A3A9500F05DA4 /* ZIPFoundation.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ZIPFoundation.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
BF090CF11B490D8300DCAB45 /* Delta-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Delta-Bridging-Header.h"; sourceTree = "<group>"; };
|
||||
BF1020E21F95B05B00313182 /* DeltaToDelta2.xcmappingmodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcmappingmodel; path = DeltaToDelta2.xcmappingmodel; sourceTree = "<group>"; };
|
||||
BF107EC31BF413F000E0C32C /* GamesViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GamesViewController.swift; sourceTree = "<group>"; };
|
||||
@ -271,6 +275,7 @@
|
||||
BFEC732D1AAECC4A00650035 /* Roxas.framework in Frameworks */,
|
||||
BF99C6941D0A9AA600BA92BC /* SNESDeltaCore.framework in Frameworks */,
|
||||
BF0418141D01E93400E85BCF /* GBADeltaCore.framework in Frameworks */,
|
||||
BF072010219A3A9D00F05DA4 /* ZIPFoundation.framework in Frameworks */,
|
||||
BFF0742C1E9DC17500ACDF4A /* GBCDeltaCore.framework in Frameworks */,
|
||||
4FE8465FD28810191C3E5212 /* Pods_Delta.framework in Frameworks */,
|
||||
);
|
||||
@ -551,6 +556,7 @@
|
||||
BF9F4FCD1AAD7B25004C9500 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
BF07200E219A3A9500F05DA4 /* ZIPFoundation.framework */,
|
||||
BFF0742B1E9DC17500ACDF4A /* GBCDeltaCore.framework */,
|
||||
BF0418131D01E93400E85BCF /* GBADeltaCore.framework */,
|
||||
BF27CC941BCB7B7A00A20D89 /* GameController.framework */,
|
||||
@ -1082,7 +1088,7 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.3;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
OTHER_SWIFT_FLAGS = "-Xfrontend -debug-time-function-bodies";
|
||||
@ -1134,7 +1140,7 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.3;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
OTHER_SWIFT_FLAGS = "-Xfrontend -debug-time-function-bodies";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.rileytestut.Delta;
|
||||
@ -1155,7 +1161,6 @@
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
DEVELOPMENT_TEAM = 6XVY5G3U44;
|
||||
INFOPLIST_FILE = "Delta/Supporting Files/Info.plist";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
PROVISIONING_PROFILE = "";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
@ -1175,7 +1180,6 @@
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
DEVELOPMENT_TEAM = 6XVY5G3U44;
|
||||
INFOPLIST_FILE = "Delta/Supporting Files/Info.plist";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
OTHER_SWIFT_FLAGS = "$(inherited) \"-D\" \"COCOAPODS\" -DIMPACTOR";
|
||||
PROVISIONING_PROFILE = "";
|
||||
|
||||
@ -27,11 +27,8 @@ class GridCollectionViewLayout: UICollectionViewFlowLayout
|
||||
guard let collectionView = self.collectionView else { return .zero }
|
||||
|
||||
var contentInset = collectionView.contentInset
|
||||
if #available(iOS 11, *)
|
||||
{
|
||||
contentInset.left += collectionView.safeAreaInsets.left
|
||||
contentInset.right += collectionView.safeAreaInsets.right
|
||||
}
|
||||
contentInset.left += collectionView.safeAreaInsets.left
|
||||
contentInset.right += collectionView.safeAreaInsets.right
|
||||
|
||||
return contentInset
|
||||
}
|
||||
|
||||
@ -65,15 +65,8 @@ class GamesDatabaseBrowserViewController: UITableViewController
|
||||
self.dataSource.searchController.delegate = self
|
||||
self.dataSource.searchController.searchBar.barStyle = .black
|
||||
|
||||
if #available(iOS 11, *)
|
||||
{
|
||||
self.navigationItem.searchController = self.dataSource.searchController
|
||||
self.navigationItem.hidesSearchBarWhenScrolling = false
|
||||
}
|
||||
else
|
||||
{
|
||||
self.tableView.tableHeaderView = self.dataSource.searchController.searchBar
|
||||
}
|
||||
self.navigationItem.searchController = self.dataSource.searchController
|
||||
self.navigationItem.hidesSearchBarWhenScrolling = false
|
||||
|
||||
self.updatePlaceholderView()
|
||||
}
|
||||
@ -184,7 +177,7 @@ private extension GamesDatabaseBrowserViewController
|
||||
func resetTableViewContentOffset()
|
||||
{
|
||||
self.tableView.setContentOffset(CGPoint.zero, animated: false)
|
||||
self.tableView.setContentOffset(CGPoint(x: 0, y: -self.topLayoutGuide.length), animated: false)
|
||||
self.tableView.setContentOffset(CGPoint(x: 0, y: -self.view.safeAreaInsets.top), animated: false)
|
||||
}
|
||||
}
|
||||
|
||||
@ -204,16 +197,6 @@ extension GamesDatabaseBrowserViewController
|
||||
|
||||
extension GamesDatabaseBrowserViewController: UISearchControllerDelegate
|
||||
{
|
||||
func didPresentSearchController(_ searchController: UISearchController)
|
||||
{
|
||||
if #available(iOS 11, *) {}
|
||||
else
|
||||
{
|
||||
// Fix incorrect table view scroll indicator insets
|
||||
self.tableView.scrollIndicatorInsets.top = self.navigationController!.navigationBar.bounds.height + UIApplication.shared.statusBarFrame.height
|
||||
}
|
||||
}
|
||||
|
||||
func willDismissSearchController(_ searchController: UISearchController)
|
||||
{
|
||||
// Manually set items to empty array to prevent crash if user dismissses searchController while scrolling
|
||||
|
||||
@ -61,8 +61,6 @@ class GamesViewController: UIViewController
|
||||
super.init(coder: aDecoder)
|
||||
|
||||
self.fetchedResultsController.delegate = self
|
||||
|
||||
self.automaticallyAdjustsScrollViewInsets = false
|
||||
}
|
||||
}
|
||||
|
||||
@ -94,10 +92,7 @@ extension GamesViewController
|
||||
self.navigationController?.navigationBar.barStyle = .blackTranslucent
|
||||
self.navigationController?.toolbar.barStyle = .blackTranslucent
|
||||
|
||||
if #available(iOS 11.0, *)
|
||||
{
|
||||
self.prepareSearchController()
|
||||
}
|
||||
self.prepareSearchController()
|
||||
|
||||
self.updateTheme()
|
||||
}
|
||||
@ -116,23 +111,6 @@ extension GamesViewController
|
||||
}
|
||||
}
|
||||
|
||||
override func viewDidLayoutSubviews()
|
||||
{
|
||||
super.viewDidLayoutSubviews()
|
||||
|
||||
if #available(iOS 11.0, *) {}
|
||||
else
|
||||
{
|
||||
if let viewControllers = self.pageViewController.viewControllers as? [GameCollectionViewController]
|
||||
{
|
||||
for viewController in viewControllers
|
||||
{
|
||||
viewController.collectionView?.contentInset.top = self.topLayoutGuide.length
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override func didReceiveMemoryWarning()
|
||||
{
|
||||
super.didReceiveMemoryWarning()
|
||||
@ -164,7 +142,6 @@ extension GamesViewController
|
||||
/// UI
|
||||
private extension GamesViewController
|
||||
{
|
||||
@available(iOS 11.0, *)
|
||||
func prepareSearchController()
|
||||
{
|
||||
let searchResultsController = self.storyboard?.instantiateViewController(withIdentifier: "gameCollectionViewController") as! GameCollectionViewController
|
||||
@ -249,13 +226,6 @@ private extension GamesViewController
|
||||
viewController.theme = self.theme
|
||||
viewController.activeEmulatorCore = self.activeEmulatorCore
|
||||
|
||||
if #available(iOS 11.0, *) {}
|
||||
else
|
||||
{
|
||||
// Need to set content inset here AND willTransitionTo callback to ensure its correct for all edge cases
|
||||
viewController.collectionView?.contentInset.top = self.topLayoutGuide.length
|
||||
}
|
||||
|
||||
return viewController
|
||||
}
|
||||
|
||||
@ -425,20 +395,6 @@ extension GamesViewController: UIPageViewControllerDataSource, UIPageViewControl
|
||||
}
|
||||
|
||||
//MARK: - UIPageViewControllerDelegate
|
||||
func pageViewController(_ pageViewController: UIPageViewController, willTransitionTo pendingViewControllers: [UIViewController])
|
||||
{
|
||||
guard let viewControllers = pendingViewControllers as? [GameCollectionViewController] else { return }
|
||||
|
||||
if #available(iOS 11.0, *) {}
|
||||
else
|
||||
{
|
||||
for viewController in viewControllers
|
||||
{
|
||||
viewController.collectionView?.contentInset.top = self.topLayoutGuide.length
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func pageViewController(_ pageViewController: UIPageViewController, didFinishAnimating finished: Bool, previousViewControllers: [UIViewController], transitionCompleted completed: Bool)
|
||||
{
|
||||
if let viewController = pageViewController.viewControllers?.first as? GameCollectionViewController, let gameCollection = viewController.gameCollection
|
||||
|
||||
@ -106,10 +106,13 @@ extension GamesStoryboardSegue: UIViewControllerAnimatedTransitioning
|
||||
transitionContext.destinationView.insertSubview(topToolbar, at: 1)
|
||||
|
||||
topToolbar.topAnchor.constraint(equalTo: navigationController.navigationBar.topAnchor, constant: -padding).isActive = true
|
||||
topToolbar.bottomAnchor.constraint(equalTo: navigationController.topViewController!.topLayoutGuide.bottomAnchor).isActive = true
|
||||
topToolbar.leftAnchor.constraint(equalTo: navigationController.navigationBar.leftAnchor, constant: -padding).isActive = true
|
||||
topToolbar.rightAnchor.constraint(equalTo: navigationController.navigationBar.rightAnchor, constant: padding).isActive = true
|
||||
|
||||
// There is no easy way to determine the extra height necessary at this point of the transition, so hard code for now.
|
||||
let additionalSearchBarHeight = 44 as CGFloat
|
||||
topToolbar.heightAnchor.constraint(equalToConstant: navigationController.topViewController!.view.safeAreaInsets.top + additionalSearchBarHeight).isActive = true
|
||||
|
||||
topPaddingToolbar = topToolbar
|
||||
}
|
||||
|
||||
|
||||
@ -65,43 +65,36 @@ class ImportController: NSObject
|
||||
{
|
||||
self.presentingViewController = presentingViewController
|
||||
|
||||
#if IMPACTOR
|
||||
|
||||
let alertController = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
|
||||
alertController.addAction(UIAlertAction.cancel)
|
||||
|
||||
if let importOptions = self.importOptions
|
||||
let alertController = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
|
||||
alertController.addAction(UIAlertAction.cancel)
|
||||
|
||||
if let importOptions = self.importOptions
|
||||
{
|
||||
for importOption in importOptions
|
||||
{
|
||||
for importOption in importOptions
|
||||
{
|
||||
alertController.add(importOption) { [unowned self] (urls) in
|
||||
self.finish(with: urls, errors: [])
|
||||
}
|
||||
alertController.add(importOption) { [unowned self] (urls) in
|
||||
self.finish(with: urls, errors: [])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let filesAction = UIAlertAction(title: NSLocalizedString("Files", comment: ""), style: .default) { (action) in
|
||||
let cancelButton = UIBarButtonItem(barButtonSystemItem: .cancel, target: self, action: #selector(ImportController.cancel))
|
||||
|
||||
self.presentedViewController = alertController
|
||||
self.presentingViewController?.present(alertController, animated: true, completion: nil)
|
||||
let documentBrowserViewController = UIDocumentBrowserViewController(forOpeningFilesWithContentTypes: Array(self.documentTypes))
|
||||
documentBrowserViewController.delegate = self
|
||||
documentBrowserViewController.browserUserInterfaceStyle = .dark
|
||||
documentBrowserViewController.allowsPickingMultipleItems = true
|
||||
documentBrowserViewController.allowsDocumentCreation = false
|
||||
documentBrowserViewController.additionalTrailingNavigationBarButtonItems = [cancelButton]
|
||||
|
||||
#else
|
||||
|
||||
let documentMenuController = UIDocumentMenuViewController(documentTypes: Array(self.documentTypes), in: .import)
|
||||
documentMenuController.delegate = self
|
||||
|
||||
if let reversedImportOptions = self.importOptions?.reversed()
|
||||
{
|
||||
for importOption in reversedImportOptions
|
||||
{
|
||||
documentMenuController.add(importOption, order: .first) { [unowned self] (urls) in
|
||||
self.finish(with: urls, errors: [])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
self.presentedViewController = documentMenuController
|
||||
self.presentingViewController?.present(documentMenuController, animated: true, completion: nil)
|
||||
|
||||
#endif
|
||||
self.presentedViewController = documentBrowserViewController
|
||||
self.presentingViewController?.present(documentBrowserViewController, animated: true, completion: nil)
|
||||
}
|
||||
alertController.addAction(filesAction)
|
||||
|
||||
self.presentedViewController = alertController
|
||||
self.presentingViewController?.present(alertController, animated: true, completion: nil)
|
||||
}
|
||||
|
||||
@objc private func cancel()
|
||||
@ -126,59 +119,6 @@ class ImportController: NSObject
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extension ImportController: UIDocumentMenuDelegate
|
||||
{
|
||||
func documentMenu(_ documentMenu: UIDocumentMenuViewController, didPickDocumentPicker documentPicker: UIDocumentPickerViewController)
|
||||
{
|
||||
if #available(iOS 11.0, *)
|
||||
{
|
||||
let cancelButton = UIBarButtonItem(barButtonSystemItem: .cancel, target: self, action: #selector(ImportController.cancel))
|
||||
|
||||
let documentBrowserViewController = UIDocumentBrowserViewController(forOpeningFilesWithContentTypes: Array(self.documentTypes))
|
||||
documentBrowserViewController.delegate = self
|
||||
documentBrowserViewController.browserUserInterfaceStyle = .dark
|
||||
documentBrowserViewController.allowsPickingMultipleItems = true
|
||||
documentBrowserViewController.allowsDocumentCreation = false
|
||||
documentBrowserViewController.additionalTrailingNavigationBarButtonItems = [cancelButton]
|
||||
|
||||
self.presentedViewController = documentBrowserViewController
|
||||
self.presentingViewController?.present(documentBrowserViewController, animated: true, completion: nil)
|
||||
}
|
||||
else
|
||||
{
|
||||
documentPicker.delegate = self
|
||||
|
||||
self.presentedViewController = documentPicker
|
||||
self.presentingViewController?.present(documentPicker, animated: true, completion: nil)
|
||||
}
|
||||
}
|
||||
|
||||
func documentMenuWasCancelled(_ documentMenu: UIDocumentMenuViewController)
|
||||
{
|
||||
self.finish(with: nil, errors: [])
|
||||
}
|
||||
}
|
||||
|
||||
extension ImportController: UIDocumentPickerDelegate
|
||||
{
|
||||
func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentAt url: URL)
|
||||
{
|
||||
self.finish(with: [url], errors: [])
|
||||
}
|
||||
|
||||
func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL])
|
||||
{
|
||||
self.finish(with: Set(urls), errors: [])
|
||||
}
|
||||
|
||||
func documentPickerWasCancelled(_ controller: UIDocumentPickerViewController)
|
||||
{
|
||||
self.finish(with: nil, errors: [])
|
||||
}
|
||||
}
|
||||
|
||||
@available(iOS 11.0, *)
|
||||
extension ImportController: UIDocumentBrowserViewControllerDelegate
|
||||
{
|
||||
func documentBrowser(_ controller: UIDocumentBrowserViewController, didPickDocumentURLs documentURLs: [URL])
|
||||
|
||||
@ -10,16 +10,6 @@ import UIKit
|
||||
|
||||
import DeltaCore
|
||||
|
||||
extension UIDocumentMenuViewController
|
||||
{
|
||||
func add(_ importOption: ImportOption, order: UIDocumentMenuOrder, completionHandler: @escaping (Set<URL>?) -> Void)
|
||||
{
|
||||
self.addOption(withTitle: importOption.title, image: importOption.image, order: order) {
|
||||
importOption.import(withCompletionHandler: completionHandler)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension UIAlertController
|
||||
{
|
||||
func add(_ importOption: ImportOption, completionHandler: @escaping (Set<URL>?) -> Void)
|
||||
|
||||
@ -50,11 +50,7 @@ class LaunchViewController: UIViewController
|
||||
self.view.bringSubviewToFront(self.gameViewContainerView)
|
||||
|
||||
self.setNeedsStatusBarAppearanceUpdate()
|
||||
|
||||
if #available(iOS 11.0, *)
|
||||
{
|
||||
self.setNeedsUpdateOfHomeIndicatorAutoHidden()
|
||||
}
|
||||
self.setNeedsUpdateOfHomeIndicatorAutoHidden()
|
||||
}
|
||||
|
||||
if let game = self.applicationLaunchDeepLinkGame
|
||||
|
||||
@ -44,11 +44,7 @@ class PausePresentationController: UIPresentationController
|
||||
else
|
||||
{
|
||||
frame = CGRect(x: 0, y: containerView.bounds.height - contentHeight, width: containerView.bounds.width, height: containerView.bounds.height)
|
||||
|
||||
if #available(iOS 11.0, *)
|
||||
{
|
||||
frame.origin.y -= containerView.safeAreaInsets.bottom
|
||||
}
|
||||
frame.origin.y -= containerView.safeAreaInsets.bottom
|
||||
}
|
||||
|
||||
return frame
|
||||
|
||||
@ -38,15 +38,8 @@ class AppIconShortcutsViewController: UITableViewController
|
||||
|
||||
self.tableView.register(GameTableViewCell.nib!, forCellReuseIdentifier: RSTCellContentGenericCellIdentifier)
|
||||
|
||||
if #available(iOS 11, *)
|
||||
{
|
||||
self.navigationItem.searchController = self.gamesDataSource.searchController
|
||||
self.navigationItem.hidesSearchBarWhenScrolling = false
|
||||
}
|
||||
else
|
||||
{
|
||||
self.tableView.tableHeaderView = self.gamesDataSource.searchController.searchBar
|
||||
}
|
||||
self.navigationItem.searchController = self.gamesDataSource.searchController
|
||||
self.navigationItem.hidesSearchBarWhenScrolling = false
|
||||
|
||||
self.tableView.dataSource = self.dataSource
|
||||
self.tableView.allowsSelectionDuringEditing = true
|
||||
|
||||
@ -151,7 +151,7 @@ extension ControllerSkinsViewController
|
||||
|
||||
let scale = (self.view.bounds.width / size.width)
|
||||
|
||||
let height = min(size.height * scale, self.view.bounds.height - self.topLayoutGuide.length - self.bottomLayoutGuide.length - 30)
|
||||
let height = min(size.height * scale, self.view.bounds.height - self.view.safeAreaInsets.top - self.view.safeAreaInsets.bottom - 30)
|
||||
|
||||
return height
|
||||
}
|
||||
|
||||
@ -92,7 +92,7 @@ extension SystemControllerSkinsViewController
|
||||
|
||||
let scale = (self.view.bounds.width / unwrappedImageSize.width)
|
||||
|
||||
let height = min(unwrappedImageSize.height * scale, self.view.bounds.height - self.topLayoutGuide.length - self.bottomLayoutGuide.length - 30)
|
||||
let height = min(unwrappedImageSize.height * scale, self.view.bounds.height - self.view.safeAreaInsets.top - self.view.safeAreaInsets.bottom - 30)
|
||||
return height
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user