diff --git a/PageMenuExample/PageMenuExample.xcodeproj/project.pbxproj b/PageMenuExample/PageMenuExample.xcodeproj/project.pbxproj index 8ce459f..e37e168 100644 --- a/PageMenuExample/PageMenuExample.xcodeproj/project.pbxproj +++ b/PageMenuExample/PageMenuExample.xcodeproj/project.pbxproj @@ -157,12 +157,13 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0820; - LastUpgradeCheck = 0820; + LastUpgradeCheck = 1010; ORGANIZATIONNAME = Tamanyan; TargetAttributes = { 23C1D23A1E73099D00A4A491 = { CreatedOnToolsVersion = 8.2.1; DevelopmentTeam = 95Q9F9WGT3; + LastSwiftMigration = 1010; ProvisioningStyle = Automatic; }; }; @@ -259,15 +260,23 @@ CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; @@ -296,6 +305,7 @@ SDKROOT = iphoneos; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_SWIFT3_OBJC_INFERENCE = Default; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; @@ -309,15 +319,23 @@ CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; @@ -338,6 +356,7 @@ MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_SWIFT3_OBJC_INFERENCE = Default; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; }; @@ -354,7 +373,8 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.tamanyan.SwiftPageMenu.PageMenuExample; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; + SWIFT_SWIFT3_OBJC_INFERENCE = Default; + SWIFT_VERSION = 4.2; }; name = Debug; }; @@ -369,7 +389,8 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.tamanyan.SwiftPageMenu.PageMenuExample; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; + SWIFT_SWIFT3_OBJC_INFERENCE = Default; + SWIFT_VERSION = 4.2; }; name = Release; }; diff --git a/PageMenuExample/Sources/AppDelegate.swift b/PageMenuExample/Sources/AppDelegate.swift index 0e59521..358552f 100644 --- a/PageMenuExample/Sources/AppDelegate.swift +++ b/PageMenuExample/Sources/AppDelegate.swift @@ -13,12 +13,12 @@ class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? - func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // Override point for customization after application launch. UINavigationBar.appearance().tintColor = .white UINavigationBar.appearance().barTintColor = Theme.mainColor UINavigationBar.appearance().backgroundColor = Theme.mainColor - UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName: UIColor.white] + UINavigationBar.appearance().titleTextAttributes = convertToOptionalNSAttributedStringKeyDictionary([NSAttributedString.Key.foregroundColor.rawValue: UIColor.white]) UINavigationBar.appearance().isTranslucent = false UINavigationBar.appearance().shadowImage = UIImage() @@ -26,7 +26,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate { let navController = UINavigationController(rootViewController: RootViewController()) if #available(iOS 11.0, *) { navController.navigationBar.prefersLargeTitles = true - navController.navigationBar.largeTitleTextAttributes = [NSForegroundColorAttributeName: UIColor.white] + navController.navigationBar.largeTitleTextAttributes = convertToOptionalNSAttributedStringKeyDictionary([NSAttributedString.Key.foregroundColor.rawValue: UIColor.white]) } self.window?.rootViewController = navController self.window?.makeKeyAndVisible() @@ -59,3 +59,9 @@ class AppDelegate: UIResponder, UIApplicationDelegate { } + +// Helper function inserted by Swift 4.2 migrator. +fileprivate func convertToOptionalNSAttributedStringKeyDictionary(_ input: [String: Any]?) -> [NSAttributedString.Key: Any]? { + guard let input = input else { return nil } + return Dictionary(uniqueKeysWithValues: input.map { key, value in (NSAttributedString.Key(rawValue: key), value)}) +} diff --git a/PageMenuExample/Sources/PageTabMenuViewController.swift b/PageMenuExample/Sources/PageTabMenuViewController.swift index d93a91e..c56b510 100644 --- a/PageMenuExample/Sources/PageTabMenuViewController.swift +++ b/PageMenuExample/Sources/PageTabMenuViewController.swift @@ -27,7 +27,9 @@ class PageTabMenuViewController: PageMenuController { override func viewDidLoad() { super.viewDidLoad() + self.edgesForExtendedLayout = [] + if options.layout == .layoutGuide && options.tabMenuPosition == .bottom { self.view.backgroundColor = Theme.mainColor } else { @@ -41,7 +43,11 @@ class PageTabMenuViewController: PageMenuController { self.tabMenuView.heightAnchor.constraint(equalToConstant: self.options.menuItemSize.height).isActive = true self.tabMenuView.leftAnchor.constraint(equalTo: self.view.leftAnchor).isActive = true self.tabMenuView.rightAnchor.constraint(equalTo: self.view.rightAnchor).isActive = true - self.tabMenuView.bottomAnchor.constraint(equalTo: self.view.bottomAnchor).isActive = true + if #available(iOS 11.0, *) { + self.tabMenuView.bottomAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.bottomAnchor).isActive = true + } else { + self.tabMenuView.bottomAnchor.constraint(equalTo: self.view.bottomAnchor).isActive = true + } } self.delegate = self diff --git a/PageMenuExample/Sources/UnderlinePagerOption.swift b/PageMenuExample/Sources/UnderlinePagerOption.swift index c47d1a2..9aa8ac5 100644 --- a/PageMenuExample/Sources/UnderlinePagerOption.swift +++ b/PageMenuExample/Sources/UnderlinePagerOption.swift @@ -28,7 +28,7 @@ struct UnderlinePagerOption: PageMenuOptions { var menuCursor: PageMenuCursor { return .underline(barColor: Theme.mainColor, height: 2) } - + var font: UIFont { return UIFont.systemFont(ofSize: UIFont.systemFontSize) } diff --git a/Sources/Enum/PageMenuOptions.swift b/Sources/Enum/PageMenuOptions.swift index 1f45389..b6f449e 100644 --- a/Sources/Enum/PageMenuOptions.swift +++ b/Sources/Enum/PageMenuOptions.swift @@ -60,6 +60,11 @@ public enum TabMenuPosition { case custom } +/** + The page menu layout. + If you use layoutGuide, page menu layout follow UILayoutGuide. + If you use edge, page menu layout follow edge (bottomAnchor, topAnchor) + */ public enum PageMenuLayout { case layoutGuide diff --git a/Sources/PageMenuController.swift b/Sources/PageMenuController.swift index 401abca..51ff948 100644 --- a/Sources/PageMenuController.swift +++ b/Sources/PageMenuController.swift @@ -11,7 +11,7 @@ import UIKit open class PageMenuController: UIViewController { /// SwiftPageMenu configurations - open let options: PageMenuOptions + public let options: PageMenuOptions /// PageMenuController data source. open weak var dataSource: PageMenuControllerDataSource? { @@ -49,6 +49,7 @@ open class PageMenuController: UIViewController { } else { vc.automaticallyAdjustsScrollViewInsets = false } + return vc }() @@ -252,7 +253,7 @@ open class PageMenuController: UIViewController { } fileprivate func setup() { - self.addChildViewController(self.pageViewController) + self.addChild(self.pageViewController) self.view.addSubview(self.pageViewController.view) switch self.options.tabMenuPosition { @@ -276,10 +277,10 @@ open class PageMenuController: UIViewController { switch self.options.layout { case .layoutGuide: if #available(iOS 11.0, *) { - self.pageViewController.view.bottomAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.bottomAnchor).isActive = true + self.pageViewController.view.bottomAnchor.constraint(equalTo: self.bottomLayoutGuide.bottomAnchor).isActive = true self.tabView.topAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.topAnchor).isActive = true } else { - self.pageViewController.view.bottomAnchor.constraint(equalTo: self.bottomLayoutGuide.topAnchor).isActive = true + self.pageViewController.view.bottomAnchor.constraint(equalTo: self.bottomLayoutGuide.bottomAnchor).isActive = true self.tabView.topAnchor.constraint(equalTo: self.topLayoutGuide.bottomAnchor).isActive = true } case .edge: @@ -339,8 +340,8 @@ open class PageMenuController: UIViewController { } } - self.view.sendSubview(toBack: self.pageViewController.view) - self.pageViewController.didMove(toParentViewController: self) + self.view.sendSubviewToBack(self.pageViewController.view) + self.pageViewController.didMove(toParent: self) } } diff --git a/Sources/TabMenu/TabMenuView.swift b/Sources/TabMenu/TabMenuView.swift index 9f8e2fe..1c7df18 100644 --- a/Sources/TabMenu/TabMenuView.swift +++ b/Sources/TabMenu/TabMenuView.swift @@ -196,8 +196,8 @@ extension TabMenuView { currentCell.unHighlightTitle(progress: -1 * progress) } - let width = fabs(progress) * (nextCell.frame.width - currentCell.frame.width) - let scroll = fabs(progress) * self.distance + let width = abs(progress) * (nextCell.frame.width - currentCell.frame.width) + let scroll = abs(progress) * self.distance if self.isInfinite { self.collectionView.contentOffset.x = (collectionViewContentOffsetX ?? 0) + scroll @@ -356,7 +356,7 @@ extension TabMenuView { fileprivate func deselectVisibleCells() { self.collectionView .visibleCells - .flatMap { $0 as? TabMenuItemCell } + .compactMap { $0 as? TabMenuItemCell } .forEach { $0.unHighlightTitle() $0.isDecorationHidden = true @@ -369,7 +369,7 @@ extension TabMenuView { fileprivate func hiddenVisibleDecorations() { self.collectionView .visibleCells - .flatMap { $0 as? TabMenuItemCell } + .compactMap { $0 as? TabMenuItemCell } .forEach { $0.isDecorationHidden = true } } } diff --git a/Sources/Util/EMPageViewController.swift b/Sources/Util/EMPageViewController.swift index 89db7c5..ddec234 100644 --- a/Sources/Util/EMPageViewController.swift +++ b/Sources/Util/EMPageViewController.swift @@ -459,14 +459,14 @@ class EMPageViewController: UIViewController, UIScrollViewDelegate { private func addChildIfNeeded(_ viewController: UIViewController) { self.scrollView.addSubview(viewController.view) - self.addChildViewController(viewController) - viewController.didMove(toParentViewController: self) + self.addChild(viewController) + viewController.didMove(toParent: self) } private func removeChildIfNeeded(_ viewController: UIViewController?) { viewController?.view.removeFromSuperview() - viewController?.didMove(toParentViewController: nil) - viewController?.removeFromParentViewController() + viewController?.didMove(toParent: nil) + viewController?.removeFromParent() } private func layoutViews() { @@ -488,9 +488,9 @@ class EMPageViewController: UIViewController, UIScrollViewDelegate { self.adjustingContentOffset = true self.scrollView.contentOffset = CGPoint(x: self.isOrientationHorizontal ? viewWidth : 0, y: self.isOrientationHorizontal ? 0 : viewHeight) if self.isOrientationHorizontal { - self.scrollView.contentInset = UIEdgeInsetsMake(0, beforeInset, 0, afterInset) + self.scrollView.contentInset = UIEdgeInsets.init(top: 0, left: beforeInset, bottom: 0, right: afterInset) } else { - self.scrollView.contentInset = UIEdgeInsetsMake(beforeInset, 0, afterInset, 0) + self.scrollView.contentInset = UIEdgeInsets.init(top: beforeInset, left: 0, bottom: afterInset, right: 0) } self.adjustingContentOffset = false @@ -639,14 +639,14 @@ class EMPageViewController: UIViewController, UIScrollViewDelegate { if self.isOrientationHorizontal { if (self.beforeViewController != nil && self.afterViewController != nil) || // It isn't at the beginning or end of the page collection - (self.afterViewController != nil && self.beforeViewController == nil && scrollView.contentOffset.x > fabs(scrollView.contentInset.left)) || // If it's at the beginning of the collection, the decelleration can't be triggered by scrolling away from, than torwards the inset - (self.beforeViewController != nil && self.afterViewController == nil && scrollView.contentOffset.x < fabs(scrollView.contentInset.right)) { // Same as the last condition, but at the end of the collection + (self.afterViewController != nil && self.beforeViewController == nil && scrollView.contentOffset.x > abs(scrollView.contentInset.left)) || // If it's at the beginning of the collection, the decelleration can't be triggered by scrolling away from, than torwards the inset + (self.beforeViewController != nil && self.afterViewController == nil && scrollView.contentOffset.x < abs(scrollView.contentInset.right)) { // Same as the last condition, but at the end of the collection scrollView.setContentOffset(CGPoint(x: self.view.bounds.width, y: 0), animated: true) } } else { if (self.beforeViewController != nil && self.afterViewController != nil) || // It isn't at the beginning or end of the page collection - (self.afterViewController != nil && self.beforeViewController == nil && scrollView.contentOffset.y > fabs(scrollView.contentInset.top)) || // If it's at the beginning of the collection, the decelleration can't be triggered by scrolling away from, than torwards the inset - (self.beforeViewController != nil && self.afterViewController == nil && scrollView.contentOffset.y < fabs(scrollView.contentInset.bottom)) { // Same as the last condition, but at the end of the collection + (self.afterViewController != nil && self.beforeViewController == nil && scrollView.contentOffset.y > abs(scrollView.contentInset.top)) || // If it's at the beginning of the collection, the decelleration can't be triggered by scrolling away from, than torwards the inset + (self.beforeViewController != nil && self.afterViewController == nil && scrollView.contentOffset.y < abs(scrollView.contentInset.bottom)) { // Same as the last condition, but at the end of the collection scrollView.setContentOffset(CGPoint(x: 0, y: self.view.bounds.height), animated: true) } } diff --git a/Sources/Util/PanBlockGestureRecognizer.swift b/Sources/Util/PanBlockGestureRecognizer.swift index 4c0abb8..92d046a 100644 --- a/Sources/Util/PanBlockGestureRecognizer.swift +++ b/Sources/Util/PanBlockGestureRecognizer.swift @@ -35,7 +35,7 @@ class PanBlockGestureRecognizer: UIPanGestureRecognizer { self.delegate = self.panBlockGestureRecognizerDelegate } - func performAction(sender: UIGestureRecognizer) { + @objc func performAction(sender: UIGestureRecognizer) { guard let panGesture = sender as? UIPanGestureRecognizer else { return } let state = panGesture.state let panLocation = panGesture.location(in: self.inView) @@ -53,7 +53,7 @@ class PanBlockGestureRecognizer: UIPanGestureRecognizer { let absY = abs(moveY) if absY < permissionVertical && absX > swipeStroke { - panGesture.setValue(UIGestureRecognizerState.cancelled.rawValue, forKey: "state") + panGesture.setValue(UIGestureRecognizer.State.cancelled.rawValue, forKey: "state") // self.isEnded = true } else if absY > permissionVertical { self.isEnded = true diff --git a/SwiftPageMenu.xcodeproj/project.pbxproj b/SwiftPageMenu.xcodeproj/project.pbxproj index 95cc7d2..d625abc 100644 --- a/SwiftPageMenu.xcodeproj/project.pbxproj +++ b/SwiftPageMenu.xcodeproj/project.pbxproj @@ -164,12 +164,13 @@ 23C1D1D91E73054600A4A491 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0820; + LastUpgradeCheck = 1010; ORGANIZATIONNAME = Tamanyan; TargetAttributes = { 23C1D1E11E73054600A4A491 = { CreatedOnToolsVersion = 8.2.1; DevelopmentTeam = 95Q9F9WGT3; + LastSwiftMigration = 1010; ProvisioningStyle = Automatic; }; }; @@ -235,15 +236,23 @@ CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; @@ -273,6 +282,7 @@ SDKROOT = iphoneos; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_SWIFT3_OBJC_INFERENCE = Default; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -288,15 +298,23 @@ CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; @@ -318,6 +336,7 @@ MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_SWIFT3_OBJC_INFERENCE = Default; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; @@ -341,7 +360,8 @@ PRODUCT_BUNDLE_IDENTIFIER = com.tamanyan.SwiftPageMenu; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; + SWIFT_SWIFT3_OBJC_INFERENCE = Default; + SWIFT_VERSION = 4.2; }; name = Debug; }; @@ -361,7 +381,8 @@ PRODUCT_BUNDLE_IDENTIFIER = com.tamanyan.SwiftPageMenu; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; + SWIFT_SWIFT3_OBJC_INFERENCE = Default; + SWIFT_VERSION = 4.2; }; name = Release; }; diff --git a/SwiftPageMenu.xcodeproj/xcshareddata/xcschemes/SwiftPageMenu.xcscheme b/SwiftPageMenu.xcodeproj/xcshareddata/xcschemes/SwiftPageMenu.xcscheme index 792d0c4..439f57e 100644 --- a/SwiftPageMenu.xcodeproj/xcshareddata/xcschemes/SwiftPageMenu.xcscheme +++ b/SwiftPageMenu.xcodeproj/xcshareddata/xcschemes/SwiftPageMenu.xcscheme @@ -1,6 +1,6 @@