From e98793a0128a07b9d06e3386c1ac0e3d469bfd7a Mon Sep 17 00:00:00 2001 From: Sam McEwan Date: Fri, 9 Sep 2016 09:50:35 +1200 Subject: [PATCH 1/5] Upgrading to swift 3 syntax --- .gitignore | 2 + TZStackView.xcodeproj/project.pbxproj | 34 +- .../xcschemes/TZStackView.xcscheme | 2 +- TZStackView/TZSpacerView.swift | 2 +- TZStackView/TZStackView.swift | 352 +++++------ TZStackView/TZStackViewAlignment.swift | 14 +- TZStackView/TZStackViewDistribution.swift | 10 +- TZStackViewDemo/AppDelegate.swift | 6 +- .../ExplicitIntrinsicContentSizeView.swift | 10 +- .../NSLayoutConstraintExtension.swift | 58 +- TZStackViewDemo/ViewController.swift | 120 ++-- TZStackViewTests/TZStackViewTestCase.swift | 43 +- TZStackViewTests/TZStackViewTests.swift | 566 +++++++++--------- TZStackViewTests/TestView.swift | 8 +- 14 files changed, 623 insertions(+), 604 deletions(-) diff --git a/.gitignore b/.gitignore index 8615121..49f5752 100644 --- a/.gitignore +++ b/.gitignore @@ -31,3 +31,5 @@ DerivedData # Carthage/Checkouts Carthage/Build + +.DS_Store diff --git a/TZStackView.xcodeproj/project.pbxproj b/TZStackView.xcodeproj/project.pbxproj index b9e35a1..490130b 100644 --- a/TZStackView.xcodeproj/project.pbxproj +++ b/TZStackView.xcodeproj/project.pbxproj @@ -16,10 +16,10 @@ A45441C21B9B6D71002452BA /* TZStackView.h in Headers */ = {isa = PBXBuildFile; fileRef = A45441C11B9B6D71002452BA /* TZStackView.h */; settings = {ATTRIBUTES = (Public, ); }; }; A45441C61B9B6D71002452BA /* TZStackView.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A45441BF1B9B6D71002452BA /* TZStackView.framework */; }; A45441C71B9B6D71002452BA /* TZStackView.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = A45441BF1B9B6D71002452BA /* TZStackView.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - A45441D01B9B6D9C002452BA /* TZSpacerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A45441CC1B9B6D9C002452BA /* TZSpacerView.swift */; settings = {ASSET_TAGS = (); }; }; - A45441D11B9B6D9C002452BA /* TZStackView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A45441CD1B9B6D9C002452BA /* TZStackView.swift */; settings = {ASSET_TAGS = (); }; }; - A45441D21B9B6D9C002452BA /* TZStackViewAlignment.swift in Sources */ = {isa = PBXBuildFile; fileRef = A45441CE1B9B6D9C002452BA /* TZStackViewAlignment.swift */; settings = {ASSET_TAGS = (); }; }; - A45441D31B9B6D9C002452BA /* TZStackViewDistribution.swift in Sources */ = {isa = PBXBuildFile; fileRef = A45441CF1B9B6D9C002452BA /* TZStackViewDistribution.swift */; settings = {ASSET_TAGS = (); }; }; + A45441D01B9B6D9C002452BA /* TZSpacerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A45441CC1B9B6D9C002452BA /* TZSpacerView.swift */; }; + A45441D11B9B6D9C002452BA /* TZStackView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A45441CD1B9B6D9C002452BA /* TZStackView.swift */; }; + A45441D21B9B6D9C002452BA /* TZStackViewAlignment.swift in Sources */ = {isa = PBXBuildFile; fileRef = A45441CE1B9B6D9C002452BA /* TZStackViewAlignment.swift */; }; + A45441D31B9B6D9C002452BA /* TZStackViewDistribution.swift in Sources */ = {isa = PBXBuildFile; fileRef = A45441CF1B9B6D9C002452BA /* TZStackViewDistribution.swift */; }; DB41AF6A1B294B8E003DB902 /* NSLayoutConstraintExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB41AF691B294B8E003DB902 /* NSLayoutConstraintExtension.swift */; }; DB5B70851B2A1963006043BD /* TestView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB5B70841B2A1963006043BD /* TestView.swift */; }; DB5B70871B2B8816006043BD /* TZStackViewTestCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB5B70861B2B8816006043BD /* TZStackViewTestCase.swift */; }; @@ -264,11 +264,18 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0700; - LastUpgradeCheck = 0700; + LastUpgradeCheck = 0800; ORGANIZATIONNAME = "Tom van Zummeren"; TargetAttributes = { + 5F50E36345E94CFC65ED7270 = { + LastSwiftMigration = 0800; + }; + 5F50EF63134E65D95D5312EE = { + LastSwiftMigration = 0800; + }; A45441BE1B9B6D71002452BA = { CreatedOnToolsVersion = 7.0; + LastSwiftMigration = 0800; }; }; }; @@ -380,8 +387,10 @@ 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_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; @@ -425,8 +434,10 @@ 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_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; @@ -445,6 +456,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; VALIDATE_PRODUCT = YES; }; name = Release; @@ -452,12 +464,13 @@ 5F50E2E44E5144E17840C724 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - EMBEDDED_CONTENT_CONTAINS_SWIFT = YES; INFOPLIST_FILE = TZStackViewDemo/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "nl.tomvanzummeren.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 3.0; }; name = Debug; }; @@ -473,6 +486,7 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "nl.tomvanzummeren.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 3.0; TEST_HOST = "$(BUNDLE_LOADER)"; }; name = Release; @@ -489,6 +503,7 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "nl.tomvanzummeren.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 3.0; TEST_HOST = "$(BUNDLE_LOADER)"; }; name = Debug; @@ -496,12 +511,13 @@ 5F50ECFE01A29CC56EA94F02 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - EMBEDDED_CONTENT_CONTAINS_SWIFT = YES; INFOPLIST_FILE = TZStackViewDemo/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "nl.tomvanzummeren.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 3.0; }; name = Release; }; @@ -509,6 +525,7 @@ isa = XCBuildConfiguration; buildSettings = { CLANG_ENABLE_MODULES = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = dwarf; DEFINES_MODULE = YES; @@ -523,6 +540,7 @@ PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -533,6 +551,7 @@ isa = XCBuildConfiguration; buildSettings = { CLANG_ENABLE_MODULES = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; CURRENT_PROJECT_VERSION = 1; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; @@ -545,6 +564,7 @@ PRODUCT_BUNDLE_IDENTIFIER = nl.tomvanzummeren.TZStackView; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; + SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; diff --git a/TZStackView.xcodeproj/xcshareddata/xcschemes/TZStackView.xcscheme b/TZStackView.xcodeproj/xcshareddata/xcschemes/TZStackView.xcscheme index 2a5be9e..165c1b2 100644 --- a/TZStackView.xcodeproj/xcshareddata/xcschemes/TZStackView.xcscheme +++ b/TZStackView.xcodeproj/xcshareddata/xcschemes/TZStackView.xcscheme @@ -1,6 +1,6 @@ return lhs.view === rhs.view } -public class TZStackView: UIView { +open class TZStackView: UIView { - public var distribution: TZStackViewDistribution = .Fill { + open var distribution: TZStackViewDistribution = .fill { didSet { setNeedsUpdateConstraints() } } - public var axis: UILayoutConstraintAxis = .Horizontal { + open var axis: UILayoutConstraintAxis = .horizontal { didSet { setNeedsUpdateConstraints() } } - public var alignment: TZStackViewAlignment = .Fill + open var alignment: TZStackViewAlignment = .fill - public var spacing: CGFloat = 0 + open var spacing: CGFloat = 0 - public var layoutMarginsRelativeArrangement = false + open var layoutMarginsRelativeArrangement = false - public private(set) var arrangedSubviews: [UIView] = [] { + open fileprivate(set) var arrangedSubviews: [UIView] = [] { didSet { setNeedsUpdateConstraints() registerHiddenListeners(oldValue) } } - private var kvoContext = UInt8() + fileprivate var kvoContext = UInt8() - private var stackViewConstraints = [NSLayoutConstraint]() - private var subviewConstraints = [NSLayoutConstraint]() + fileprivate var stackViewConstraints = [NSLayoutConstraint]() + fileprivate var subviewConstraints = [NSLayoutConstraint]() - private var spacerViews = [UIView]() + fileprivate var spacerViews = [UIView]() - private var animationDidStopQueueEntries = [TZAnimationDidStopQueueEntry]() + fileprivate var animationDidStopQueueEntries = [TZAnimationDidStopQueueEntry]() - private var registeredKvoSubviews = [UIView]() + fileprivate var registeredKvoSubviews = [UIView]() - private var animatingToHiddenViews = [UIView]() + fileprivate var animatingToHiddenViews = [UIView]() public init(arrangedSubviews: [UIView] = []) { - super.init(frame: CGRectZero) + super.init(frame: CGRect.zero) for arrangedSubview in arrangedSubviews { arrangedSubview.translatesAutoresizingMaskIntoConstraints = false addSubview(arrangedSubview) @@ -73,7 +73,7 @@ public class TZStackView: UIView { { self.arrangedSubviews = [] }() } - private func registerHiddenListeners(previousArrangedSubviews: [UIView]) { + fileprivate func registerHiddenListeners(_ previousArrangedSubviews: [UIView]) { for subview in previousArrangedSubviews { self.removeHiddenListener(subview) } @@ -83,22 +83,22 @@ public class TZStackView: UIView { } } - private func addHiddenListener(view: UIView) { - view.addObserver(self, forKeyPath: "hidden", options: [.Old, .New], context: &kvoContext) + fileprivate func addHiddenListener(_ view: UIView) { + view.addObserver(self, forKeyPath: "hidden", options: [.old, .new], context: &kvoContext) registeredKvoSubviews.append(view) } - private func removeHiddenListener(view: UIView) { - if let index = registeredKvoSubviews.indexOf(view) { + fileprivate func removeHiddenListener(_ view: UIView) { + if let index = registeredKvoSubviews.index(of: view) { view.removeObserver(self, forKeyPath: "hidden", context: &kvoContext) - registeredKvoSubviews.removeAtIndex(index) + registeredKvoSubviews.remove(at: index) } } - public override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer) { - if let view = object as? UIView, change = change where keyPath == "hidden" { - let hidden = view.hidden - let previousValue = change["old"] as! Bool + open override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) { + if let view = object as? UIView, let change = change, keyPath == "hidden" { + let hidden = view.isHidden + let previousValue = change[NSKeyValueChangeKey.oldKey] as! Bool if hidden == previousValue { return } @@ -111,22 +111,22 @@ public class TZStackView: UIView { layoutIfNeeded() removeHiddenListener(view) - view.hidden = false + view.isHidden = false if let _ = view.layer.animationKeys() { UIView.setAnimationDelegate(self) - animationDidStopQueueEntries.insert(TZAnimationDidStopQueueEntry(view: view, hidden: hidden), atIndex: 0) - UIView.setAnimationDidStopSelector(#selector(TZStackView.hiddenAnimationStopped)) + animationDidStopQueueEntries.insert(TZAnimationDidStopQueueEntry(view: view, hidden: hidden), at: 0) + UIView.setAnimationDidStop(#selector(TZStackView.hiddenAnimationStopped)) } else { didFinishSettingHiddenValue(view, hidden: hidden) } } } - private func didFinishSettingHiddenValue(arrangedSubview: UIView, hidden: Bool) { - arrangedSubview.hidden = hidden - if let index = animatingToHiddenViews.indexOf(arrangedSubview) { - animatingToHiddenViews.removeAtIndex(index) + fileprivate func didFinishSettingHiddenValue(_ arrangedSubview: UIView, hidden: Bool) { + arrangedSubview.isHidden = hidden + if let index = animatingToHiddenViews.index(of: arrangedSubview) { + animatingToHiddenViews.remove(at: index) } addHiddenListener(arrangedSubview) } @@ -141,35 +141,35 @@ public class TZStackView: UIView { } } for entry in queueEntriesToRemove { - if let index = animationDidStopQueueEntries.indexOf(entry) { - animationDidStopQueueEntries.removeAtIndex(index) + if let index = animationDidStopQueueEntries.index(of: entry) { + animationDidStopQueueEntries.remove(at: index) } } } - public func addArrangedSubview(view: UIView) { + open func addArrangedSubview(_ view: UIView) { view.translatesAutoresizingMaskIntoConstraints = false addSubview(view) arrangedSubviews.append(view) } - public func removeArrangedSubview(view: UIView) { - if let index = arrangedSubviews.indexOf(view) { - arrangedSubviews.removeAtIndex(index) + open func removeArrangedSubview(_ view: UIView) { + if let index = arrangedSubviews.index(of: view) { + arrangedSubviews.remove(at: index) } } - public func insertArrangedSubview(view: UIView, atIndex stackIndex: Int) { + open func insertArrangedSubview(_ view: UIView, atIndex stackIndex: Int) { view.translatesAutoresizingMaskIntoConstraints = false addSubview(view) - arrangedSubviews.insert(view, atIndex: stackIndex) + arrangedSubviews.insert(view, at: stackIndex) } - override public func willRemoveSubview(subview: UIView) { + override open func willRemoveSubview(_ subview: UIView) { removeArrangedSubview(subview) } - override public func updateConstraints() { + override open func updateConstraints() { removeConstraints(stackViewConstraints) stackViewConstraints.removeAll() @@ -179,13 +179,13 @@ public class TZStackView: UIView { subviewConstraints.removeAll() for arrangedSubview in arrangedSubviews { - if alignment != .Fill { + if alignment != .fill { let guideConstraint: NSLayoutConstraint switch axis { - case .Horizontal: - guideConstraint = constraint(item: arrangedSubview, attribute: .Height, toItem: nil, attribute: .NotAnAttribute, constant: 0, priority: 25) - case .Vertical: - guideConstraint = constraint(item: arrangedSubview, attribute: .Width, toItem: nil, attribute: .NotAnAttribute, constant: 0, priority: 25) + case .horizontal: + guideConstraint = constraint(item: arrangedSubview, attribute: .height, toItem: nil, attribute: .notAnAttribute, constant: 0, priority: 25) + case .vertical: + guideConstraint = constraint(item: arrangedSubview, attribute: .width, toItem: nil, attribute: .notAnAttribute, constant: 0, priority: 25) } subviewConstraints.append(guideConstraint) arrangedSubview.addConstraint(guideConstraint) @@ -194,10 +194,10 @@ public class TZStackView: UIView { if isHidden(arrangedSubview) { let hiddenConstraint: NSLayoutConstraint switch axis { - case .Horizontal: - hiddenConstraint = constraint(item: arrangedSubview, attribute: .Width, toItem: nil, attribute: .NotAnAttribute, constant: 0) - case .Vertical: - hiddenConstraint = constraint(item: arrangedSubview, attribute: .Height, toItem: nil, attribute: .NotAnAttribute, constant: 0) + case .horizontal: + hiddenConstraint = constraint(item: arrangedSubview, attribute: .width, toItem: nil, attribute: .notAnAttribute, constant: 0) + case .vertical: + hiddenConstraint = constraint(item: arrangedSubview, attribute: .height, toItem: nil, attribute: .notAnAttribute, constant: 0) } subviewConstraints.append(hiddenConstraint) arrangedSubview.addConstraint(hiddenConstraint) @@ -214,27 +214,27 @@ public class TZStackView: UIView { let visibleArrangedSubviews = arrangedSubviews.filter({!self.isHidden($0)}) switch distribution { - case .FillEqually, .Fill, .FillProportionally: - if alignment != .Fill || layoutMarginsRelativeArrangement { + case .fillEqually, .fill, .fillProportionally: + if alignment != .fill || layoutMarginsRelativeArrangement { addSpacerView() } stackViewConstraints += createMatchEdgesContraints(arrangedSubviews) stackViewConstraints += createFirstAndLastViewMatchEdgesContraints() - if alignment == .FirstBaseline && axis == .Horizontal { - stackViewConstraints.append(constraint(item: self, attribute: .Height, toItem: nil, attribute: .NotAnAttribute, priority: 49)) + if alignment == .firstBaseline && axis == .horizontal { + stackViewConstraints.append(constraint(item: self, attribute: .height, toItem: nil, attribute: .notAnAttribute, priority: 49)) } - if distribution == .FillEqually { + if distribution == .fillEqually { stackViewConstraints += createFillEquallyConstraints(arrangedSubviews) } - if distribution == .FillProportionally { + if distribution == .fillProportionally { stackViewConstraints += createFillProportionallyConstraints(arrangedSubviews) } stackViewConstraints += createFillConstraints(arrangedSubviews, constant: spacing) - case .EqualSpacing: + case .equalSpacing: var views = [UIView]() var index = 0 for arrangedSubview in arrangedSubviews { @@ -255,20 +255,20 @@ public class TZStackView: UIView { stackViewConstraints += createFirstAndLastViewMatchEdgesContraints() switch axis { - case .Horizontal: - stackViewConstraints.append(constraint(item: self, attribute: .Width, toItem: nil, attribute: .NotAnAttribute, priority: 49)) - if alignment == .FirstBaseline { - stackViewConstraints.append(constraint(item: self, attribute: .Height, toItem: nil, attribute: .NotAnAttribute, priority: 49)) + case .horizontal: + stackViewConstraints.append(constraint(item: self, attribute: .width, toItem: nil, attribute: .notAnAttribute, priority: 49)) + if alignment == .firstBaseline { + stackViewConstraints.append(constraint(item: self, attribute: .height, toItem: nil, attribute: .notAnAttribute, priority: 49)) } - case .Vertical: - stackViewConstraints.append(constraint(item: self, attribute: .Height, toItem: nil, attribute: .NotAnAttribute, priority: 49)) + case .vertical: + stackViewConstraints.append(constraint(item: self, attribute: .height, toItem: nil, attribute: .notAnAttribute, priority: 49)) } stackViewConstraints += createFillConstraints(views, constant: 0) stackViewConstraints += createFillEquallyConstraints(spacerViews) - stackViewConstraints += createFillConstraints(arrangedSubviews, relatedBy: .GreaterThanOrEqual, constant: spacing) - case .EqualCentering: - for (index, _) in visibleArrangedSubviews.enumerate() { + stackViewConstraints += createFillConstraints(arrangedSubviews, relatedBy: .greaterThanOrEqual, constant: spacing) + case .equalCentering: + for (index, _) in visibleArrangedSubviews.enumerated() { if index > 0 { addSpacerView() } @@ -281,34 +281,34 @@ public class TZStackView: UIView { stackViewConstraints += createFirstAndLastViewMatchEdgesContraints() switch axis { - case .Horizontal: - stackViewConstraints.append(constraint(item: self, attribute: .Width, toItem: nil, attribute: .NotAnAttribute, priority: 49)) - if alignment == .FirstBaseline { - stackViewConstraints.append(constraint(item: self, attribute: .Height, toItem: nil, attribute: .NotAnAttribute, priority: 49)) + case .horizontal: + stackViewConstraints.append(constraint(item: self, attribute: .width, toItem: nil, attribute: .notAnAttribute, priority: 49)) + if alignment == .firstBaseline { + stackViewConstraints.append(constraint(item: self, attribute: .height, toItem: nil, attribute: .notAnAttribute, priority: 49)) } - case .Vertical: - stackViewConstraints.append(constraint(item: self, attribute: .Height, toItem: nil, attribute: .NotAnAttribute, priority: 49)) + case .vertical: + stackViewConstraints.append(constraint(item: self, attribute: .height, toItem: nil, attribute: .notAnAttribute, priority: 49)) } var previousArrangedSubview: UIView? - for (index, arrangedSubview) in visibleArrangedSubviews.enumerate() { + for (index, arrangedSubview) in visibleArrangedSubviews.enumerated() { if let previousArrangedSubview = previousArrangedSubview { let spacerView = spacerViews[index - 1] switch axis { - case .Horizontal: - stackViewConstraints.append(constraint(item: previousArrangedSubview, attribute: .CenterX, toItem: spacerView, attribute: .Leading)) - stackViewConstraints.append(constraint(item: arrangedSubview, attribute: .CenterX, toItem: spacerView, attribute: .Trailing)) - case .Vertical: - stackViewConstraints.append(constraint(item: previousArrangedSubview, attribute: .CenterY, toItem: spacerView, attribute: .Top)) - stackViewConstraints.append(constraint(item: arrangedSubview, attribute: .CenterY, toItem: spacerView, attribute: .Bottom)) + case .horizontal: + stackViewConstraints.append(constraint(item: previousArrangedSubview, attribute: .centerX, toItem: spacerView, attribute: .leading)) + stackViewConstraints.append(constraint(item: arrangedSubview, attribute: .centerX, toItem: spacerView, attribute: .trailing)) + case .vertical: + stackViewConstraints.append(constraint(item: previousArrangedSubview, attribute: .centerY, toItem: spacerView, attribute: .top)) + stackViewConstraints.append(constraint(item: arrangedSubview, attribute: .centerY, toItem: spacerView, attribute: .bottom)) } } previousArrangedSubview = arrangedSubview } stackViewConstraints += createFillEquallyConstraints(spacerViews, priority: 150) - stackViewConstraints += createFillConstraints(arrangedSubviews, relatedBy: .GreaterThanOrEqual, constant: spacing) + stackViewConstraints += createFillConstraints(arrangedSubviews, relatedBy: .greaterThanOrEqual, constant: spacing) } if spacerViews.count > 0 { @@ -317,10 +317,10 @@ public class TZStackView: UIView { if layoutMarginsRelativeArrangement { if spacerViews.count > 0 { - stackViewConstraints.append(constraint(item: self, attribute: .BottomMargin, toItem: spacerViews[0], attribute: .Bottom)) - stackViewConstraints.append(constraint(item: self, attribute: .LeftMargin, toItem: spacerViews[0], attribute: .Left)) - stackViewConstraints.append(constraint(item: self, attribute: .RightMargin, toItem: spacerViews[0], attribute: .Right)) - stackViewConstraints.append(constraint(item: self, attribute: .TopMargin, toItem: spacerViews[0], attribute: .Top)) + stackViewConstraints.append(constraint(item: self, attribute: .bottomMargin, toItem: spacerViews[0], attribute: .bottom)) + stackViewConstraints.append(constraint(item: self, attribute: .leftMargin, toItem: spacerViews[0], attribute: .left)) + stackViewConstraints.append(constraint(item: self, attribute: .rightMargin, toItem: spacerViews[0], attribute: .right)) + stackViewConstraints.append(constraint(item: self, attribute: .topMargin, toItem: spacerViews[0], attribute: .top)) } } addConstraints(stackViewConstraints) @@ -333,57 +333,57 @@ public class TZStackView: UIView { super.init(coder: aDecoder)! } - private func addSpacerView() -> TZSpacerView { + @discardableResult fileprivate func addSpacerView() -> TZSpacerView { let spacerView = TZSpacerView() spacerView.translatesAutoresizingMaskIntoConstraints = false spacerViews.append(spacerView) - insertSubview(spacerView, atIndex: 0) + insertSubview(spacerView, at: 0) return spacerView } - private func createSurroundingSpacerViewConstraints(spacerView: UIView, views: [UIView]) -> [NSLayoutConstraint] { - if alignment == .Fill { + fileprivate func createSurroundingSpacerViewConstraints(_ spacerView: UIView, views: [UIView]) -> [NSLayoutConstraint] { + if alignment == .fill { return [] } var topPriority: Float = 1000 - var topRelation: NSLayoutRelation = .LessThanOrEqual + var topRelation: NSLayoutRelation = .lessThanOrEqual var bottomPriority: Float = 1000 - var bottomRelation: NSLayoutRelation = .GreaterThanOrEqual + var bottomRelation: NSLayoutRelation = .greaterThanOrEqual - if alignment == .Top || alignment == .Leading { + if alignment == .top || alignment == .leading { topPriority = 999.5 - topRelation = .Equal + topRelation = .equal } - if alignment == .Bottom || alignment == .Trailing { + if alignment == .bottom || alignment == .trailing { bottomPriority = 999.5 - bottomRelation = .Equal + bottomRelation = .equal } var constraints = [NSLayoutConstraint]() for view in views { switch axis { - case .Horizontal: - constraints.append(constraint(item: spacerView, attribute: .Top, relatedBy: topRelation, toItem: view, priority: topPriority)) - constraints.append(constraint(item: spacerView, attribute: .Bottom, relatedBy: bottomRelation, toItem: view, priority: bottomPriority)) - case .Vertical: - constraints.append(constraint(item: spacerView, attribute: .Leading, relatedBy: topRelation, toItem: view, priority: topPriority)) - constraints.append(constraint(item: spacerView, attribute: .Trailing, relatedBy: bottomRelation, toItem: view, priority: bottomPriority)) + case .horizontal: + constraints.append(constraint(item: spacerView, attribute: .top, relatedBy: topRelation, toItem: view, priority: topPriority)) + constraints.append(constraint(item: spacerView, attribute: .bottom, relatedBy: bottomRelation, toItem: view, priority: bottomPriority)) + case .vertical: + constraints.append(constraint(item: spacerView, attribute: .leading, relatedBy: topRelation, toItem: view, priority: topPriority)) + constraints.append(constraint(item: spacerView, attribute: .trailing, relatedBy: bottomRelation, toItem: view, priority: bottomPriority)) } } switch axis { - case .Horizontal: - constraints.append(constraint(item: spacerView, attribute: .Height, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, constant: 0, priority: 51)) - case .Vertical: - constraints.append(constraint(item: spacerView, attribute: .Width, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, constant: 0, priority: 51)) + case .horizontal: + constraints.append(constraint(item: spacerView, attribute: .height, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, constant: 0, priority: 51)) + case .vertical: + constraints.append(constraint(item: spacerView, attribute: .width, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, constant: 0, priority: 51)) } return constraints } - private func createFillProportionallyConstraints(views: [UIView]) -> [NSLayoutConstraint] { + fileprivate func createFillProportionallyConstraints(_ views: [UIView]) -> [NSLayoutConstraint] { var constraints = [NSLayoutConstraint]() var totalSize: CGFloat = 0 @@ -393,10 +393,10 @@ public class TZStackView: UIView { continue } switch axis { - case .Horizontal: - totalSize += arrangedSubview.intrinsicContentSize().width - case .Vertical: - totalSize += arrangedSubview.intrinsicContentSize().height + case .horizontal: + totalSize += arrangedSubview.intrinsicContentSize.width + case .vertical: + totalSize += arrangedSubview.intrinsicContentSize.height } totalCount += 1 } @@ -413,12 +413,12 @@ public class TZStackView: UIView { continue } switch axis { - case .Horizontal: - let multiplier = arrangedSubview.intrinsicContentSize().width / totalSize - constraints.append(constraint(item: arrangedSubview, attribute: .Width, toItem: self, multiplier: multiplier, priority: priority)) - case .Vertical: - let multiplier = arrangedSubview.intrinsicContentSize().height / totalSize - constraints.append(constraint(item: arrangedSubview, attribute: .Height, toItem: self, multiplier: multiplier, priority: priority)) + case .horizontal: + let multiplier = arrangedSubview.intrinsicContentSize.width / totalSize + constraints.append(constraint(item: arrangedSubview, attribute: .width, toItem: self, multiplier: multiplier, priority: priority)) + case .vertical: + let multiplier = arrangedSubview.intrinsicContentSize.height / totalSize + constraints.append(constraint(item: arrangedSubview, attribute: .height, toItem: self, multiplier: multiplier, priority: priority)) } } @@ -426,18 +426,18 @@ public class TZStackView: UIView { } // Matchs all Width or Height attributes of all given views - private func createFillEquallyConstraints(views: [UIView], priority: Float = 1000) -> [NSLayoutConstraint] { + fileprivate func createFillEquallyConstraints(_ views: [UIView], priority: Float = 1000) -> [NSLayoutConstraint] { switch axis { - case .Horizontal: - return equalAttributes(views: views.filter({ !self.isHidden($0) }), attribute: .Width, priority: priority) + case .horizontal: + return equalAttributes(views: views.filter({ !self.isHidden($0) }), attribute: .width, priority: priority) - case .Vertical: - return equalAttributes(views: views.filter({ !self.isHidden($0) }), attribute: .Height, priority: priority) + case .vertical: + return equalAttributes(views: views.filter({ !self.isHidden($0) }), attribute: .height, priority: priority) } } // Chains together the given views using Leading/Trailing or Top/Bottom - private func createFillConstraints(views: [UIView], priority: Float = 1000, relatedBy relation: NSLayoutRelation = .Equal, constant: CGFloat) -> [NSLayoutConstraint] { + fileprivate func createFillConstraints(_ views: [UIView], priority: Float = 1000, relatedBy relation: NSLayoutRelation = .equal, constant: CGFloat) -> [NSLayoutConstraint] { var constraints = [NSLayoutConstraint]() var previousView: UIView? @@ -452,11 +452,11 @@ public class TZStackView: UIView { c = (constant / 2) } switch axis { - case .Horizontal: - constraints.append(constraint(item: view, attribute: .Leading, relatedBy: relation, toItem: previousView, attribute: .Trailing, constant: c, priority: priority)) + case .horizontal: + constraints.append(constraint(item: view, attribute: .leading, relatedBy: relation, toItem: previousView, attribute: .trailing, constant: c, priority: priority)) - case .Vertical: - constraints.append(constraint(item: view, attribute: .Top, relatedBy: relation, toItem: previousView, attribute: .Bottom, constant: c, priority: priority)) + case .vertical: + constraints.append(constraint(item: view, attribute: .top, relatedBy: relation, toItem: previousView, attribute: .bottom, constant: c, priority: priority)) } } previousView = view @@ -465,44 +465,44 @@ public class TZStackView: UIView { } // Matches all Bottom/Top or Leading Trailing constraints of te given views and matches those attributes of the first/last view to the container - private func createMatchEdgesContraints(views: [UIView]) -> [NSLayoutConstraint] { + fileprivate func createMatchEdgesContraints(_ views: [UIView]) -> [NSLayoutConstraint] { var constraints = [NSLayoutConstraint]() switch axis { - case .Horizontal: + case .horizontal: switch alignment { - case .Fill: - constraints += equalAttributes(views: views, attribute: .Bottom) - constraints += equalAttributes(views: views, attribute: .Top) - case .Center: - constraints += equalAttributes(views: views, attribute: .CenterY) - case .Leading, .Top: - constraints += equalAttributes(views: views, attribute: .Top) - case .Trailing, .Bottom: - constraints += equalAttributes(views: views, attribute: .Bottom) - case .FirstBaseline: - constraints += equalAttributes(views: views, attribute: .FirstBaseline) + case .fill: + constraints += equalAttributes(views: views, attribute: .bottom) + constraints += equalAttributes(views: views, attribute: .top) + case .center: + constraints += equalAttributes(views: views, attribute: .centerY) + case .leading, .top: + constraints += equalAttributes(views: views, attribute: .top) + case .trailing, .bottom: + constraints += equalAttributes(views: views, attribute: .bottom) + case .firstBaseline: + constraints += equalAttributes(views: views, attribute: .firstBaseline) } - case .Vertical: + case .vertical: switch alignment { - case .Fill: - constraints += equalAttributes(views: views, attribute: .Leading) - constraints += equalAttributes(views: views, attribute: .Trailing) - case .Center: - constraints += equalAttributes(views: views, attribute: .CenterX) - case .Leading, .Top: - constraints += equalAttributes(views: views, attribute: .Leading) - case .Trailing, .Bottom: - constraints += equalAttributes(views: views, attribute: .Trailing) - case .FirstBaseline: + case .fill: + constraints += equalAttributes(views: views, attribute: .leading) + constraints += equalAttributes(views: views, attribute: .trailing) + case .center: + constraints += equalAttributes(views: views, attribute: .centerX) + case .leading, .top: + constraints += equalAttributes(views: views, attribute: .leading) + case .trailing, .bottom: + constraints += equalAttributes(views: views, attribute: .trailing) + case .firstBaseline: constraints += [] } } return constraints } - private func createFirstAndLastViewMatchEdgesContraints() -> [NSLayoutConstraint] { + fileprivate func createFirstAndLastViewMatchEdgesContraints() -> [NSLayoutConstraint] { var constraints = [NSLayoutConstraint]() @@ -513,18 +513,18 @@ public class TZStackView: UIView { var topView = arrangedSubviews.first! var bottomView = arrangedSubviews.first! if spacerViews.count > 0 { - if alignment == .Center { + if alignment == .center { topView = spacerViews[0] bottomView = spacerViews[0] - } else if alignment == .Top || alignment == .Leading { + } else if alignment == .top || alignment == .leading { bottomView = spacerViews[0] - } else if alignment == .Bottom || alignment == .Trailing { + } else if alignment == .bottom || alignment == .trailing { topView = spacerViews[0] - } else if alignment == .FirstBaseline { + } else if alignment == .firstBaseline { switch axis { - case .Horizontal: + case .horizontal: bottomView = spacerViews[0] - case .Vertical: + case .vertical: topView = spacerViews[0] bottomView = spacerViews[0] } @@ -534,40 +534,40 @@ public class TZStackView: UIView { let firstItem = layoutMarginsRelativeArrangement ? spacerViews[0] : self switch axis { - case .Horizontal: + case .horizontal: if let firstView = firstView { - constraints.append(constraint(item: firstItem, attribute: .Leading, toItem: firstView)) + constraints.append(constraint(item: firstItem, attribute: .leading, toItem: firstView)) } if let lastView = lastView { - constraints.append(constraint(item: firstItem, attribute: .Trailing, toItem: lastView)) + constraints.append(constraint(item: firstItem, attribute: .trailing, toItem: lastView)) } - constraints.append(constraint(item: firstItem, attribute: .Top, toItem: topView)) - constraints.append(constraint(item: firstItem, attribute: .Bottom, toItem: bottomView)) + constraints.append(constraint(item: firstItem, attribute: .top, toItem: topView)) + constraints.append(constraint(item: firstItem, attribute: .bottom, toItem: bottomView)) - if alignment == .Center { - constraints.append(constraint(item: firstItem, attribute: .CenterY, toItem: arrangedSubviews.first!)) + if alignment == .center { + constraints.append(constraint(item: firstItem, attribute: .centerY, toItem: arrangedSubviews.first!)) } - case .Vertical: + case .vertical: if let firstView = firstView { - constraints.append(constraint(item: firstItem, attribute: .Top, toItem: firstView)) + constraints.append(constraint(item: firstItem, attribute: .top, toItem: firstView)) } if let lastView = lastView { - constraints.append(constraint(item: firstItem, attribute: .Bottom, toItem: lastView)) + constraints.append(constraint(item: firstItem, attribute: .bottom, toItem: lastView)) } - constraints.append(constraint(item: firstItem, attribute: .Leading, toItem: topView)) - constraints.append(constraint(item: firstItem, attribute: .Trailing, toItem: bottomView)) + constraints.append(constraint(item: firstItem, attribute: .leading, toItem: topView)) + constraints.append(constraint(item: firstItem, attribute: .trailing, toItem: bottomView)) - if alignment == .Center { - constraints.append(constraint(item: firstItem, attribute: .CenterX, toItem: arrangedSubviews.first!)) + if alignment == .center { + constraints.append(constraint(item: firstItem, attribute: .centerX, toItem: arrangedSubviews.first!)) } } return constraints } - private func equalAttributes(views views: [UIView], attribute: NSLayoutAttribute, priority: Float = 1000) -> [NSLayoutConstraint] { + fileprivate func equalAttributes(views: [UIView], attribute: NSLayoutAttribute, priority: Float = 1000) -> [NSLayoutConstraint] { var currentPriority = priority var constraints = [NSLayoutConstraint]() if views.count > 0 { @@ -590,7 +590,7 @@ public class TZStackView: UIView { } // Convenience method to help make NSLayoutConstraint in a less verbose way - private func constraint(item view1: AnyObject, attribute attr1: NSLayoutAttribute, relatedBy relation: NSLayoutRelation = .Equal, toItem view2: AnyObject?, attribute attr2: NSLayoutAttribute? = nil, multiplier: CGFloat = 1, constant c: CGFloat = 0, priority: Float = 1000) -> NSLayoutConstraint { + fileprivate func constraint(item view1: AnyObject, attribute attr1: NSLayoutAttribute, relatedBy relation: NSLayoutRelation = .equal, toItem view2: AnyObject?, attribute attr2: NSLayoutAttribute? = nil, multiplier: CGFloat = 1, constant c: CGFloat = 0, priority: Float = 1000) -> NSLayoutConstraint { let attribute2 = attr2 != nil ? attr2! : attr1 @@ -599,10 +599,10 @@ public class TZStackView: UIView { return constraint } - private func isHidden(view: UIView) -> Bool { - if view.hidden { + fileprivate func isHidden(_ view: UIView) -> Bool { + if view.isHidden { return true } - return animatingToHiddenViews.indexOf(view) != nil + return animatingToHiddenViews.index(of: view) != nil } } diff --git a/TZStackView/TZStackViewAlignment.swift b/TZStackView/TZStackViewAlignment.swift index f99594f..394ffd9 100644 --- a/TZStackView/TZStackViewAlignment.swift +++ b/TZStackView/TZStackViewAlignment.swift @@ -9,11 +9,11 @@ import Foundation @objc public enum TZStackViewAlignment: Int { - case Fill - case Center - case Leading - case Top - case Trailing - case Bottom - case FirstBaseline + case fill + case center + case leading + case top + case trailing + case bottom + case firstBaseline } diff --git a/TZStackView/TZStackViewDistribution.swift b/TZStackView/TZStackViewDistribution.swift index 0802276..127e445 100644 --- a/TZStackView/TZStackViewDistribution.swift +++ b/TZStackView/TZStackViewDistribution.swift @@ -8,9 +8,9 @@ import Foundation @objc public enum TZStackViewDistribution: Int { - case Fill - case FillEqually - case FillProportionally - case EqualSpacing - case EqualCentering + case fill + case fillEqually + case fillProportionally + case equalSpacing + case equalCentering } diff --git a/TZStackViewDemo/AppDelegate.swift b/TZStackViewDemo/AppDelegate.swift index a90c5ac..57fc143 100644 --- a/TZStackViewDemo/AppDelegate.swift +++ b/TZStackViewDemo/AppDelegate.swift @@ -14,14 +14,14 @@ class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? - func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { //Appearance proxy for the UISegmentedControl font UISegmentedControl.appearance().setTitleTextAttributes( [NSFontAttributeName:UIFont(name: "HelveticaNeue-Light", size:10.0)!], - forState: UIControlState.Normal) + for: UIControlState()) //Launch the application - window = UIWindow(frame: UIScreen.mainScreen().bounds) + window = UIWindow(frame: UIScreen.main.bounds) window?.rootViewController = ViewController() window?.makeKeyAndVisible() return true diff --git a/TZStackViewDemo/ExplicitIntrinsicContentSizeView.swift b/TZStackViewDemo/ExplicitIntrinsicContentSizeView.swift index 61ca222..0af9816 100644 --- a/TZStackViewDemo/ExplicitIntrinsicContentSizeView.swift +++ b/TZStackViewDemo/ExplicitIntrinsicContentSizeView.swift @@ -13,16 +13,16 @@ class ExplicitIntrinsicContentSizeView: UIView { init(intrinsicContentSize: CGSize, name: String) { self.name = name self.contentSize = intrinsicContentSize - super.init(frame: CGRectZero) + super.init(frame: CGRect.zero) let gestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(ExplicitIntrinsicContentSizeView.tap)) addGestureRecognizer(gestureRecognizer) - userInteractionEnabled = true + isUserInteractionEnabled = true } func tap() { - UIView.animateWithDuration(0.6, delay: 0, usingSpringWithDamping: 0.7, initialSpringVelocity: 0, options: .AllowUserInteraction, animations: { - self.hidden = true + UIView.animate(withDuration: 0.6, delay: 0, usingSpringWithDamping: 0.7, initialSpringVelocity: 0, options: .allowUserInteraction, animations: { + self.isHidden = true }, completion: nil) } @@ -30,7 +30,7 @@ class ExplicitIntrinsicContentSizeView: UIView { fatalError("init(coder:) has not been implemented") } - override func intrinsicContentSize() -> CGSize { + override var intrinsicContentSize : CGSize { return contentSize } diff --git a/TZStackViewDemo/NSLayoutConstraintExtension.swift b/TZStackViewDemo/NSLayoutConstraintExtension.swift index b494e01..07cf4d3 100644 --- a/TZStackViewDemo/NSLayoutConstraintExtension.swift +++ b/TZStackViewDemo/NSLayoutConstraintExtension.swift @@ -11,47 +11,47 @@ import UIKit extension NSLayoutConstraint { func readableString() -> String { - return "\(self.dynamicType)(\n item1: \(unwrap(firstItem)), firstAttribute: \(toString(firstAttribute))\n relation: \(toString(relation))\n secondItem: \(unwrap(secondItem)), secondAttribute: \(toString(secondAttribute))\n constant: \(constant)\n multiplier: \(multiplier)\n priority: \(priority)\n)" + return "\(type(of: self))(\n item1: \(unwrap(firstItem)), firstAttribute: \(toString(firstAttribute))\n relation: \(toString(relation))\n secondItem: \(unwrap(secondItem)), secondAttribute: \(toString(secondAttribute))\n constant: \(constant)\n multiplier: \(multiplier)\n priority: \(priority)\n)" } - private func unwrap(object: AnyObject?) -> String { + fileprivate func unwrap(_ object: AnyObject?) -> String { if let object = object { return "\(object)" } return "nil" } - private func toString(relation: NSLayoutRelation) -> String { + fileprivate func toString(_ relation: NSLayoutRelation) -> String { switch relation { - case .LessThanOrEqual: return "LessThanOrEqual" - case .Equal: return "Equal" - case .GreaterThanOrEqual: return "GreaterThanOrEqual" + case .lessThanOrEqual: return "LessThanOrEqual" + case .equal: return "Equal" + case .greaterThanOrEqual: return "GreaterThanOrEqual" } } - private func toString(attribute: NSLayoutAttribute) -> String { + fileprivate func toString(_ attribute: NSLayoutAttribute) -> String { switch attribute { - case .Left: return "Left" - case .Right: return "Right" - case .Top: return "Top" - case .Bottom: return "Bottom" - case .Leading: return "Leading" - case .Trailing: return "Trailing" - case .Width: return "Width" - case .Height: return "Height" - case .CenterX: return "CenterX" - case .CenterY: return "CenterY" - case .Baseline: return "Baseline" - case .FirstBaseline: return "FirstBaseline" - case .NotAnAttribute: return "NotAnAttribute" - case .LeftMargin: return "LeftMargin" - case .RightMargin: return "RightMargin" - case .TopMargin: return "TopMargin" - case .BottomMargin: return "BottomMargin" - case .LeadingMargin: return "LeadingMargin" - case .TrailingMargin: return "TrailingMargin" - case .CenterXWithinMargins: return "CenterXWithinMargins" - case .CenterYWithinMargins: return "CenterYWithinMargins" + case .left: return "Left" + case .right: return "Right" + case .top: return "Top" + case .bottom: return "Bottom" + case .leading: return "Leading" + case .trailing: return "Trailing" + case .width: return "Width" + case .height: return "Height" + case .centerX: return "CenterX" + case .centerY: return "CenterY" + case .lastBaseline: return "Baseline" + case .firstBaseline: return "FirstBaseline" + case .notAnAttribute: return "NotAnAttribute" + case .leftMargin: return "LeftMargin" + case .rightMargin: return "RightMargin" + case .topMargin: return "TopMargin" + case .bottomMargin: return "BottomMargin" + case .leadingMargin: return "LeadingMargin" + case .trailingMargin: return "TrailingMargin" + case .centerXWithinMargins: return "CenterXWithinMargins" + case .centerYWithinMargins: return "CenterYWithinMargins" } } -} \ No newline at end of file +} diff --git a/TZStackViewDemo/ViewController.swift b/TZStackViewDemo/ViewController.swift index 7fa9b18..9b4a57b 100644 --- a/TZStackViewDemo/ViewController.swift +++ b/TZStackViewDemo/ViewController.swift @@ -15,7 +15,7 @@ class ViewController: UIViewController { //-------------------------------------------------------------------------- var tzStackView: TZStackView! - let resetButton = UIButton(type: .System) + let resetButton = UIButton(type: .system) let instructionLabel = UILabel() var axisSegmentedControl: UISegmentedControl! @@ -26,58 +26,58 @@ class ViewController: UIViewController { //-------------------------------------------------------------------------- override func viewDidLoad() { super.viewDidLoad() - edgesForExtendedLayout = .None; + edgesForExtendedLayout = UIRectEdge(); - view.backgroundColor = UIColor.blackColor() + view.backgroundColor = UIColor.black title = "TZStackView" tzStackView = TZStackView(arrangedSubviews: createViews()) tzStackView.translatesAutoresizingMaskIntoConstraints = false - tzStackView.axis = .Vertical - tzStackView.distribution = .Fill - tzStackView.alignment = .Fill + tzStackView.axis = .vertical + tzStackView.distribution = .fill + tzStackView.alignment = .fill tzStackView.spacing = 15 view.addSubview(tzStackView) instructionLabel.translatesAutoresizingMaskIntoConstraints = false - instructionLabel.font = UIFont.systemFontOfSize(15) + instructionLabel.font = UIFont.systemFont(ofSize: 15) instructionLabel.text = "Tap any of the boxes to set hidden=true" - instructionLabel.textColor = UIColor.whiteColor() + instructionLabel.textColor = UIColor.white instructionLabel.numberOfLines = 0 - instructionLabel.setContentCompressionResistancePriority(900, forAxis: .Horizontal) - instructionLabel.setContentHuggingPriority(1000, forAxis: .Vertical) + instructionLabel.setContentCompressionResistancePriority(900, for: .horizontal) + instructionLabel.setContentHuggingPriority(1000, for: .vertical) view.addSubview(instructionLabel) resetButton.translatesAutoresizingMaskIntoConstraints = false - resetButton.setTitle("Reset", forState: .Normal) - resetButton.addTarget(self, action: #selector(ViewController.reset), forControlEvents: .TouchUpInside) - resetButton.setContentCompressionResistancePriority(1000, forAxis: .Horizontal) - resetButton.setContentHuggingPriority(1000, forAxis: .Horizontal) - resetButton.setContentHuggingPriority(1000, forAxis: .Vertical) + resetButton.setTitle("Reset", for: UIControlState()) + resetButton.addTarget(self, action: #selector(ViewController.reset), for: .touchUpInside) + resetButton.setContentCompressionResistancePriority(1000, for: .horizontal) + resetButton.setContentHuggingPriority(1000, for: .horizontal) + resetButton.setContentHuggingPriority(1000, for: .vertical) view.addSubview(resetButton) axisSegmentedControl = UISegmentedControl(items: ["Vertical", "Horizontal"]) axisSegmentedControl.selectedSegmentIndex = 0 - axisSegmentedControl.addTarget(self, action: #selector(ViewController.axisChanged(_:)), forControlEvents: .ValueChanged) - axisSegmentedControl.setContentCompressionResistancePriority(900, forAxis: .Horizontal) - axisSegmentedControl.tintColor = UIColor.lightGrayColor() + axisSegmentedControl.addTarget(self, action: #selector(ViewController.axisChanged(_:)), for: .valueChanged) + axisSegmentedControl.setContentCompressionResistancePriority(900, for: .horizontal) + axisSegmentedControl.tintColor = UIColor.lightGray alignmentSegmentedControl = UISegmentedControl(items: ["Fill", "Center", "Leading", "Top", "Trailing", "Bottom", "FirstBaseline"]) alignmentSegmentedControl.selectedSegmentIndex = 0 - alignmentSegmentedControl.addTarget(self, action: #selector(ViewController.alignmentChanged(_:)), forControlEvents: .ValueChanged) - alignmentSegmentedControl.setContentCompressionResistancePriority(1000, forAxis: .Horizontal) - alignmentSegmentedControl.tintColor = UIColor.lightGrayColor() + alignmentSegmentedControl.addTarget(self, action: #selector(ViewController.alignmentChanged(_:)), for: .valueChanged) + alignmentSegmentedControl.setContentCompressionResistancePriority(1000, for: .horizontal) + alignmentSegmentedControl.tintColor = UIColor.lightGray distributionSegmentedControl = UISegmentedControl(items: ["Fill", "FillEqually", "FillProportionally", "EqualSpacing", "EqualCentering"]) distributionSegmentedControl.selectedSegmentIndex = 0 - distributionSegmentedControl.addTarget(self, action: #selector(ViewController.distributionChanged(_:)), forControlEvents: .ValueChanged) - distributionSegmentedControl.tintColor = UIColor.lightGrayColor() + distributionSegmentedControl.addTarget(self, action: #selector(ViewController.distributionChanged(_:)), for: .valueChanged) + distributionSegmentedControl.tintColor = UIColor.lightGray let controlsLayoutContainer = TZStackView(arrangedSubviews: [axisSegmentedControl, alignmentSegmentedControl, distributionSegmentedControl]) - controlsLayoutContainer.axis = .Vertical + controlsLayoutContainer.axis = .vertical controlsLayoutContainer.translatesAutoresizingMaskIntoConstraints = false controlsLayoutContainer.spacing = 5 - controlsLayoutContainer.setContentHuggingPriority(1000, forAxis: .Vertical) + controlsLayoutContainer.setContentHuggingPriority(1000, for: .vertical) view.addSubview(controlsLayoutContainer) let views: [String:AnyObject] = [ @@ -88,44 +88,44 @@ class ViewController: UIViewController { ] let metrics: [String:AnyObject] = [ - "gap": 10, - "topspacing": 25 + "gap": 10 as AnyObject, + "topspacing": 25 as AnyObject ] - view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|-gap-[instructionLabel]-[resetButton]-gap-|", + view.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|-gap-[instructionLabel]-[resetButton]-gap-|", options: NSLayoutFormatOptions(rawValue: 0), metrics: metrics, views: views)) - view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|[tzStackView]|", + view.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|[tzStackView]|", options: NSLayoutFormatOptions(rawValue: 0), metrics: metrics, views: views)) - view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|[controlsLayoutContainer]|", + view.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|[controlsLayoutContainer]|", options: NSLayoutFormatOptions(rawValue: 0), metrics: metrics, views: views)) - view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|-topspacing-[instructionLabel]-gap-[controlsLayoutContainer]-gap-[tzStackView]|", + view.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|-topspacing-[instructionLabel]-gap-[controlsLayoutContainer]-gap-[tzStackView]|", options: NSLayoutFormatOptions(rawValue: 0), metrics: metrics, views: views)) - view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|-topspacing-[resetButton]-gap-[controlsLayoutContainer]", + view.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|-topspacing-[resetButton]-gap-[controlsLayoutContainer]", options: NSLayoutFormatOptions(rawValue: 0), metrics: metrics, views: views)) } - private func createViews() -> [UIView] { + fileprivate func createViews() -> [UIView] { let redView = ExplicitIntrinsicContentSizeView(intrinsicContentSize: CGSize(width: 100, height: 100), name: "Red") let greenView = ExplicitIntrinsicContentSizeView(intrinsicContentSize: CGSize(width: 80, height: 80), name: "Green") let blueView = ExplicitIntrinsicContentSizeView(intrinsicContentSize: CGSize(width: 60, height: 60), name: "Blue") let purpleView = ExplicitIntrinsicContentSizeView(intrinsicContentSize: CGSize(width: 80, height: 80), name: "Purple") let yellowView = ExplicitIntrinsicContentSizeView(intrinsicContentSize: CGSize(width: 100, height: 100), name: "Yellow") - redView.backgroundColor = UIColor.redColor().colorWithAlphaComponent(0.75) - greenView.backgroundColor = UIColor.greenColor().colorWithAlphaComponent(0.75) - blueView.backgroundColor = UIColor.blueColor().colorWithAlphaComponent(0.75) - purpleView.backgroundColor = UIColor.purpleColor().colorWithAlphaComponent(0.75) - yellowView.backgroundColor = UIColor.yellowColor().colorWithAlphaComponent(0.75) + redView.backgroundColor = UIColor.red.withAlphaComponent(0.75) + greenView.backgroundColor = UIColor.green.withAlphaComponent(0.75) + blueView.backgroundColor = UIColor.blue.withAlphaComponent(0.75) + purpleView.backgroundColor = UIColor.purple.withAlphaComponent(0.75) + yellowView.backgroundColor = UIColor.yellow.withAlphaComponent(0.75) return [redView, greenView, blueView, purpleView, yellowView] } //MARK: - Button Actions //-------------------------------------------------------------------------- func reset() { - UIView.animateWithDuration(0.6, delay: 0, usingSpringWithDamping: 0.7, initialSpringVelocity: 0, options: .AllowUserInteraction, animations: { + UIView.animate(withDuration: 0.6, delay: 0, usingSpringWithDamping: 0.7, initialSpringVelocity: 0, options: .allowUserInteraction, animations: { for view in self.tzStackView.arrangedSubviews { - view.hidden = false + view.isHidden = false } }, completion: nil) @@ -133,51 +133,51 @@ class ViewController: UIViewController { //MARK: - Segmented Control Actions //-------------------------------------------------------------------------- - func axisChanged(sender: UISegmentedControl) { + func axisChanged(_ sender: UISegmentedControl) { switch sender.selectedSegmentIndex { case 0: - tzStackView.axis = .Vertical + tzStackView.axis = .vertical default: - tzStackView.axis = .Horizontal + tzStackView.axis = .horizontal } } - func alignmentChanged(sender: UISegmentedControl) { + func alignmentChanged(_ sender: UISegmentedControl) { switch sender.selectedSegmentIndex { case 0: - tzStackView.alignment = .Fill + tzStackView.alignment = .fill case 1: - tzStackView.alignment = .Center + tzStackView.alignment = .center case 2: - tzStackView.alignment = .Leading + tzStackView.alignment = .leading case 3: - tzStackView.alignment = .Top + tzStackView.alignment = .top case 4: - tzStackView.alignment = .Trailing + tzStackView.alignment = .trailing case 5: - tzStackView.alignment = .Bottom + tzStackView.alignment = .bottom default: - tzStackView.alignment = .FirstBaseline + tzStackView.alignment = .firstBaseline } tzStackView.setNeedsUpdateConstraints() } - func distributionChanged(sender: UISegmentedControl) { + func distributionChanged(_ sender: UISegmentedControl) { switch sender.selectedSegmentIndex { case 0: - tzStackView.distribution = .Fill + tzStackView.distribution = .fill case 1: - tzStackView.distribution = .FillEqually + tzStackView.distribution = .fillEqually case 2: - tzStackView.distribution = .FillProportionally + tzStackView.distribution = .fillProportionally case 3: - tzStackView.distribution = .EqualSpacing + tzStackView.distribution = .equalSpacing default: - tzStackView.distribution = .EqualCentering + tzStackView.distribution = .equalCentering } } - override func preferredStatusBarStyle() -> UIStatusBarStyle { - return .LightContent + override var preferredStatusBarStyle : UIStatusBarStyle { + return .lightContent } -} \ No newline at end of file +} diff --git a/TZStackViewTests/TZStackViewTestCase.swift b/TZStackViewTests/TZStackViewTestCase.swift index e0a4c02..cc6b3e3 100644 --- a/TZStackViewTests/TZStackViewTestCase.swift +++ b/TZStackViewTests/TZStackViewTestCase.swift @@ -11,12 +11,9 @@ import XCTest import TZStackView -func delay(delay:Double, closure:()->()) { - dispatch_after( - dispatch_time( - DISPATCH_TIME_NOW, - Int64(delay * Double(NSEC_PER_SEC)) - ), dispatch_get_main_queue(), closure) +func delay(_ delay:Double, closure:@escaping ()->()) { + DispatchQueue.main.asyncAfter( + deadline: DispatchTime.now() + Double(Int64(delay * Double(NSEC_PER_SEC))) / Double(NSEC_PER_SEC), execute: closure) } class TZStackViewTestCase: XCTestCase { @@ -32,7 +29,7 @@ class TZStackViewTestCase: XCTestCase { tzStackView = TZStackView(arrangedSubviews: createTestViews()) tzStackView.translatesAutoresizingMaskIntoConstraints = false - let window = UIApplication.sharedApplication().windows[0] + let window = UIApplication.shared.windows[0] window.addSubview(uiStackView) window.addSubview(tzStackView) @@ -69,10 +66,10 @@ class TZStackViewTestCase: XCTestCase { } // To override in subclass - func configureStackViews(uiStackView: UIStackView, _ tzStackView: TZStackView) { + func configureStackViews(_ uiStackView: UIStackView, _ tzStackView: TZStackView) { } - func verifyConstraints(log log: Bool = false) { + func verifyConstraints(log: Bool = false) { // Force constraints to be created uiStackView.layoutIfNeeded() tzStackView.layoutIfNeeded() @@ -83,7 +80,7 @@ class TZStackViewTestCase: XCTestCase { // Assert same constraints are created assertSameConstraints(uiStackView.constraints, tzStackView.constraints) - for (index, uiArrangedSubview) in uiStackView.arrangedSubviews.enumerate() { + for (index, uiArrangedSubview) in uiStackView.arrangedSubviews.enumerated() { let tzArrangedSubview = tzStackView.arrangedSubviews[index] let uiConstraints = nonContentSizeLayoutConstraints(uiArrangedSubview) @@ -94,17 +91,17 @@ class TZStackViewTestCase: XCTestCase { } } - private func nonContentSizeLayoutConstraints(view: UIView) -> [NSLayoutConstraint] { - return view.constraints.filter({ "\($0.dynamicType)" != "NSContentSizeLayoutConstraint" }) + fileprivate func nonContentSizeLayoutConstraints(_ view: UIView) -> [NSLayoutConstraint] { + return view.constraints.filter({ "\(type(of: $0))" != "NSContentSizeLayoutConstraint" }) } - func assertSameConstraints(uiConstraints: [NSLayoutConstraint], _ tzConstraints: [NSLayoutConstraint]) { + func assertSameConstraints(_ uiConstraints: [NSLayoutConstraint], _ tzConstraints: [NSLayoutConstraint]) { XCTAssertEqual(uiConstraints.count, tzConstraints.count, "Number of constraints") if uiConstraints.count != tzConstraints.count { return } - for (index, uiConstraint) in uiConstraints.enumerate() { + for (index, uiConstraint) in uiConstraints.enumerated() { let tzConstraint = tzConstraints[index] let result = hasSameConstraintMetaData(uiConstraint, tzConstraint) @@ -114,7 +111,7 @@ class TZStackViewTestCase: XCTestCase { } } - private func hasSameConstraintMetaData(layoutConstraint1: NSLayoutConstraint, _ layoutConstraint2: NSLayoutConstraint) -> Bool { + fileprivate func hasSameConstraintMetaData(_ layoutConstraint1: NSLayoutConstraint, _ layoutConstraint2: NSLayoutConstraint) -> Bool { if layoutConstraint1.constant != layoutConstraint2.constant { return false } @@ -130,7 +127,7 @@ class TZStackViewTestCase: XCTestCase { return true } - private func isSameConstraint(layoutConstraint1: NSLayoutConstraint, _ layoutConstraint2: NSLayoutConstraint) -> Bool { + fileprivate func isSameConstraint(_ layoutConstraint1: NSLayoutConstraint, _ layoutConstraint2: NSLayoutConstraint) -> Bool { if !viewsEqual(layoutConstraint1.firstItem, layoutConstraint2.firstItem) { return false } @@ -146,7 +143,7 @@ class TZStackViewTestCase: XCTestCase { return true } - private func isSameConstraintFlipped(layoutConstraint1: NSLayoutConstraint, _ layoutConstraint2: NSLayoutConstraint) -> Bool { + fileprivate func isSameConstraintFlipped(_ layoutConstraint1: NSLayoutConstraint, _ layoutConstraint2: NSLayoutConstraint) -> Bool { if !viewsEqual(layoutConstraint1.firstItem, layoutConstraint2.secondItem) { return false } @@ -162,17 +159,17 @@ class TZStackViewTestCase: XCTestCase { return true } - private func printConstraints(constraints: [NSLayoutConstraint]) { + fileprivate func printConstraints(_ constraints: [NSLayoutConstraint]) { for constraint in constraints { print(constraint.readableString()) } } - private func viewsEqual(object1: AnyObject?, _ object2: AnyObject?) -> Bool { + fileprivate func viewsEqual(_ object1: AnyObject?, _ object2: AnyObject?) -> Bool { if object1 == nil && object2 == nil { return true } - if let view1 = object1 as? UIView, view2 = object2 as? UIView where view1 == view2 { + if let view1 = object1 as? UIView, let view2 = object2 as? UIView , view1 == view2 { return true } if object1 is UIStackView && object2 is TZStackView { @@ -192,8 +189,8 @@ class TZStackViewTestCase: XCTestCase { return false } - func assertSameOrder(uiTestViews: [TestView], _ tzTestViews: [TestView]) { - for (index, uiTestView) in uiTestViews.enumerate() { + func assertSameOrder(_ uiTestViews: [TestView], _ tzTestViews: [TestView]) { + for (index, uiTestView) in uiTestViews.enumerated() { let tzTestView = tzTestViews[index] let result = uiTestView.index == tzTestView.index @@ -216,4 +213,4 @@ class TZStackViewTestCase: XCTestCase { XCTAssertTrue(result, "\(tzTestView.description) is in arranged subviews but is not actually a subview") } } -} \ No newline at end of file +} diff --git a/TZStackViewTests/TZStackViewTests.swift b/TZStackViewTests/TZStackViewTests.swift index 0d099c8..f6feae4 100644 --- a/TZStackViewTests/TZStackViewTests.swift +++ b/TZStackViewTests/TZStackViewTests.swift @@ -27,16 +27,16 @@ class TZStackViewTests: TZStackViewTestCase { } // Be careful to configure the same thing on the UIStackView as on the TZStackView, otherwise the test is unfair - override func configureStackViews(uiStackView: UIStackView, _ tzStackView: TZStackView) { - uiStackView.layoutMarginsRelativeArrangement = false + override func configureStackViews(_ uiStackView: UIStackView, _ tzStackView: TZStackView) { + uiStackView.isLayoutMarginsRelativeArrangement = false tzStackView.layoutMarginsRelativeArrangement = false } func testFillHorizontalFillEqually() { - uiStackView.axis = .Horizontal - uiStackView.distribution = .FillEqually - uiStackView.alignment = .Fill - tzStackView.axis = .Horizontal + uiStackView.axis = .horizontal + uiStackView.distribution = .fillEqually + uiStackView.alignment = .fill + tzStackView.axis = .horizontal tzStackView.distribution = .FillEqually tzStackView.alignment = .Fill @@ -47,10 +47,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testFillVerticalFillEqually() { - uiStackView.axis = .Vertical - uiStackView.distribution = .FillEqually - uiStackView.alignment = .Fill - tzStackView.axis = .Vertical + uiStackView.axis = .vertical + uiStackView.distribution = .fillEqually + uiStackView.alignment = .fill + tzStackView.axis = .vertical tzStackView.distribution = .FillEqually tzStackView.alignment = .Fill @@ -61,10 +61,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testFillHorizontalFill() { - uiStackView.axis = .Horizontal - uiStackView.distribution = .Fill - uiStackView.alignment = .Fill - tzStackView.axis = .Horizontal + uiStackView.axis = .horizontal + uiStackView.distribution = .fill + uiStackView.alignment = .fill + tzStackView.axis = .horizontal tzStackView.distribution = .Fill tzStackView.alignment = .Fill @@ -75,10 +75,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testFillVerticalFill() { - uiStackView.axis = .Vertical - uiStackView.distribution = .Fill - uiStackView.alignment = .Fill - tzStackView.axis = .Vertical + uiStackView.axis = .vertical + uiStackView.distribution = .fill + uiStackView.alignment = .fill + tzStackView.axis = .vertical tzStackView.distribution = .Fill tzStackView.alignment = .Fill @@ -89,10 +89,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testFillHorizontalFillProportionally() { - uiStackView.axis = .Horizontal - uiStackView.distribution = .FillProportionally - uiStackView.alignment = .Fill - tzStackView.axis = .Horizontal + uiStackView.axis = .horizontal + uiStackView.distribution = .fillProportionally + uiStackView.alignment = .fill + tzStackView.axis = .horizontal tzStackView.distribution = .FillProportionally tzStackView.alignment = .Fill @@ -103,10 +103,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testFillVerticalFillProportionally() { - uiStackView.axis = .Vertical - uiStackView.distribution = .FillProportionally - uiStackView.alignment = .Fill - tzStackView.axis = .Vertical + uiStackView.axis = .vertical + uiStackView.distribution = .fillProportionally + uiStackView.alignment = .fill + tzStackView.axis = .vertical tzStackView.distribution = .FillProportionally tzStackView.alignment = .Fill @@ -117,10 +117,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testFillHorizontalEqualSpacing() { - uiStackView.axis = .Horizontal - uiStackView.distribution = .EqualSpacing - uiStackView.alignment = .Fill - tzStackView.axis = .Horizontal + uiStackView.axis = .horizontal + uiStackView.distribution = .equalSpacing + uiStackView.alignment = .fill + tzStackView.axis = .horizontal tzStackView.distribution = .EqualSpacing tzStackView.alignment = .Fill @@ -131,10 +131,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testFillVerticalEqualSpacing() { - uiStackView.axis = .Vertical - uiStackView.distribution = .EqualSpacing - uiStackView.alignment = .Fill - tzStackView.axis = .Vertical + uiStackView.axis = .vertical + uiStackView.distribution = .equalSpacing + uiStackView.alignment = .fill + tzStackView.axis = .vertical tzStackView.distribution = .EqualSpacing tzStackView.alignment = .Fill @@ -145,10 +145,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testFillHorizontalEqualCentering() { - uiStackView.axis = .Horizontal - uiStackView.distribution = .EqualCentering - uiStackView.alignment = .Fill - tzStackView.axis = .Horizontal + uiStackView.axis = .horizontal + uiStackView.distribution = .equalCentering + uiStackView.alignment = .fill + tzStackView.axis = .horizontal tzStackView.distribution = .EqualCentering tzStackView.alignment = .Fill @@ -159,10 +159,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testFillVerticalEqualCentering() { - uiStackView.axis = .Vertical - uiStackView.distribution = .EqualCentering - uiStackView.alignment = .Fill - tzStackView.axis = .Vertical + uiStackView.axis = .vertical + uiStackView.distribution = .equalCentering + uiStackView.alignment = .fill + tzStackView.axis = .vertical tzStackView.distribution = .EqualCentering tzStackView.alignment = .Fill @@ -173,10 +173,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testCenterHorizontalFillEqually() { - uiStackView.axis = .Horizontal - uiStackView.distribution = .FillEqually - uiStackView.alignment = .Center - tzStackView.axis = .Horizontal + uiStackView.axis = .horizontal + uiStackView.distribution = .fillEqually + uiStackView.alignment = .center + tzStackView.axis = .horizontal tzStackView.distribution = .FillEqually tzStackView.alignment = .Center @@ -187,10 +187,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testCenterVerticalFillEqually() { - uiStackView.axis = .Vertical - uiStackView.distribution = .FillEqually - uiStackView.alignment = .Center - tzStackView.axis = .Vertical + uiStackView.axis = .vertical + uiStackView.distribution = .fillEqually + uiStackView.alignment = .center + tzStackView.axis = .vertical tzStackView.distribution = .FillEqually tzStackView.alignment = .Center @@ -201,10 +201,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testCenterHorizontalFill() { - uiStackView.axis = .Horizontal - uiStackView.distribution = .Fill - uiStackView.alignment = .Center - tzStackView.axis = .Horizontal + uiStackView.axis = .horizontal + uiStackView.distribution = .fill + uiStackView.alignment = .center + tzStackView.axis = .horizontal tzStackView.distribution = .Fill tzStackView.alignment = .Center @@ -215,10 +215,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testCenterVerticalFill() { - uiStackView.axis = .Vertical - uiStackView.distribution = .Fill - uiStackView.alignment = .Center - tzStackView.axis = .Vertical + uiStackView.axis = .vertical + uiStackView.distribution = .fill + uiStackView.alignment = .center + tzStackView.axis = .vertical tzStackView.distribution = .Fill tzStackView.alignment = .Center @@ -229,10 +229,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testCenterHorizontalFillProportionally() { - uiStackView.axis = .Horizontal - uiStackView.distribution = .FillProportionally - uiStackView.alignment = .Center - tzStackView.axis = .Horizontal + uiStackView.axis = .horizontal + uiStackView.distribution = .fillProportionally + uiStackView.alignment = .center + tzStackView.axis = .horizontal tzStackView.distribution = .FillProportionally tzStackView.alignment = .Center @@ -243,10 +243,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testCenterVetricalFillProportionally() { - uiStackView.axis = .Vertical - uiStackView.distribution = .FillProportionally - uiStackView.alignment = .Center - tzStackView.axis = .Vertical + uiStackView.axis = .vertical + uiStackView.distribution = .fillProportionally + uiStackView.alignment = .center + tzStackView.axis = .vertical tzStackView.distribution = .FillProportionally tzStackView.alignment = .Center @@ -257,10 +257,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testCenterHorizontalEqualSpacing() { - uiStackView.axis = .Horizontal - uiStackView.distribution = .EqualSpacing - uiStackView.alignment = .Center - tzStackView.axis = .Horizontal + uiStackView.axis = .horizontal + uiStackView.distribution = .equalSpacing + uiStackView.alignment = .center + tzStackView.axis = .horizontal tzStackView.distribution = .EqualSpacing tzStackView.alignment = .Center @@ -271,10 +271,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testCenterVerticalEqualSpacing() { - uiStackView.axis = .Vertical - uiStackView.distribution = .EqualSpacing - uiStackView.alignment = .Center - tzStackView.axis = .Vertical + uiStackView.axis = .vertical + uiStackView.distribution = .equalSpacing + uiStackView.alignment = .center + tzStackView.axis = .vertical tzStackView.distribution = .EqualSpacing tzStackView.alignment = .Center @@ -285,10 +285,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testCenterHorizontalEqualCentering() { - uiStackView.axis = .Horizontal - uiStackView.distribution = .EqualCentering - uiStackView.alignment = .Center - tzStackView.axis = .Horizontal + uiStackView.axis = .horizontal + uiStackView.distribution = .equalCentering + uiStackView.alignment = .center + tzStackView.axis = .horizontal tzStackView.distribution = .EqualCentering tzStackView.alignment = .Center @@ -299,10 +299,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testCenterVerticalEqualCentering() { - uiStackView.axis = .Vertical - uiStackView.distribution = .EqualCentering - uiStackView.alignment = .Center - tzStackView.axis = .Vertical + uiStackView.axis = .vertical + uiStackView.distribution = .equalCentering + uiStackView.alignment = .center + tzStackView.axis = .vertical tzStackView.distribution = .EqualCentering tzStackView.alignment = .Center @@ -313,10 +313,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testLeadingHorizontalFillEqually() { - uiStackView.axis = .Horizontal - uiStackView.distribution = .FillEqually - uiStackView.alignment = .Leading - tzStackView.axis = .Horizontal + uiStackView.axis = .horizontal + uiStackView.distribution = .fillEqually + uiStackView.alignment = .leading + tzStackView.axis = .horizontal tzStackView.distribution = .FillEqually tzStackView.alignment = .Leading @@ -327,10 +327,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testLeadingHorizontalFill() { - uiStackView.axis = .Horizontal - uiStackView.distribution = .Fill - uiStackView.alignment = .Leading - tzStackView.axis = .Horizontal + uiStackView.axis = .horizontal + uiStackView.distribution = .fill + uiStackView.alignment = .leading + tzStackView.axis = .horizontal tzStackView.distribution = .Fill tzStackView.alignment = .Leading @@ -341,10 +341,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testLeadingHorizontalFillProportionally() { - uiStackView.axis = .Horizontal - uiStackView.distribution = .FillProportionally - uiStackView.alignment = .Leading - tzStackView.axis = .Horizontal + uiStackView.axis = .horizontal + uiStackView.distribution = .fillProportionally + uiStackView.alignment = .leading + tzStackView.axis = .horizontal tzStackView.distribution = .FillProportionally tzStackView.alignment = .Leading @@ -355,10 +355,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testLeadingHorizontalEqualSpacing() { - uiStackView.axis = .Horizontal - uiStackView.distribution = .EqualSpacing - uiStackView.alignment = .Leading - tzStackView.axis = .Horizontal + uiStackView.axis = .horizontal + uiStackView.distribution = .equalSpacing + uiStackView.alignment = .leading + tzStackView.axis = .horizontal tzStackView.distribution = .EqualSpacing tzStackView.alignment = .Leading @@ -369,10 +369,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testLeadingHorizontalEqualCentering() { - uiStackView.axis = .Horizontal - uiStackView.distribution = .EqualCentering - uiStackView.alignment = .Leading - tzStackView.axis = .Horizontal + uiStackView.axis = .horizontal + uiStackView.distribution = .equalCentering + uiStackView.alignment = .leading + tzStackView.axis = .horizontal tzStackView.distribution = .EqualCentering tzStackView.alignment = .Leading @@ -383,10 +383,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testLeadingVerticalFillEqually() { - uiStackView.axis = .Vertical - uiStackView.distribution = .FillEqually - uiStackView.alignment = .Leading - tzStackView.axis = .Vertical + uiStackView.axis = .vertical + uiStackView.distribution = .fillEqually + uiStackView.alignment = .leading + tzStackView.axis = .vertical tzStackView.distribution = .FillEqually tzStackView.alignment = .Leading @@ -397,10 +397,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testLeadingVerticalFill() { - uiStackView.axis = .Vertical - uiStackView.distribution = .Fill - uiStackView.alignment = .Leading - tzStackView.axis = .Vertical + uiStackView.axis = .vertical + uiStackView.distribution = .fill + uiStackView.alignment = .leading + tzStackView.axis = .vertical tzStackView.distribution = .Fill tzStackView.alignment = .Leading @@ -411,10 +411,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testLeadingVerticalFillProportionally() { - uiStackView.axis = .Vertical - uiStackView.distribution = .FillProportionally - uiStackView.alignment = .Leading - tzStackView.axis = .Vertical + uiStackView.axis = .vertical + uiStackView.distribution = .fillProportionally + uiStackView.alignment = .leading + tzStackView.axis = .vertical tzStackView.distribution = .FillProportionally tzStackView.alignment = .Leading @@ -425,10 +425,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testLeadingVerticalEqualSpacing() { - uiStackView.axis = .Vertical - uiStackView.distribution = .EqualSpacing - uiStackView.alignment = .Leading - tzStackView.axis = .Vertical + uiStackView.axis = .vertical + uiStackView.distribution = .equalSpacing + uiStackView.alignment = .leading + tzStackView.axis = .vertical tzStackView.distribution = .EqualSpacing tzStackView.alignment = .Leading @@ -439,10 +439,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testLeadingVerticalEqualCentering() { - uiStackView.axis = .Vertical - uiStackView.distribution = .EqualCentering - uiStackView.alignment = .Leading - tzStackView.axis = .Vertical + uiStackView.axis = .vertical + uiStackView.distribution = .equalCentering + uiStackView.alignment = .leading + tzStackView.axis = .vertical tzStackView.distribution = .EqualCentering tzStackView.alignment = .Leading @@ -453,10 +453,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testTopHorizontalFillEqually() { - uiStackView.axis = .Horizontal - uiStackView.distribution = .FillEqually - uiStackView.alignment = .Top - tzStackView.axis = .Horizontal + uiStackView.axis = .horizontal + uiStackView.distribution = .fillEqually + uiStackView.alignment = .top + tzStackView.axis = .horizontal tzStackView.distribution = .FillEqually tzStackView.alignment = .Top @@ -467,10 +467,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testTopHorizontalFill() { - uiStackView.axis = .Horizontal - uiStackView.distribution = .Fill - uiStackView.alignment = .Top - tzStackView.axis = .Horizontal + uiStackView.axis = .horizontal + uiStackView.distribution = .fill + uiStackView.alignment = .top + tzStackView.axis = .horizontal tzStackView.distribution = .Fill tzStackView.alignment = .Top @@ -481,10 +481,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testTopHorizontalFillProportionally() { - uiStackView.axis = .Horizontal - uiStackView.distribution = .FillProportionally - uiStackView.alignment = .Top - tzStackView.axis = .Horizontal + uiStackView.axis = .horizontal + uiStackView.distribution = .fillProportionally + uiStackView.alignment = .top + tzStackView.axis = .horizontal tzStackView.distribution = .FillProportionally tzStackView.alignment = .Top @@ -495,10 +495,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testTopHorizontalEqualSpacing() { - uiStackView.axis = .Horizontal - uiStackView.distribution = .EqualSpacing - uiStackView.alignment = .Top - tzStackView.axis = .Horizontal + uiStackView.axis = .horizontal + uiStackView.distribution = .equalSpacing + uiStackView.alignment = .top + tzStackView.axis = .horizontal tzStackView.distribution = .EqualSpacing tzStackView.alignment = .Top @@ -509,10 +509,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testTopHorizontalEqualCentering() { - uiStackView.axis = .Horizontal - uiStackView.distribution = .EqualCentering - uiStackView.alignment = .Top - tzStackView.axis = .Horizontal + uiStackView.axis = .horizontal + uiStackView.distribution = .equalCentering + uiStackView.alignment = .top + tzStackView.axis = .horizontal tzStackView.distribution = .EqualCentering tzStackView.alignment = .Top @@ -523,10 +523,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testTopHVerticalFillEqually() { - uiStackView.axis = .Vertical - uiStackView.distribution = .FillEqually - uiStackView.alignment = .Top - tzStackView.axis = .Vertical + uiStackView.axis = .vertical + uiStackView.distribution = .fillEqually + uiStackView.alignment = .top + tzStackView.axis = .vertical tzStackView.distribution = .FillEqually tzStackView.alignment = .Top @@ -537,10 +537,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testTopVerticalFill() { - uiStackView.axis = .Vertical - uiStackView.distribution = .Fill - uiStackView.alignment = .Top - tzStackView.axis = .Vertical + uiStackView.axis = .vertical + uiStackView.distribution = .fill + uiStackView.alignment = .top + tzStackView.axis = .vertical tzStackView.distribution = .Fill tzStackView.alignment = .Top @@ -551,10 +551,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testTopVerticalFillProportionally() { - uiStackView.axis = .Vertical - uiStackView.distribution = .FillProportionally - uiStackView.alignment = .Top - tzStackView.axis = .Vertical + uiStackView.axis = .vertical + uiStackView.distribution = .fillProportionally + uiStackView.alignment = .top + tzStackView.axis = .vertical tzStackView.distribution = .FillProportionally tzStackView.alignment = .Top @@ -565,10 +565,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testTopVerticalEqualSpacing() { - uiStackView.axis = .Vertical - uiStackView.distribution = .EqualSpacing - uiStackView.alignment = .Top - tzStackView.axis = .Vertical + uiStackView.axis = .vertical + uiStackView.distribution = .equalSpacing + uiStackView.alignment = .top + tzStackView.axis = .vertical tzStackView.distribution = .EqualSpacing tzStackView.alignment = .Top @@ -579,10 +579,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testTopVerticalEqualCentering() { - uiStackView.axis = .Vertical - uiStackView.distribution = .EqualCentering - uiStackView.alignment = .Top - tzStackView.axis = .Vertical + uiStackView.axis = .vertical + uiStackView.distribution = .equalCentering + uiStackView.alignment = .top + tzStackView.axis = .vertical tzStackView.distribution = .EqualCentering tzStackView.alignment = .Top @@ -593,10 +593,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testTrailingHorizontalFillEqually() { - uiStackView.axis = .Horizontal - uiStackView.distribution = .FillEqually - uiStackView.alignment = .Trailing - tzStackView.axis = .Horizontal + uiStackView.axis = .horizontal + uiStackView.distribution = .fillEqually + uiStackView.alignment = .trailing + tzStackView.axis = .horizontal tzStackView.distribution = .FillEqually tzStackView.alignment = .Trailing @@ -607,10 +607,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testTrailingHorizontalFill() { - uiStackView.axis = .Horizontal - uiStackView.distribution = .Fill - uiStackView.alignment = .Trailing - tzStackView.axis = .Horizontal + uiStackView.axis = .horizontal + uiStackView.distribution = .fill + uiStackView.alignment = .trailing + tzStackView.axis = .horizontal tzStackView.distribution = .Fill tzStackView.alignment = .Trailing @@ -621,10 +621,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testTrailingHorizontalFillProportionally() { - uiStackView.axis = .Horizontal - uiStackView.distribution = .FillProportionally - uiStackView.alignment = .Trailing - tzStackView.axis = .Horizontal + uiStackView.axis = .horizontal + uiStackView.distribution = .fillProportionally + uiStackView.alignment = .trailing + tzStackView.axis = .horizontal tzStackView.distribution = .FillProportionally tzStackView.alignment = .Trailing @@ -635,10 +635,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testTrailingHorizontalEqualSpacing() { - uiStackView.axis = .Horizontal - uiStackView.distribution = .EqualSpacing - uiStackView.alignment = .Trailing - tzStackView.axis = .Horizontal + uiStackView.axis = .horizontal + uiStackView.distribution = .equalSpacing + uiStackView.alignment = .trailing + tzStackView.axis = .horizontal tzStackView.distribution = .EqualSpacing tzStackView.alignment = .Trailing @@ -649,10 +649,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testTrailingHorizontalEqualCentering() { - uiStackView.axis = .Horizontal - uiStackView.distribution = .EqualCentering - uiStackView.alignment = .Trailing - tzStackView.axis = .Horizontal + uiStackView.axis = .horizontal + uiStackView.distribution = .equalCentering + uiStackView.alignment = .trailing + tzStackView.axis = .horizontal tzStackView.distribution = .EqualCentering tzStackView.alignment = .Trailing @@ -663,10 +663,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testTrailingVerticalFillEqually() { - uiStackView.axis = .Vertical - uiStackView.distribution = .FillEqually - uiStackView.alignment = .Trailing - tzStackView.axis = .Vertical + uiStackView.axis = .vertical + uiStackView.distribution = .fillEqually + uiStackView.alignment = .trailing + tzStackView.axis = .vertical tzStackView.distribution = .FillEqually tzStackView.alignment = .Trailing @@ -677,10 +677,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testTrailingVerticalFill() { - uiStackView.axis = .Vertical - uiStackView.distribution = .Fill - uiStackView.alignment = .Trailing - tzStackView.axis = .Vertical + uiStackView.axis = .vertical + uiStackView.distribution = .fill + uiStackView.alignment = .trailing + tzStackView.axis = .vertical tzStackView.distribution = .Fill tzStackView.alignment = .Trailing @@ -691,10 +691,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testTrailingVerticalFillProportionally() { - uiStackView.axis = .Vertical - uiStackView.distribution = .FillProportionally - uiStackView.alignment = .Trailing - tzStackView.axis = .Vertical + uiStackView.axis = .vertical + uiStackView.distribution = .fillProportionally + uiStackView.alignment = .trailing + tzStackView.axis = .vertical tzStackView.distribution = .FillProportionally tzStackView.alignment = .Trailing @@ -705,10 +705,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testTrailingVerticalEqualSpacing() { - uiStackView.axis = .Vertical - uiStackView.distribution = .EqualSpacing - uiStackView.alignment = .Trailing - tzStackView.axis = .Vertical + uiStackView.axis = .vertical + uiStackView.distribution = .equalSpacing + uiStackView.alignment = .trailing + tzStackView.axis = .vertical tzStackView.distribution = .EqualSpacing tzStackView.alignment = .Trailing @@ -719,10 +719,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testTrailingVerticalEqualCentering() { - uiStackView.axis = .Vertical - uiStackView.distribution = .EqualCentering - uiStackView.alignment = .Trailing - tzStackView.axis = .Vertical + uiStackView.axis = .vertical + uiStackView.distribution = .equalCentering + uiStackView.alignment = .trailing + tzStackView.axis = .vertical tzStackView.distribution = .EqualCentering tzStackView.alignment = .Trailing @@ -733,10 +733,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testBottomHorizontalFillEqually() { - uiStackView.axis = .Horizontal - uiStackView.distribution = .FillEqually - uiStackView.alignment = .Bottom - tzStackView.axis = .Horizontal + uiStackView.axis = .horizontal + uiStackView.distribution = .fillEqually + uiStackView.alignment = .bottom + tzStackView.axis = .horizontal tzStackView.distribution = .FillEqually tzStackView.alignment = .Bottom @@ -747,10 +747,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testBottomHorizontalFill() { - uiStackView.axis = .Horizontal - uiStackView.distribution = .Fill - uiStackView.alignment = .Bottom - tzStackView.axis = .Horizontal + uiStackView.axis = .horizontal + uiStackView.distribution = .fill + uiStackView.alignment = .bottom + tzStackView.axis = .horizontal tzStackView.distribution = .Fill tzStackView.alignment = .Bottom @@ -761,10 +761,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testBottomHorizontalFillProportionally() { - uiStackView.axis = .Horizontal - uiStackView.distribution = .FillProportionally - uiStackView.alignment = .Bottom - tzStackView.axis = .Horizontal + uiStackView.axis = .horizontal + uiStackView.distribution = .fillProportionally + uiStackView.alignment = .bottom + tzStackView.axis = .horizontal tzStackView.distribution = .FillProportionally tzStackView.alignment = .Bottom @@ -775,10 +775,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testBottomHorizontalEqualSpacing() { - uiStackView.axis = .Horizontal - uiStackView.distribution = .EqualSpacing - uiStackView.alignment = .Bottom - tzStackView.axis = .Horizontal + uiStackView.axis = .horizontal + uiStackView.distribution = .equalSpacing + uiStackView.alignment = .bottom + tzStackView.axis = .horizontal tzStackView.distribution = .EqualSpacing tzStackView.alignment = .Bottom @@ -789,10 +789,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testBottomHorizontalEqualCentering() { - uiStackView.axis = .Horizontal - uiStackView.distribution = .EqualCentering - uiStackView.alignment = .Bottom - tzStackView.axis = .Horizontal + uiStackView.axis = .horizontal + uiStackView.distribution = .equalCentering + uiStackView.alignment = .bottom + tzStackView.axis = .horizontal tzStackView.distribution = .EqualCentering tzStackView.alignment = .Bottom @@ -803,10 +803,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testBottomVerticalFillEqually() { - uiStackView.axis = .Vertical - uiStackView.distribution = .FillEqually - uiStackView.alignment = .Bottom - tzStackView.axis = .Vertical + uiStackView.axis = .vertical + uiStackView.distribution = .fillEqually + uiStackView.alignment = .bottom + tzStackView.axis = .vertical tzStackView.distribution = .FillEqually tzStackView.alignment = .Bottom @@ -817,10 +817,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testBottomVerticalFill() { - uiStackView.axis = .Vertical - uiStackView.distribution = .Fill - uiStackView.alignment = .Bottom - tzStackView.axis = .Vertical + uiStackView.axis = .vertical + uiStackView.distribution = .fill + uiStackView.alignment = .bottom + tzStackView.axis = .vertical tzStackView.distribution = .Fill tzStackView.alignment = .Bottom @@ -831,10 +831,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testBottomVerticalFillProportionally() { - uiStackView.axis = .Vertical - uiStackView.distribution = .FillProportionally - uiStackView.alignment = .Bottom - tzStackView.axis = .Vertical + uiStackView.axis = .vertical + uiStackView.distribution = .fillProportionally + uiStackView.alignment = .bottom + tzStackView.axis = .vertical tzStackView.distribution = .FillProportionally tzStackView.alignment = .Bottom @@ -845,10 +845,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testBottomVerticalEqualSpacing() { - uiStackView.axis = .Vertical - uiStackView.distribution = .EqualSpacing - uiStackView.alignment = .Bottom - tzStackView.axis = .Vertical + uiStackView.axis = .vertical + uiStackView.distribution = .equalSpacing + uiStackView.alignment = .bottom + tzStackView.axis = .vertical tzStackView.distribution = .EqualSpacing tzStackView.alignment = .Bottom @@ -859,10 +859,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testBottomVerticalEqualCentering() { - uiStackView.axis = .Vertical - uiStackView.distribution = .EqualCentering - uiStackView.alignment = .Bottom - tzStackView.axis = .Vertical + uiStackView.axis = .vertical + uiStackView.distribution = .equalCentering + uiStackView.alignment = .bottom + tzStackView.axis = .vertical tzStackView.distribution = .EqualCentering tzStackView.alignment = .Bottom @@ -873,10 +873,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testFirstBaselineHorizontalFillEqually() { - uiStackView.axis = .Horizontal - uiStackView.distribution = .FillEqually - uiStackView.alignment = .FirstBaseline - tzStackView.axis = .Horizontal + uiStackView.axis = .horizontal + uiStackView.distribution = .fillEqually + uiStackView.alignment = .firstBaseline + tzStackView.axis = .horizontal tzStackView.distribution = .FillEqually tzStackView.alignment = .FirstBaseline @@ -887,10 +887,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testFirstBaselineHorizontalFill() { - uiStackView.axis = .Horizontal - uiStackView.distribution = .Fill - uiStackView.alignment = .FirstBaseline - tzStackView.axis = .Horizontal + uiStackView.axis = .horizontal + uiStackView.distribution = .fill + uiStackView.alignment = .firstBaseline + tzStackView.axis = .horizontal tzStackView.distribution = .Fill tzStackView.alignment = .FirstBaseline @@ -901,10 +901,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testFirstBaselineHorizontalFillProportionally() { - uiStackView.axis = .Horizontal - uiStackView.distribution = .FillProportionally - uiStackView.alignment = .FirstBaseline - tzStackView.axis = .Horizontal + uiStackView.axis = .horizontal + uiStackView.distribution = .fillProportionally + uiStackView.alignment = .firstBaseline + tzStackView.axis = .horizontal tzStackView.distribution = .FillProportionally tzStackView.alignment = .FirstBaseline @@ -915,10 +915,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testFirstBaselineHorizontalEqualSpacing() { - uiStackView.axis = .Horizontal - uiStackView.distribution = .EqualSpacing - uiStackView.alignment = .FirstBaseline - tzStackView.axis = .Horizontal + uiStackView.axis = .horizontal + uiStackView.distribution = .equalSpacing + uiStackView.alignment = .firstBaseline + tzStackView.axis = .horizontal tzStackView.distribution = .EqualSpacing tzStackView.alignment = .FirstBaseline @@ -929,10 +929,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testFirstBaselineHorizontalEqualCentering() { - uiStackView.axis = .Horizontal - uiStackView.distribution = .EqualCentering - uiStackView.alignment = .FirstBaseline - tzStackView.axis = .Horizontal + uiStackView.axis = .horizontal + uiStackView.distribution = .equalCentering + uiStackView.alignment = .firstBaseline + tzStackView.axis = .horizontal tzStackView.distribution = .EqualCentering tzStackView.alignment = .FirstBaseline @@ -943,10 +943,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testFirstBaselineVerticalFillEqually() { - uiStackView.axis = .Vertical - uiStackView.distribution = .FillEqually - uiStackView.alignment = .FirstBaseline - tzStackView.axis = .Vertical + uiStackView.axis = .vertical + uiStackView.distribution = .fillEqually + uiStackView.alignment = .firstBaseline + tzStackView.axis = .vertical tzStackView.distribution = .FillEqually tzStackView.alignment = .FirstBaseline @@ -958,10 +958,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testFirstBaselineVerticalFill() { - uiStackView.axis = .Vertical - uiStackView.distribution = .Fill - uiStackView.alignment = .FirstBaseline - tzStackView.axis = .Vertical + uiStackView.axis = .vertical + uiStackView.distribution = .fill + uiStackView.alignment = .firstBaseline + tzStackView.axis = .vertical tzStackView.distribution = .Fill tzStackView.alignment = .FirstBaseline @@ -972,10 +972,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testFirstBaselineVerticalFillProportionally() { - uiStackView.axis = .Vertical - uiStackView.distribution = .FillProportionally - uiStackView.alignment = .FirstBaseline - tzStackView.axis = .Vertical + uiStackView.axis = .vertical + uiStackView.distribution = .fillProportionally + uiStackView.alignment = .firstBaseline + tzStackView.axis = .vertical tzStackView.distribution = .FillProportionally tzStackView.alignment = .FirstBaseline @@ -986,10 +986,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testFirstBaselineVerticalEqualSpacing() { - uiStackView.axis = .Vertical - uiStackView.distribution = .EqualSpacing - uiStackView.alignment = .FirstBaseline - tzStackView.axis = .Vertical + uiStackView.axis = .vertical + uiStackView.distribution = .equalSpacing + uiStackView.alignment = .firstBaseline + tzStackView.axis = .vertical tzStackView.distribution = .EqualSpacing tzStackView.alignment = .FirstBaseline @@ -1000,10 +1000,10 @@ class TZStackViewTests: TZStackViewTestCase { } func testFirstBaselineVerticalEqualCentering() { - uiStackView.axis = .Vertical - uiStackView.distribution = .EqualCentering - uiStackView.alignment = .FirstBaseline - tzStackView.axis = .Vertical + uiStackView.axis = .vertical + uiStackView.distribution = .equalCentering + uiStackView.alignment = .firstBaseline + tzStackView.axis = .vertical tzStackView.distribution = .EqualCentering tzStackView.alignment = .FirstBaseline @@ -1027,7 +1027,7 @@ class TZStackViewTests: TZStackViewTestCase { func testConsistencyWhenInsertingArrangedSubview() { let uiTestView = TestView(index: -1, size: CGSize(width: 100, height: 100)) - uiStackView.insertArrangedSubview(uiTestView, atIndex: 0) + uiStackView.insertArrangedSubview(uiTestView, at: 0) let tzTestView = TestView(index: -1, size: CGSize(width: 100, height: 100)) tzStackView.insertArrangedSubview(tzTestView, atIndex: 0) diff --git a/TZStackViewTests/TestView.swift b/TZStackViewTests/TestView.swift index 5d341e0..5c89d1d 100644 --- a/TZStackViewTests/TestView.swift +++ b/TZStackViewTests/TestView.swift @@ -16,7 +16,7 @@ class TestView: UIView { init(index: Int, size: CGSize) { self.index = index self.size = size - super.init(frame: CGRectZero) + super.init(frame: CGRect.zero) } required init(coder aDecoder: NSCoder) { @@ -27,14 +27,14 @@ class TestView: UIView { return "TestView\(index)" } - override func intrinsicContentSize() -> CGSize { + override var intrinsicContentSize : CGSize { return size } } func ==(lhs: NSObject, rhs: NSObject) -> Bool { - if let lhs = lhs as? TestView, rhs = rhs as? TestView { + if let lhs = lhs as? TestView, let rhs = rhs as? TestView { return lhs.index == rhs.index } return lhs === rhs -} \ No newline at end of file +} From 19a4de7527c1e3b41c1d53b6ffbd6b9439825f61 Mon Sep 17 00:00:00 2001 From: Sam McEwan Date: Fri, 9 Sep 2016 09:51:54 +1200 Subject: [PATCH 2/5] bumping podfile --- TZStackView.podspec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/TZStackView.podspec b/TZStackView.podspec index 56e334e..410dde2 100644 --- a/TZStackView.podspec +++ b/TZStackView.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "TZStackView" - s.version = "1.2.0" + s.version = "1.3.0" s.summary = "TZStackView is a replica of iOS 9's new UIStackView for use in iOS 7 and iOS 8" s.homepage = "https://github.com/tomvanzummeren/TZStackView.git" s.license = { :type => "MIT" } @@ -8,6 +8,6 @@ Pod::Spec.new do |s| s.requires_arc = true s.ios.deployment_target = "8.0" - s.source = { :git => "https://github.com/tomvanzummeren/TZStackView.git", :tag => "1.2.0"} + s.source = { :git => "https://github.com/tomvanzummeren/TZStackView.git", :tag => "1.3.0"} s.source_files = "TZStackView/*.swift" end From 0bd99bf71e596b460a6a27c193654f21d3836e00 Mon Sep 17 00:00:00 2001 From: Sam McEwan Date: Fri, 9 Sep 2016 10:20:04 +1200 Subject: [PATCH 3/5] Fixing tests --- TZStackView.xcodeproj/project.pbxproj | 16 +- TZStackViewTests/TZStackViewTests.swift | 280 ++++++++++++------------ 2 files changed, 142 insertions(+), 154 deletions(-) diff --git a/TZStackView.xcodeproj/project.pbxproj b/TZStackView.xcodeproj/project.pbxproj index 490130b..7ac568d 100644 --- a/TZStackView.xcodeproj/project.pbxproj +++ b/TZStackView.xcodeproj/project.pbxproj @@ -418,6 +418,7 @@ ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 3.0; }; name = Debug; }; @@ -457,6 +458,7 @@ MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 3.0; VALIDATE_PRODUCT = YES; }; name = Release; @@ -470,7 +472,6 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "nl.tomvanzummeren.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; }; name = Debug; }; @@ -478,15 +479,10 @@ isa = XCBuildConfiguration; buildSettings = { BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/TZStackViewDemo.app/TZStackViewDemo"; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); INFOPLIST_FILE = TZStackViewTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "nl.tomvanzummeren.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; TEST_HOST = "$(BUNDLE_LOADER)"; }; name = Release; @@ -495,15 +491,10 @@ isa = XCBuildConfiguration; buildSettings = { BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/TZStackViewDemo.app/TZStackViewDemo"; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); INFOPLIST_FILE = TZStackViewTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "nl.tomvanzummeren.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; TEST_HOST = "$(BUNDLE_LOADER)"; }; name = Debug; @@ -517,7 +508,6 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "nl.tomvanzummeren.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; }; name = Release; }; @@ -540,7 +530,6 @@ PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -564,7 +553,6 @@ PRODUCT_BUNDLE_IDENTIFIER = nl.tomvanzummeren.TZStackView; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; diff --git a/TZStackViewTests/TZStackViewTests.swift b/TZStackViewTests/TZStackViewTests.swift index f6feae4..5a518f9 100644 --- a/TZStackViewTests/TZStackViewTests.swift +++ b/TZStackViewTests/TZStackViewTests.swift @@ -37,8 +37,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .fillEqually uiStackView.alignment = .fill tzStackView.axis = .horizontal - tzStackView.distribution = .FillEqually - tzStackView.alignment = .Fill + tzStackView.distribution = .fillEqually + tzStackView.alignment = .fill uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -51,8 +51,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .fillEqually uiStackView.alignment = .fill tzStackView.axis = .vertical - tzStackView.distribution = .FillEqually - tzStackView.alignment = .Fill + tzStackView.distribution = .fillEqually + tzStackView.alignment = .fill uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -65,8 +65,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .fill uiStackView.alignment = .fill tzStackView.axis = .horizontal - tzStackView.distribution = .Fill - tzStackView.alignment = .Fill + tzStackView.distribution = .fill + tzStackView.alignment = .fill uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -79,8 +79,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .fill uiStackView.alignment = .fill tzStackView.axis = .vertical - tzStackView.distribution = .Fill - tzStackView.alignment = .Fill + tzStackView.distribution = .fill + tzStackView.alignment = .fill uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -93,8 +93,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .fillProportionally uiStackView.alignment = .fill tzStackView.axis = .horizontal - tzStackView.distribution = .FillProportionally - tzStackView.alignment = .Fill + tzStackView.distribution = .fillProportionally + tzStackView.alignment = .fill uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -107,8 +107,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .fillProportionally uiStackView.alignment = .fill tzStackView.axis = .vertical - tzStackView.distribution = .FillProportionally - tzStackView.alignment = .Fill + tzStackView.distribution = .fillProportionally + tzStackView.alignment = .fill uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -121,8 +121,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .equalSpacing uiStackView.alignment = .fill tzStackView.axis = .horizontal - tzStackView.distribution = .EqualSpacing - tzStackView.alignment = .Fill + tzStackView.distribution = .equalSpacing + tzStackView.alignment = .fill uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -135,8 +135,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .equalSpacing uiStackView.alignment = .fill tzStackView.axis = .vertical - tzStackView.distribution = .EqualSpacing - tzStackView.alignment = .Fill + tzStackView.distribution = .equalSpacing + tzStackView.alignment = .fill uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -149,8 +149,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .equalCentering uiStackView.alignment = .fill tzStackView.axis = .horizontal - tzStackView.distribution = .EqualCentering - tzStackView.alignment = .Fill + tzStackView.distribution = .equalCentering + tzStackView.alignment = .fill uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -163,8 +163,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .equalCentering uiStackView.alignment = .fill tzStackView.axis = .vertical - tzStackView.distribution = .EqualCentering - tzStackView.alignment = .Fill + tzStackView.distribution = .equalCentering + tzStackView.alignment = .fill uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -177,8 +177,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .fillEqually uiStackView.alignment = .center tzStackView.axis = .horizontal - tzStackView.distribution = .FillEqually - tzStackView.alignment = .Center + tzStackView.distribution = .fillEqually + tzStackView.alignment = .center uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -191,8 +191,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .fillEqually uiStackView.alignment = .center tzStackView.axis = .vertical - tzStackView.distribution = .FillEqually - tzStackView.alignment = .Center + tzStackView.distribution = .fillEqually + tzStackView.alignment = .center uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -205,8 +205,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .fill uiStackView.alignment = .center tzStackView.axis = .horizontal - tzStackView.distribution = .Fill - tzStackView.alignment = .Center + tzStackView.distribution = .fill + tzStackView.alignment = .center uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -219,8 +219,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .fill uiStackView.alignment = .center tzStackView.axis = .vertical - tzStackView.distribution = .Fill - tzStackView.alignment = .Center + tzStackView.distribution = .fill + tzStackView.alignment = .center uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -233,8 +233,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .fillProportionally uiStackView.alignment = .center tzStackView.axis = .horizontal - tzStackView.distribution = .FillProportionally - tzStackView.alignment = .Center + tzStackView.distribution = .fillProportionally + tzStackView.alignment = .center uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -247,8 +247,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .fillProportionally uiStackView.alignment = .center tzStackView.axis = .vertical - tzStackView.distribution = .FillProportionally - tzStackView.alignment = .Center + tzStackView.distribution = .fillProportionally + tzStackView.alignment = .center uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -261,8 +261,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .equalSpacing uiStackView.alignment = .center tzStackView.axis = .horizontal - tzStackView.distribution = .EqualSpacing - tzStackView.alignment = .Center + tzStackView.distribution = .equalSpacing + tzStackView.alignment = .center uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -275,8 +275,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .equalSpacing uiStackView.alignment = .center tzStackView.axis = .vertical - tzStackView.distribution = .EqualSpacing - tzStackView.alignment = .Center + tzStackView.distribution = .equalSpacing + tzStackView.alignment = .center uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -289,8 +289,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .equalCentering uiStackView.alignment = .center tzStackView.axis = .horizontal - tzStackView.distribution = .EqualCentering - tzStackView.alignment = .Center + tzStackView.distribution = .equalCentering + tzStackView.alignment = .center uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -303,8 +303,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .equalCentering uiStackView.alignment = .center tzStackView.axis = .vertical - tzStackView.distribution = .EqualCentering - tzStackView.alignment = .Center + tzStackView.distribution = .equalCentering + tzStackView.alignment = .center uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -317,8 +317,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .fillEqually uiStackView.alignment = .leading tzStackView.axis = .horizontal - tzStackView.distribution = .FillEqually - tzStackView.alignment = .Leading + tzStackView.distribution = .fillEqually + tzStackView.alignment = .leading uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -331,8 +331,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .fill uiStackView.alignment = .leading tzStackView.axis = .horizontal - tzStackView.distribution = .Fill - tzStackView.alignment = .Leading + tzStackView.distribution = .fill + tzStackView.alignment = .leading uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -345,8 +345,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .fillProportionally uiStackView.alignment = .leading tzStackView.axis = .horizontal - tzStackView.distribution = .FillProportionally - tzStackView.alignment = .Leading + tzStackView.distribution = .fillProportionally + tzStackView.alignment = .leading uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -359,8 +359,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .equalSpacing uiStackView.alignment = .leading tzStackView.axis = .horizontal - tzStackView.distribution = .EqualSpacing - tzStackView.alignment = .Leading + tzStackView.distribution = .equalSpacing + tzStackView.alignment = .leading uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -373,8 +373,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .equalCentering uiStackView.alignment = .leading tzStackView.axis = .horizontal - tzStackView.distribution = .EqualCentering - tzStackView.alignment = .Leading + tzStackView.distribution = .equalCentering + tzStackView.alignment = .leading uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -387,8 +387,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .fillEqually uiStackView.alignment = .leading tzStackView.axis = .vertical - tzStackView.distribution = .FillEqually - tzStackView.alignment = .Leading + tzStackView.distribution = .fillEqually + tzStackView.alignment = .leading uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -401,8 +401,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .fill uiStackView.alignment = .leading tzStackView.axis = .vertical - tzStackView.distribution = .Fill - tzStackView.alignment = .Leading + tzStackView.distribution = .fill + tzStackView.alignment = .leading uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -415,8 +415,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .fillProportionally uiStackView.alignment = .leading tzStackView.axis = .vertical - tzStackView.distribution = .FillProportionally - tzStackView.alignment = .Leading + tzStackView.distribution = .fillProportionally + tzStackView.alignment = .leading uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -429,8 +429,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .equalSpacing uiStackView.alignment = .leading tzStackView.axis = .vertical - tzStackView.distribution = .EqualSpacing - tzStackView.alignment = .Leading + tzStackView.distribution = .equalSpacing + tzStackView.alignment = .leading uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -443,8 +443,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .equalCentering uiStackView.alignment = .leading tzStackView.axis = .vertical - tzStackView.distribution = .EqualCentering - tzStackView.alignment = .Leading + tzStackView.distribution = .equalCentering + tzStackView.alignment = .leading uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -457,8 +457,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .fillEqually uiStackView.alignment = .top tzStackView.axis = .horizontal - tzStackView.distribution = .FillEqually - tzStackView.alignment = .Top + tzStackView.distribution = .fillEqually + tzStackView.alignment = .top uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -471,8 +471,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .fill uiStackView.alignment = .top tzStackView.axis = .horizontal - tzStackView.distribution = .Fill - tzStackView.alignment = .Top + tzStackView.distribution = .fill + tzStackView.alignment = .top uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -485,8 +485,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .fillProportionally uiStackView.alignment = .top tzStackView.axis = .horizontal - tzStackView.distribution = .FillProportionally - tzStackView.alignment = .Top + tzStackView.distribution = .fillProportionally + tzStackView.alignment = .top uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -499,8 +499,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .equalSpacing uiStackView.alignment = .top tzStackView.axis = .horizontal - tzStackView.distribution = .EqualSpacing - tzStackView.alignment = .Top + tzStackView.distribution = .equalSpacing + tzStackView.alignment = .top uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -513,8 +513,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .equalCentering uiStackView.alignment = .top tzStackView.axis = .horizontal - tzStackView.distribution = .EqualCentering - tzStackView.alignment = .Top + tzStackView.distribution = .equalCentering + tzStackView.alignment = .top uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -527,8 +527,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .fillEqually uiStackView.alignment = .top tzStackView.axis = .vertical - tzStackView.distribution = .FillEqually - tzStackView.alignment = .Top + tzStackView.distribution = .fillEqually + tzStackView.alignment = .top uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -541,8 +541,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .fill uiStackView.alignment = .top tzStackView.axis = .vertical - tzStackView.distribution = .Fill - tzStackView.alignment = .Top + tzStackView.distribution = .fill + tzStackView.alignment = .top uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -555,8 +555,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .fillProportionally uiStackView.alignment = .top tzStackView.axis = .vertical - tzStackView.distribution = .FillProportionally - tzStackView.alignment = .Top + tzStackView.distribution = .fillProportionally + tzStackView.alignment = .top uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -569,8 +569,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .equalSpacing uiStackView.alignment = .top tzStackView.axis = .vertical - tzStackView.distribution = .EqualSpacing - tzStackView.alignment = .Top + tzStackView.distribution = .equalSpacing + tzStackView.alignment = .top uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -583,8 +583,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .equalCentering uiStackView.alignment = .top tzStackView.axis = .vertical - tzStackView.distribution = .EqualCentering - tzStackView.alignment = .Top + tzStackView.distribution = .equalCentering + tzStackView.alignment = .top uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -597,8 +597,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .fillEqually uiStackView.alignment = .trailing tzStackView.axis = .horizontal - tzStackView.distribution = .FillEqually - tzStackView.alignment = .Trailing + tzStackView.distribution = .fillEqually + tzStackView.alignment = .trailing uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -611,8 +611,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .fill uiStackView.alignment = .trailing tzStackView.axis = .horizontal - tzStackView.distribution = .Fill - tzStackView.alignment = .Trailing + tzStackView.distribution = .fill + tzStackView.alignment = .trailing uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -625,8 +625,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .fillProportionally uiStackView.alignment = .trailing tzStackView.axis = .horizontal - tzStackView.distribution = .FillProportionally - tzStackView.alignment = .Trailing + tzStackView.distribution = .fillProportionally + tzStackView.alignment = .trailing uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -639,8 +639,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .equalSpacing uiStackView.alignment = .trailing tzStackView.axis = .horizontal - tzStackView.distribution = .EqualSpacing - tzStackView.alignment = .Trailing + tzStackView.distribution = .equalSpacing + tzStackView.alignment = .trailing uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -653,8 +653,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .equalCentering uiStackView.alignment = .trailing tzStackView.axis = .horizontal - tzStackView.distribution = .EqualCentering - tzStackView.alignment = .Trailing + tzStackView.distribution = .equalCentering + tzStackView.alignment = .trailing uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -667,8 +667,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .fillEqually uiStackView.alignment = .trailing tzStackView.axis = .vertical - tzStackView.distribution = .FillEqually - tzStackView.alignment = .Trailing + tzStackView.distribution = .fillEqually + tzStackView.alignment = .trailing uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -681,8 +681,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .fill uiStackView.alignment = .trailing tzStackView.axis = .vertical - tzStackView.distribution = .Fill - tzStackView.alignment = .Trailing + tzStackView.distribution = .fill + tzStackView.alignment = .trailing uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -695,8 +695,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .fillProportionally uiStackView.alignment = .trailing tzStackView.axis = .vertical - tzStackView.distribution = .FillProportionally - tzStackView.alignment = .Trailing + tzStackView.distribution = .fillProportionally + tzStackView.alignment = .trailing uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -709,8 +709,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .equalSpacing uiStackView.alignment = .trailing tzStackView.axis = .vertical - tzStackView.distribution = .EqualSpacing - tzStackView.alignment = .Trailing + tzStackView.distribution = .equalSpacing + tzStackView.alignment = .trailing uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -723,8 +723,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .equalCentering uiStackView.alignment = .trailing tzStackView.axis = .vertical - tzStackView.distribution = .EqualCentering - tzStackView.alignment = .Trailing + tzStackView.distribution = .equalCentering + tzStackView.alignment = .trailing uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -737,8 +737,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .fillEqually uiStackView.alignment = .bottom tzStackView.axis = .horizontal - tzStackView.distribution = .FillEqually - tzStackView.alignment = .Bottom + tzStackView.distribution = .fillEqually + tzStackView.alignment = .bottom uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -751,8 +751,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .fill uiStackView.alignment = .bottom tzStackView.axis = .horizontal - tzStackView.distribution = .Fill - tzStackView.alignment = .Bottom + tzStackView.distribution = .fill + tzStackView.alignment = .bottom uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -765,8 +765,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .fillProportionally uiStackView.alignment = .bottom tzStackView.axis = .horizontal - tzStackView.distribution = .FillProportionally - tzStackView.alignment = .Bottom + tzStackView.distribution = .fillProportionally + tzStackView.alignment = .bottom uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -779,8 +779,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .equalSpacing uiStackView.alignment = .bottom tzStackView.axis = .horizontal - tzStackView.distribution = .EqualSpacing - tzStackView.alignment = .Bottom + tzStackView.distribution = .equalSpacing + tzStackView.alignment = .bottom uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -793,8 +793,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .equalCentering uiStackView.alignment = .bottom tzStackView.axis = .horizontal - tzStackView.distribution = .EqualCentering - tzStackView.alignment = .Bottom + tzStackView.distribution = .equalCentering + tzStackView.alignment = .bottom uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -807,8 +807,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .fillEqually uiStackView.alignment = .bottom tzStackView.axis = .vertical - tzStackView.distribution = .FillEqually - tzStackView.alignment = .Bottom + tzStackView.distribution = .fillEqually + tzStackView.alignment = .bottom uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -821,8 +821,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .fill uiStackView.alignment = .bottom tzStackView.axis = .vertical - tzStackView.distribution = .Fill - tzStackView.alignment = .Bottom + tzStackView.distribution = .fill + tzStackView.alignment = .bottom uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -835,8 +835,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .fillProportionally uiStackView.alignment = .bottom tzStackView.axis = .vertical - tzStackView.distribution = .FillProportionally - tzStackView.alignment = .Bottom + tzStackView.distribution = .fillProportionally + tzStackView.alignment = .bottom uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -849,8 +849,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .equalSpacing uiStackView.alignment = .bottom tzStackView.axis = .vertical - tzStackView.distribution = .EqualSpacing - tzStackView.alignment = .Bottom + tzStackView.distribution = .equalSpacing + tzStackView.alignment = .bottom uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -863,8 +863,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .equalCentering uiStackView.alignment = .bottom tzStackView.axis = .vertical - tzStackView.distribution = .EqualCentering - tzStackView.alignment = .Bottom + tzStackView.distribution = .equalCentering + tzStackView.alignment = .bottom uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -877,8 +877,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .fillEqually uiStackView.alignment = .firstBaseline tzStackView.axis = .horizontal - tzStackView.distribution = .FillEqually - tzStackView.alignment = .FirstBaseline + tzStackView.distribution = .fillEqually + tzStackView.alignment = .firstBaseline uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -891,8 +891,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .fill uiStackView.alignment = .firstBaseline tzStackView.axis = .horizontal - tzStackView.distribution = .Fill - tzStackView.alignment = .FirstBaseline + tzStackView.distribution = .fill + tzStackView.alignment = .firstBaseline uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -905,8 +905,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .fillProportionally uiStackView.alignment = .firstBaseline tzStackView.axis = .horizontal - tzStackView.distribution = .FillProportionally - tzStackView.alignment = .FirstBaseline + tzStackView.distribution = .fillProportionally + tzStackView.alignment = .firstBaseline uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -919,8 +919,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .equalSpacing uiStackView.alignment = .firstBaseline tzStackView.axis = .horizontal - tzStackView.distribution = .EqualSpacing - tzStackView.alignment = .FirstBaseline + tzStackView.distribution = .equalSpacing + tzStackView.alignment = .firstBaseline uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -933,8 +933,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .equalCentering uiStackView.alignment = .firstBaseline tzStackView.axis = .horizontal - tzStackView.distribution = .EqualCentering - tzStackView.alignment = .FirstBaseline + tzStackView.distribution = .equalCentering + tzStackView.alignment = .firstBaseline uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -947,8 +947,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .fillEqually uiStackView.alignment = .firstBaseline tzStackView.axis = .vertical - tzStackView.distribution = .FillEqually - tzStackView.alignment = .FirstBaseline + tzStackView.distribution = .fillEqually + tzStackView.alignment = .firstBaseline uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -962,8 +962,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .fill uiStackView.alignment = .firstBaseline tzStackView.axis = .vertical - tzStackView.distribution = .Fill - tzStackView.alignment = .FirstBaseline + tzStackView.distribution = .fill + tzStackView.alignment = .firstBaseline uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -976,8 +976,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .fillProportionally uiStackView.alignment = .firstBaseline tzStackView.axis = .vertical - tzStackView.distribution = .FillProportionally - tzStackView.alignment = .FirstBaseline + tzStackView.distribution = .fillProportionally + tzStackView.alignment = .firstBaseline uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -990,8 +990,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .equalSpacing uiStackView.alignment = .firstBaseline tzStackView.axis = .vertical - tzStackView.distribution = .EqualSpacing - tzStackView.alignment = .FirstBaseline + tzStackView.distribution = .equalSpacing + tzStackView.alignment = .firstBaseline uiStackView.spacing = 10 tzStackView.spacing = 10 @@ -1004,8 +1004,8 @@ class TZStackViewTests: TZStackViewTestCase { uiStackView.distribution = .equalCentering uiStackView.alignment = .firstBaseline tzStackView.axis = .vertical - tzStackView.distribution = .EqualCentering - tzStackView.alignment = .FirstBaseline + tzStackView.distribution = .equalCentering + tzStackView.alignment = .firstBaseline uiStackView.spacing = 10 tzStackView.spacing = 10 From d9464017143221361d52a26eba0a6da5e101e9c8 Mon Sep 17 00:00:00 2001 From: Sam McEwan Date: Fri, 9 Sep 2016 10:25:33 +1200 Subject: [PATCH 4/5] Adding swift version --- TZStackView.xcodeproj/project.pbxproj | 2 ++ 1 file changed, 2 insertions(+) diff --git a/TZStackView.xcodeproj/project.pbxproj b/TZStackView.xcodeproj/project.pbxproj index 7ac568d..2b39c53 100644 --- a/TZStackView.xcodeproj/project.pbxproj +++ b/TZStackView.xcodeproj/project.pbxproj @@ -530,6 +530,7 @@ PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -553,6 +554,7 @@ PRODUCT_BUNDLE_IDENTIFIER = nl.tomvanzummeren.TZStackView; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; + SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; From 85d6600650cbad93e49ea91932d3fc033e9fed53 Mon Sep 17 00:00:00 2001 From: Sam McEwan Date: Sun, 18 Sep 2016 16:52:46 +1200 Subject: [PATCH 5/5] fileprivate -> private --- TZStackView/TZStackView.swift | 44 +++++++++++++++++------------------ 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/TZStackView/TZStackView.swift b/TZStackView/TZStackView.swift index ab3ca1d..3495cd7 100755 --- a/TZStackView/TZStackView.swift +++ b/TZStackView/TZStackView.swift @@ -37,25 +37,25 @@ open class TZStackView: UIView { open var layoutMarginsRelativeArrangement = false - open fileprivate(set) var arrangedSubviews: [UIView] = [] { + open private(set) var arrangedSubviews: [UIView] = [] { didSet { setNeedsUpdateConstraints() registerHiddenListeners(oldValue) } } - fileprivate var kvoContext = UInt8() + private var kvoContext = UInt8() - fileprivate var stackViewConstraints = [NSLayoutConstraint]() - fileprivate var subviewConstraints = [NSLayoutConstraint]() + private var stackViewConstraints = [NSLayoutConstraint]() + private var subviewConstraints = [NSLayoutConstraint]() - fileprivate var spacerViews = [UIView]() + private var spacerViews = [UIView]() - fileprivate var animationDidStopQueueEntries = [TZAnimationDidStopQueueEntry]() + private var animationDidStopQueueEntries = [TZAnimationDidStopQueueEntry]() - fileprivate var registeredKvoSubviews = [UIView]() + private var registeredKvoSubviews = [UIView]() - fileprivate var animatingToHiddenViews = [UIView]() + private var animatingToHiddenViews = [UIView]() public init(arrangedSubviews: [UIView] = []) { super.init(frame: CGRect.zero) @@ -73,7 +73,7 @@ open class TZStackView: UIView { { self.arrangedSubviews = [] }() } - fileprivate func registerHiddenListeners(_ previousArrangedSubviews: [UIView]) { + private func registerHiddenListeners(_ previousArrangedSubviews: [UIView]) { for subview in previousArrangedSubviews { self.removeHiddenListener(subview) } @@ -83,12 +83,12 @@ open class TZStackView: UIView { } } - fileprivate func addHiddenListener(_ view: UIView) { + private func addHiddenListener(_ view: UIView) { view.addObserver(self, forKeyPath: "hidden", options: [.old, .new], context: &kvoContext) registeredKvoSubviews.append(view) } - fileprivate func removeHiddenListener(_ view: UIView) { + private func removeHiddenListener(_ view: UIView) { if let index = registeredKvoSubviews.index(of: view) { view.removeObserver(self, forKeyPath: "hidden", context: &kvoContext) registeredKvoSubviews.remove(at: index) @@ -123,7 +123,7 @@ open class TZStackView: UIView { } } - fileprivate func didFinishSettingHiddenValue(_ arrangedSubview: UIView, hidden: Bool) { + private func didFinishSettingHiddenValue(_ arrangedSubview: UIView, hidden: Bool) { arrangedSubview.isHidden = hidden if let index = animatingToHiddenViews.index(of: arrangedSubview) { animatingToHiddenViews.remove(at: index) @@ -333,7 +333,7 @@ open class TZStackView: UIView { super.init(coder: aDecoder)! } - @discardableResult fileprivate func addSpacerView() -> TZSpacerView { + @discardableResult private func addSpacerView() -> TZSpacerView { let spacerView = TZSpacerView() spacerView.translatesAutoresizingMaskIntoConstraints = false @@ -342,7 +342,7 @@ open class TZStackView: UIView { return spacerView } - fileprivate func createSurroundingSpacerViewConstraints(_ spacerView: UIView, views: [UIView]) -> [NSLayoutConstraint] { + private func createSurroundingSpacerViewConstraints(_ spacerView: UIView, views: [UIView]) -> [NSLayoutConstraint] { if alignment == .fill { return [] } @@ -383,7 +383,7 @@ open class TZStackView: UIView { return constraints } - fileprivate func createFillProportionallyConstraints(_ views: [UIView]) -> [NSLayoutConstraint] { + private func createFillProportionallyConstraints(_ views: [UIView]) -> [NSLayoutConstraint] { var constraints = [NSLayoutConstraint]() var totalSize: CGFloat = 0 @@ -426,7 +426,7 @@ open class TZStackView: UIView { } // Matchs all Width or Height attributes of all given views - fileprivate func createFillEquallyConstraints(_ views: [UIView], priority: Float = 1000) -> [NSLayoutConstraint] { + private func createFillEquallyConstraints(_ views: [UIView], priority: Float = 1000) -> [NSLayoutConstraint] { switch axis { case .horizontal: return equalAttributes(views: views.filter({ !self.isHidden($0) }), attribute: .width, priority: priority) @@ -437,7 +437,7 @@ open class TZStackView: UIView { } // Chains together the given views using Leading/Trailing or Top/Bottom - fileprivate func createFillConstraints(_ views: [UIView], priority: Float = 1000, relatedBy relation: NSLayoutRelation = .equal, constant: CGFloat) -> [NSLayoutConstraint] { + private func createFillConstraints(_ views: [UIView], priority: Float = 1000, relatedBy relation: NSLayoutRelation = .equal, constant: CGFloat) -> [NSLayoutConstraint] { var constraints = [NSLayoutConstraint]() var previousView: UIView? @@ -465,7 +465,7 @@ open class TZStackView: UIView { } // Matches all Bottom/Top or Leading Trailing constraints of te given views and matches those attributes of the first/last view to the container - fileprivate func createMatchEdgesContraints(_ views: [UIView]) -> [NSLayoutConstraint] { + private func createMatchEdgesContraints(_ views: [UIView]) -> [NSLayoutConstraint] { var constraints = [NSLayoutConstraint]() switch axis { @@ -502,7 +502,7 @@ open class TZStackView: UIView { return constraints } - fileprivate func createFirstAndLastViewMatchEdgesContraints() -> [NSLayoutConstraint] { + private func createFirstAndLastViewMatchEdgesContraints() -> [NSLayoutConstraint] { var constraints = [NSLayoutConstraint]() @@ -567,7 +567,7 @@ open class TZStackView: UIView { return constraints } - fileprivate func equalAttributes(views: [UIView], attribute: NSLayoutAttribute, priority: Float = 1000) -> [NSLayoutConstraint] { + private func equalAttributes(views: [UIView], attribute: NSLayoutAttribute, priority: Float = 1000) -> [NSLayoutConstraint] { var currentPriority = priority var constraints = [NSLayoutConstraint]() if views.count > 0 { @@ -590,7 +590,7 @@ open class TZStackView: UIView { } // Convenience method to help make NSLayoutConstraint in a less verbose way - fileprivate func constraint(item view1: AnyObject, attribute attr1: NSLayoutAttribute, relatedBy relation: NSLayoutRelation = .equal, toItem view2: AnyObject?, attribute attr2: NSLayoutAttribute? = nil, multiplier: CGFloat = 1, constant c: CGFloat = 0, priority: Float = 1000) -> NSLayoutConstraint { + private func constraint(item view1: AnyObject, attribute attr1: NSLayoutAttribute, relatedBy relation: NSLayoutRelation = .equal, toItem view2: AnyObject?, attribute attr2: NSLayoutAttribute? = nil, multiplier: CGFloat = 1, constant c: CGFloat = 0, priority: Float = 1000) -> NSLayoutConstraint { let attribute2 = attr2 != nil ? attr2! : attr1 @@ -599,7 +599,7 @@ open class TZStackView: UIView { return constraint } - fileprivate func isHidden(_ view: UIView) -> Bool { + private func isHidden(_ view: UIView) -> Bool { if view.isHidden { return true }