diff --git a/AKPickerView/AKPickerView.swift b/AKPickerView/AKPickerView.swift index c8370c2..6523ecb 100644 --- a/AKPickerView/AKPickerView.swift +++ b/AKPickerView/AKPickerView.swift @@ -138,7 +138,7 @@ private class AKCollectionViewLayout: UICollectionViewFlowLayout { let visibleRect = CGRect(origin: self.collectionView!.contentOffset, size: self.collectionView!.bounds.size) self.midX = visibleRect.midX; self.width = visibleRect.width / 2; - self.maxAngle = CGFloat(M_PI_2); + self.maxAngle = CGFloat.pi / 2; } fileprivate override func shouldInvalidateLayout(forBoundsChange newBounds: CGRect) -> Bool { @@ -152,7 +152,7 @@ private class AKCollectionViewLayout: UICollectionViewFlowLayout { return attributes case .wheel: let distance = attributes.frame.midX - self.midX; - let currentAngle = self.maxAngle * distance / self.width / CGFloat(M_PI_2); + let currentAngle = self.maxAngle * distance / self.width / (CGFloat.pi / 2); var transform = CATransform3DIdentity; transform = CATransform3DTranslate(transform, -distance, 0, -self.width); transform = CATransform3DRotate(transform, currentAngle, 0, 1, 0); @@ -266,7 +266,7 @@ public class AKPickerView: UIView, UICollectionViewDataSource, UICollectionViewD } } /// Readwrite. A boolean value indicates whether the mask is disabled. - @IBInspectable public var maskDisabled: Bool! = nil { + @IBInspectable public var maskDisabled: Bool = false { didSet { self.collectionView.layer.mask = self.maskDisabled == true ? nil : { let maskLayer = CAGradientLayer() @@ -326,8 +326,6 @@ public class AKPickerView: UIView, UICollectionViewDataSource, UICollectionViewD self.intercepter = AKPickerViewDelegateIntercepter(pickerView: self, delegate: self.delegate) self.collectionView.delegate = self.intercepter - - self.maskDisabled = self.maskDisabled == nil ? false : self.maskDisabled } public init() { @@ -373,8 +371,8 @@ public class AKPickerView: UIView, UICollectionViewDataSource, UICollectionViewD :returns: A CGSize which contains given string just. */ fileprivate func sizeForString(_ string: NSString) -> CGSize { - let size = string.size(attributes: [NSFontAttributeName: self.font]) - let highlightedSize = string.size(attributes: [NSFontAttributeName: self.highlightedFont]) + let size = string.size(withAttributes: [NSAttributedStringKey.font: self.font]) + let highlightedSize = string.size(withAttributes: [NSAttributedStringKey.font: self.highlightedFont]) return CGSize( width: ceil(max(size.width, highlightedSize.width)), height: ceil(max(size.height, highlightedSize.height))) diff --git a/AKPickerViewSample.xcodeproj/project.pbxproj b/AKPickerViewSample.xcodeproj/project.pbxproj index f7b6be0..816c79d 100644 --- a/AKPickerViewSample.xcodeproj/project.pbxproj +++ b/AKPickerViewSample.xcodeproj/project.pbxproj @@ -165,7 +165,7 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0700; - LastUpgradeCheck = 0810; + LastUpgradeCheck = 0900; ORGANIZATIONNAME = "Akio Yasui"; TargetAttributes = { 66F602601A8A167C0006FA7E = { @@ -174,6 +174,7 @@ }; 66F6028E1A8A17220006FA7E = { CreatedOnToolsVersion = 6.1.1; + LastSwiftMigration = 0900; }; }; }; @@ -266,14 +267,20 @@ 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_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 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_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; @@ -314,14 +321,20 @@ 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_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 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_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; @@ -393,7 +406,8 @@ PRODUCT_BUNDLE_IDENTIFIER = "org.prioirs.akkyie.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0.1; + SWIFT_SWIFT3_OBJC_INFERENCE = On; + SWIFT_VERSION = 4.0; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; @@ -415,7 +429,8 @@ PRODUCT_BUNDLE_IDENTIFIER = "org.prioirs.akkyie.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0.1; + SWIFT_SWIFT3_OBJC_INFERENCE = On; + SWIFT_VERSION = 4.0; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; diff --git a/AKPickerViewSample.xcodeproj/xcshareddata/xcschemes/AKPickerView.xcscheme b/AKPickerViewSample.xcodeproj/xcshareddata/xcschemes/AKPickerView.xcscheme index e0fc66d..332209f 100644 --- a/AKPickerViewSample.xcodeproj/xcshareddata/xcschemes/AKPickerView.xcscheme +++ b/AKPickerViewSample.xcodeproj/xcshareddata/xcschemes/AKPickerView.xcscheme @@ -1,6 +1,6 @@