diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index be67984..04a1b02 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -13,14 +13,14 @@ env: # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: test_on_macos: - runs-on: macos-latest + runs-on: macos-14 env: CODECOV_PATH: "./coverage.lcov" steps: # Checks-out the repository under $GITHUB_WORKSPACE, so this job can access it - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Build for macOS run: swift build @@ -38,21 +38,22 @@ jobs: > ${{ env.CODECOV_PATH }} - name: Upload coverage to Codecov - uses: codecov/codecov-action@v2 + uses: codecov/codecov-action@v4 + env: + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} with: - token: ${{ secrets.CODECOV_TOKEN }} files: ${{ env.CODECOV_PATH }} fail_ci_if_error: true verbose: true test_on_ios: - runs-on: macos-latest + runs-on: macos-14 env: - IOS_SIMULATOR: "iPhone 13" + IOS_SIMULATOR: "iPhone 15" steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Build for iOS run: xcodebuild build -scheme ${{ env.package }} -destination "name=${{ env.IOS_SIMULATOR }}" @@ -61,13 +62,13 @@ jobs: run: xcodebuild test -scheme ${{ env.package }} -destination "name=${{ env.IOS_SIMULATOR }}" test_on_tvos: - runs-on: macos-latest + runs-on: macos-14 env: TVOS_SIMULATOR: "Apple TV" steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Build for tvOS run: xcodebuild build -scheme ${{ env.package }} -destination "name=${{ env.TVOS_SIMULATOR }}" diff --git a/Package.swift b/Package.swift index a2a0e97..6c01ec5 100644 --- a/Package.swift +++ b/Package.swift @@ -1,16 +1,14 @@ -// swift-tools-version:5.5 +// swift-tools-version: 5.8 // The swift-tools-version declares the minimum version of Swift required to build this package. import PackageDescription let package = Package( name: "AceLayout", - platforms: [.iOS(.v9), .macOS(.v10_11), .tvOS(.v9)], + platforms: [.iOS(.v11), .macOS(.v10_13), .tvOS(.v11)], products: [ // Products define the executables and libraries a package produces, and make them visible to other packages. - .library( - name: "AceLayout", - targets: ["AceLayout"]), + .library(name: "AceLayout", targets: ["AceLayout"]), ], dependencies: [ // Dependencies declare other packages that this package depends on. @@ -21,9 +19,12 @@ let package = Package( // Targets can depend on other targets in this package, and on products in packages this package depends on. .target( name: "AceLayout", - dependencies: []), + dependencies: [], + swiftSettings: [.enableUpcomingFeature("ExistentialAny")] + ), .testTarget( name: "AceLayoutTests", - dependencies: ["AceLayout"]), + dependencies: ["AceLayout"] + ), ] ) diff --git a/README.md b/README.md index c293755..d7e6c5a 100644 --- a/README.md +++ b/README.md @@ -6,9 +6,9 @@ AceLayout provides a Swifty DSL for Auto Layout. ## Requirements -- iOS 9.0+ / macOS 10.11+ / tvOS 9.0+ -- Xcode 14+ -- Swift 5.7+ +- iOS 11.0+ / macOS 10.13+ / tvOS 11.0+ +- Xcode 14.3+ +- Swift 5.8+ ## Features @@ -175,7 +175,7 @@ view.autoLayout { item in To use the `AceLayout` library in a SwiftPM project, add the following line to the dependencies in your `Package.swift` file: ```swift -.package(url: "https://github.com/jrsaruo/AceLayout", from: "1.1.1"), +.package(url: "https://github.com/jrsaruo/AceLayout", from: "1.1.2"), ``` and add `AceLayout` as a dependency for your target: diff --git a/Sources/AceLayout/LayoutAnchors/BaselineAnchor.swift b/Sources/AceLayout/LayoutAnchors/BaselineAnchor.swift index 034ef4b..94426a6 100644 --- a/Sources/AceLayout/LayoutAnchors/BaselineAnchor.swift +++ b/Sources/AceLayout/LayoutAnchors/BaselineAnchor.swift @@ -34,8 +34,10 @@ extension BaselineAnchor { /// - offset: A constant offset for the constraint. The default value is `0`. /// - Returns: An `NSLayoutConstraint` object that represents `self` baseline == `another` baseline + `offset`. @inlinable - public func equal(to another: some BaselinesConstrainable, - plus offset: CGFloat = 0) -> NSLayoutConstraint { + public func equal( + to another: some BaselinesConstrainable, + plus offset: CGFloat = 0 + ) -> NSLayoutConstraint { anchor.constraint(equalTo: another[keyPath: anchorKeyPath], constant: offset) } @@ -53,8 +55,10 @@ extension BaselineAnchor { /// - offset: A constant offset for the constraint. The default value is `0`. /// - Returns: An `NSLayoutConstraint` object that represents `self` baseline <= `another` baseline + `offset`. @inlinable - public func lessThanOrEqual(to another: some BaselinesConstrainable, - plus offset: CGFloat = 0) -> NSLayoutConstraint { + public func lessThanOrEqual( + to another: some BaselinesConstrainable, + plus offset: CGFloat = 0 + ) -> NSLayoutConstraint { anchor.constraint(lessThanOrEqualTo: another[keyPath: anchorKeyPath], constant: offset) } @@ -72,8 +76,10 @@ extension BaselineAnchor { /// - offset: A constant offset for the constraint. The default value is `0`. /// - Returns: An `NSLayoutConstraint` object that represents `self` baseline >= `another` baseline + `offset`. @inlinable - public func greaterThanOrEqual(to another: some BaselinesConstrainable, - plus offset: CGFloat = 0) -> NSLayoutConstraint { + public func greaterThanOrEqual( + to another: some BaselinesConstrainable, + plus offset: CGFloat = 0 + ) -> NSLayoutConstraint { anchor.constraint(greaterThanOrEqualTo: another[keyPath: anchorKeyPath], constant: offset) } @@ -93,7 +99,9 @@ extension BaselineAnchor { /// - Returns: An `NSLayoutConstraint` object that represents `self` baseline == `superview` baseline + `offset`. public func equalToSuperview(plus offset: CGFloat = 0) -> NSLayoutConstraint { guard let superview = target.superview else { - preconditionFailure("The layout target must have a superview before making constraints on it.") + preconditionFailure( + "The layout target must have a superview before making constraints on it." + ) } return equal(to: superview, plus: offset) } @@ -112,7 +120,9 @@ extension BaselineAnchor { /// - Returns: An `NSLayoutConstraint` object that represents `self` baseline <= `superview` baseline + `offset`. public func lessThanOrEqualToSuperview(plus offset: CGFloat = 0) -> NSLayoutConstraint { guard let superview = target.superview else { - preconditionFailure("The layout target must have a superview before making constraints on it.") + preconditionFailure( + "The layout target must have a superview before making constraints on it." + ) } return lessThanOrEqual(to: superview, plus: offset) } @@ -131,7 +141,9 @@ extension BaselineAnchor { /// - Returns: An `NSLayoutConstraint` object that represents `self` baseline >= `superview` baseline + `offset`. public func greaterThanOrEqualToSuperview(plus offset: CGFloat = 0) -> NSLayoutConstraint { guard let superview = target.superview else { - preconditionFailure("The layout target must have a superview before making constraints on it.") + preconditionFailure( + "The layout target must have a superview before making constraints on it." + ) } return greaterThanOrEqual(to: superview, plus: offset) } diff --git a/Sources/AceLayout/LayoutAnchors/LayoutAnchor+Extension.swift b/Sources/AceLayout/LayoutAnchors/LayoutAnchor+Extension.swift index ea4fbaa..14fa96b 100644 --- a/Sources/AceLayout/LayoutAnchors/LayoutAnchor+Extension.swift +++ b/Sources/AceLayout/LayoutAnchors/LayoutAnchor+Extension.swift @@ -16,9 +16,12 @@ extension LayoutAnchor where BaseLayoutAnchor == NSLayoutXAxisAnchor { /// Returns a constraint of the form `self` x == `anotherAnchor` + systemSpacing \* `multiplier`. /// - /// The constraint causes the current anchor to trail the object in the `anotherAnchor` parameter. For example, in a left-to-right layout, the current anchor is to the right of `anotherAnchor`, but in a right-to-left layout, it is to the left of `anotherAnchor`. + /// The constraint causes the current anchor to trail the object in the `anotherAnchor` parameter. + /// For example, in a left-to-right layout, the current anchor is to the right of `anotherAnchor`, but in a right-to-left layout, + /// it is to the left of `anotherAnchor`. /// - /// The distance between the two anchors is determined by multiplying the system spacing by the value in the `multiplier` parameter. The value of the system space is determined from information available from the anchors. + /// The distance between the two anchors is determined by multiplying the system spacing by the value in the `multiplier` parameter. + /// The value of the system space is determined from information available from the anchors. /// /// ``` /// view.autoLayout { item in @@ -35,16 +38,22 @@ extension LayoutAnchor where BaseLayoutAnchor == NSLayoutXAxisAnchor { /// - multiplier: The multiple of the system spacing to use as the distance between the two anchors. The default value is `1`. /// - Returns: An `NSLayoutConstraint` object that represents `self` x == `anotherAnchor` + systemSpacing \* `multiplier`. @inlinable - public func equal(toSystemSpacingAfter anotherAnchor: BaseLayoutAnchor, - multipliedBy multiplier: CGFloat = 1) -> NSLayoutConstraint { + public func equal( + toSystemSpacingAfter anotherAnchor: BaseLayoutAnchor, + multipliedBy multiplier: CGFloat = 1 + ) -> NSLayoutConstraint { anchor.constraint(equalToSystemSpacingAfter: anotherAnchor, multiplier: multiplier) } /// Returns a constraint of the form `self` x <= `anotherAnchor` + systemSpacing \* `multiplier`. /// - /// The constraint causes the current anchor to trail the object in the `anotherAnchor` parameter. For example, in a left-to-right layout, the current anchor is to the right of `anotherAnchor`, but in a right-to-left layout, it is to the left of `anotherAnchor`. + /// The constraint causes the current anchor to trail the object in the `anotherAnchor` parameter. + /// For example, in a left-to-right layout, the current anchor is to the right of `anotherAnchor`, but in a right-to-left layout, + /// it is to the left of `anotherAnchor`. /// - /// The maximum distance between the two anchors is determined by multiplying the system spacing by the value in the `multiplier` parameter. (The actual distance must be less than or equal to that value.) The value of the system space is determined from information available from the anchors. + /// The maximum distance between the two anchors is determined by multiplying the system spacing by the value in the `multiplier` parameter. + /// (The actual distance must be less than or equal to that value.) + /// The value of the system space is determined from information available from the anchors. /// /// ``` /// view.autoLayout { item in @@ -61,16 +70,25 @@ extension LayoutAnchor where BaseLayoutAnchor == NSLayoutXAxisAnchor { /// - multiplier: The multiple of the system spacing to use as the maximum distance between the two anchors. The default value is `1`. /// - Returns: An `NSLayoutConstraint` object that represents `self` x <= `anotherAnchor` + systemSpacing \* `multiplier`. @inlinable - public func lessThanOrEqual(toSystemSpacingAfter anotherAnchor: BaseLayoutAnchor, - multipliedBy multiplier: CGFloat = 1) -> NSLayoutConstraint { - anchor.constraint(lessThanOrEqualToSystemSpacingAfter: anotherAnchor, multiplier: multiplier) + public func lessThanOrEqual( + toSystemSpacingAfter anotherAnchor: BaseLayoutAnchor, + multipliedBy multiplier: CGFloat = 1 + ) -> NSLayoutConstraint { + anchor.constraint( + lessThanOrEqualToSystemSpacingAfter: anotherAnchor, + multiplier: multiplier + ) } /// Returns a constraint of the form `self` x >= `anotherAnchor` + systemSpacing \* `multiplier`. /// - /// The constraint causes the current anchor to trail the object in the `anotherAnchor` parameter. For example, in a left-to-right layout, the current anchor is to the right of `anotherAnchor`, but in a right-to-left layout, it is to the left of `anotherAnchor`. + /// The constraint causes the current anchor to trail the object in the `anotherAnchor` parameter. + /// For example, in a left-to-right layout, the current anchor is to the right of `anotherAnchor`, but in a right-to-left layout, + /// it is to the left of `anotherAnchor`. /// - /// The minimum distance between the two anchors is determined by multiplying the system spacing by the value in the `multiplier` parameter. (The actual distance must be greater than or equal to that value.) The value of the system space is determined from information available from the anchors. + /// The minimum distance between the two anchors is determined by multiplying the system spacing by the value in the `multiplier` parameter. + /// (The actual distance must be greater than or equal to that value.) + /// The value of the system space is determined from information available from the anchors. /// /// ``` /// view.autoLayout { item in @@ -84,12 +102,18 @@ extension LayoutAnchor where BaseLayoutAnchor == NSLayoutXAxisAnchor { /// /// - Parameters: /// - anotherAnchor: The X axis anchor to use as the starting point for the constraint. - /// - multiplier: The multiple of the system spacing to use as the minimum distance between the two anchors. The default value is `1`. + /// - multiplier: The multiple of the system spacing to use as the minimum distance between the two anchors. + /// The default value is `1`. /// - Returns: An `NSLayoutConstraint` object that represents `self` x >= `anotherAnchor` + systemSpacing \* `multiplier`. @inlinable - public func greaterThanOrEqual(toSystemSpacingAfter anotherAnchor: BaseLayoutAnchor, - multipliedBy multiplier: CGFloat = 1) -> NSLayoutConstraint { - anchor.constraint(greaterThanOrEqualToSystemSpacingAfter: anotherAnchor, multiplier: multiplier) + public func greaterThanOrEqual( + toSystemSpacingAfter anotherAnchor: BaseLayoutAnchor, + multipliedBy multiplier: CGFloat = 1 + ) -> NSLayoutConstraint { + anchor.constraint( + greaterThanOrEqualToSystemSpacingAfter: anotherAnchor, + multiplier: multiplier + ) } } @@ -100,7 +124,9 @@ extension LayoutAnchor where BaseLayoutAnchor == NSLayoutYAxisAnchor { /// /// The constraint causes the current anchor to be positioned below the object in the `anotherAnchor` parameter. /// - /// The distance between the two anchors is determined by multiplying the system spacing by the value in the `multiplier` parameter. The value of the system spacing is determined from information available from the anchors. For example, if the anchors represent text baselines, the spacing is determined by the fonts used at those baselines. + /// The distance between the two anchors is determined by multiplying the system spacing by the value in the `multiplier` parameter. + /// The value of the system spacing is determined from information available from the anchors. + /// For example, if the anchors represent text baselines, the spacing is determined by the fonts used at those baselines. /// /// ``` /// view.autoLayout { item in @@ -114,11 +140,14 @@ extension LayoutAnchor where BaseLayoutAnchor == NSLayoutYAxisAnchor { /// /// - Parameters: /// - anotherAnchor: The Y axis anchor to use as the starting point for the constraint. - /// - multiplier: The multiple of the system spacing to use as the distance between the two anchors. The default value is `1`. + /// - multiplier: The multiple of the system spacing to use as the distance between the two anchors. + /// The default value is `1`. /// - Returns: An `NSLayoutConstraint` object that represents `self` y == `anotherAnchor` + systemSpacing \* `multiplier`. @inlinable - public func equal(toSystemSpacingBelow anotherAnchor: BaseLayoutAnchor, - multipliedBy multiplier: CGFloat = 1) -> NSLayoutConstraint { + public func equal( + toSystemSpacingBelow anotherAnchor: BaseLayoutAnchor, + multipliedBy multiplier: CGFloat = 1 + ) -> NSLayoutConstraint { anchor.constraint(equalToSystemSpacingBelow: anotherAnchor, multiplier: multiplier) } @@ -126,7 +155,9 @@ extension LayoutAnchor where BaseLayoutAnchor == NSLayoutYAxisAnchor { /// /// The constraint causes the current anchor to be positioned below the object in the `anotherAnchor` parameter. /// - /// The maximum distance between the two anchors is determined by multiplying the system spacing by the value in the `multiplier` parameter. The value of the system spacing is determined from information available from the anchors. For example, if the anchors represent text baselines, the spacing is determined by the fonts used at those baselines. + /// The maximum distance between the two anchors is determined by multiplying the system spacing by the value in the `multiplier` parameter. + /// The value of the system spacing is determined from information available from the anchors. + /// For example, if the anchors represent text baselines, the spacing is determined by the fonts used at those baselines. /// /// ``` /// view.autoLayout { item in @@ -140,19 +171,27 @@ extension LayoutAnchor where BaseLayoutAnchor == NSLayoutYAxisAnchor { /// /// - Parameters: /// - anotherAnchor: The Y axis anchor to use as the starting point for the constraint. - /// - multiplier: The multiple of the system spacing to use as the distance between the two anchors. The default value is `1`. + /// - multiplier: The multiple of the system spacing to use as the distance between the two anchors. + /// The default value is `1`. /// - Returns: An `NSLayoutConstraint` object that represents `self` y <= `anotherAnchor` + systemSpacing \* `multiplier`. @inlinable - public func lessThanOrEqual(toSystemSpacingBelow anotherAnchor: BaseLayoutAnchor, - multipliedBy multiplier: CGFloat = 1) -> NSLayoutConstraint { - anchor.constraint(lessThanOrEqualToSystemSpacingBelow: anotherAnchor, multiplier: multiplier) + public func lessThanOrEqual( + toSystemSpacingBelow anotherAnchor: BaseLayoutAnchor, + multipliedBy multiplier: CGFloat = 1 + ) -> NSLayoutConstraint { + anchor.constraint( + lessThanOrEqualToSystemSpacingBelow: anotherAnchor, + multiplier: multiplier + ) } /// Returns a constraint of the form `self` y >= `anotherAnchor` + systemSpacing \* `multiplier`. /// /// The constraint causes the current anchor to be positioned below the object in the `anotherAnchor` parameter. /// - /// The minimum distance between the two anchors is determined by multiplying the system spacing by the value in the `multiplier` parameter. The value of the system spacing is determined from information available from the anchors. For example, if the anchors represent text baselines, the spacing is determined by the fonts used at those baselines. + /// The minimum distance between the two anchors is determined by multiplying the system spacing by the value in the `multiplier` parameter. + /// The value of the system spacing is determined from information available from the anchors. + /// For example, if the anchors represent text baselines, the spacing is determined by the fonts used at those baselines. /// /// ``` /// view.autoLayout { item in @@ -169,8 +208,13 @@ extension LayoutAnchor where BaseLayoutAnchor == NSLayoutYAxisAnchor { /// - multiplier: The multiple of the system spacing to use as the distance between the two anchors. The default value is `1`. /// - Returns: An `NSLayoutConstraint` object that represents `self` y >= `anotherAnchor` + systemSpacing \* `multiplier`. @inlinable - public func greaterThanOrEqual(toSystemSpacingBelow anotherAnchor: BaseLayoutAnchor, - multipliedBy multiplier: CGFloat = 1) -> NSLayoutConstraint { - anchor.constraint(greaterThanOrEqualToSystemSpacingBelow: anotherAnchor, multiplier: multiplier) + public func greaterThanOrEqual( + toSystemSpacingBelow anotherAnchor: BaseLayoutAnchor, + multipliedBy multiplier: CGFloat = 1 + ) -> NSLayoutConstraint { + anchor.constraint( + greaterThanOrEqualToSystemSpacingBelow: anotherAnchor, + multiplier: multiplier + ) } } diff --git a/Sources/AceLayout/LayoutAnchors/LayoutAnchor.swift b/Sources/AceLayout/LayoutAnchors/LayoutAnchor.swift index 3dfe347..e589d71 100644 --- a/Sources/AceLayout/LayoutAnchors/LayoutAnchor.swift +++ b/Sources/AceLayout/LayoutAnchors/LayoutAnchor.swift @@ -68,7 +68,10 @@ extension LayoutAnchor { /// - offset: A constant offset for the constraint. The default value is `0`. /// - Returns: An `NSLayoutConstraint` object that represents `self` anchor == `anotherAnchor` + `offset`. @inlinable - public func equal(to anotherAnchor: BaseLayoutAnchor, plus offset: CGFloat = 0) -> NSLayoutConstraint { + public func equal( + to anotherAnchor: BaseLayoutAnchor, + plus offset: CGFloat = 0 + ) -> NSLayoutConstraint { anchor.constraint(equalTo: anotherAnchor, constant: offset) } @@ -89,7 +92,10 @@ extension LayoutAnchor { /// - offset: A constant offset for the constraint. The default value is `0`. /// - Returns: An `NSLayoutConstraint` object that represents `self` anchor <= `anotherAnchor` + `offset`. @inlinable - public func lessThanOrEqual(to anotherAnchor: BaseLayoutAnchor, plus offset: CGFloat = 0) -> NSLayoutConstraint { + public func lessThanOrEqual( + to anotherAnchor: BaseLayoutAnchor, + plus offset: CGFloat = 0 + ) -> NSLayoutConstraint { anchor.constraint(lessThanOrEqualTo: anotherAnchor, constant: offset) } @@ -106,11 +112,16 @@ extension LayoutAnchor { /// ``` /// /// - Parameters: - /// - anotherAnchor: A layout anchor from a `UIView`, `UILayoutGuide`, `NSView`, or `NSLayoutGuide` object. You must use a subclass of `NSLayoutAnchor` that matches the current anchor. For example, if you call this method on a `LayoutRect.XAxis`, this parameter must be `NSLayoutXAxisAnchor`. + /// - anotherAnchor: A layout anchor from a `UIView`, `UILayoutGuide`, `NSView`, or `NSLayoutGuide` object. + /// You must use a subclass of `NSLayoutAnchor` that matches the current anchor. For example, + /// if you call this method on a `LayoutRect.XAxis`, this parameter must be `NSLayoutXAxisAnchor`. /// - offset: A constant offset for the constraint. The default value is `0`. /// - Returns: An `NSLayoutConstraint` object that represents `self` anchor >= `anotherAnchor` + `offset`. @inlinable - public func greaterThanOrEqual(to anotherAnchor: BaseLayoutAnchor, plus offset: CGFloat = 0) -> NSLayoutConstraint { + public func greaterThanOrEqual( + to anotherAnchor: BaseLayoutAnchor, + plus offset: CGFloat = 0 + ) -> NSLayoutConstraint { anchor.constraint(greaterThanOrEqualTo: anotherAnchor, constant: offset) } @@ -126,7 +137,8 @@ extension LayoutAnchor { /// ``` /// /// - Parameters: - /// - another: A layout anchor from a ``LayoutItem``. You must use an instance of ``LayoutAnchor`` that matches the current anchor. For example, if you call this method on a `LayoutRect.Dimension`, this parameter must be `LayoutRect.Dimension`. + /// - another: A layout anchor from a ``LayoutItem``. You must use an instance of ``LayoutAnchor`` that matches the current anchor. + /// For example, if you call this method on a `LayoutRect.Dimension`, this parameter must be `LayoutRect.Dimension`. /// - offset: A constant offset for the constraint. The default value is `0`. /// - Returns: An `NSLayoutConstraint` object that represents `self` anchor == `another` anchor + `offset`. @inlinable @@ -144,7 +156,8 @@ extension LayoutAnchor { /// ``` /// /// - Parameters: - /// - another: A layout anchor from a ``LayoutItem``. You must use an instance of ``LayoutAnchor`` that matches the current anchor. For example, if you call this method on a `LayoutRect.Dimension`, this parameter must be `LayoutRect.Dimension`. + /// - another: A layout anchor from a ``LayoutItem``. You must use an instance of ``LayoutAnchor`` that matches the current anchor. + /// For example, if you call this method on a `LayoutRect.Dimension`, this parameter must be `LayoutRect.Dimension`. /// - offset: A constant offset for the constraint. The default value is `0`. /// - Returns: An `NSLayoutConstraint` object that represents `self` anchor <= `another` anchor + `offset`. @inlinable @@ -162,11 +175,15 @@ extension LayoutAnchor { /// ``` /// /// - Parameters: - /// - another: A layout anchor from a ``LayoutItem``. You must use an instance of ``LayoutAnchor`` that matches the current anchor. For example, if you call this method on a `LayoutRect.Dimension`, this parameter must be `LayoutRect.Dimension`. + /// - another: A layout anchor from a ``LayoutItem``. You must use an instance of ``LayoutAnchor`` that matches the current anchor. + /// For example, if you call this method on a `LayoutRect.Dimension`, this parameter must be `LayoutRect.Dimension`. /// - offset: A constant offset for the constraint. The default value is `0`. /// - Returns: An `NSLayoutConstraint` object that represents `self` anchor >= `another` anchor + `offset`. @inlinable - public func greaterThanOrEqual(to another: Self, plus offset: CGFloat = 0) -> NSLayoutConstraint { + public func greaterThanOrEqual( + to another: Self, + plus offset: CGFloat = 0 + ) -> NSLayoutConstraint { anchor.constraint(greaterThanOrEqualTo: another.anchor, constant: offset) } } diff --git a/Sources/AceLayout/LayoutAnchors/LayoutDimension.swift b/Sources/AceLayout/LayoutAnchors/LayoutDimension.swift index 2736cd8..098e8c6 100644 --- a/Sources/AceLayout/LayoutAnchors/LayoutDimension.swift +++ b/Sources/AceLayout/LayoutAnchors/LayoutDimension.swift @@ -33,12 +33,15 @@ extension LayoutDimension { /// ``` /// /// - Parameters: - /// - another: An instance of the type that conforms to ``SizeConstrainable`` protocol such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. + /// - another: An instance of the type that conforms to ``SizeConstrainable`` protocol + /// such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. /// - offset: A constant offset for the constraint. The default value is `0`. /// - Returns: An `NSLayoutConstraint` object that represents `self` dimension == `another` dimension + `offset`. @inlinable - public func equal(to another: some SizeConstrainable, - plus offset: CGFloat = 0) -> NSLayoutConstraint { + public func equal( + to another: some SizeConstrainable, + plus offset: CGFloat = 0 + ) -> NSLayoutConstraint { anchor.constraint(equalTo: another[keyPath: anchorKeyPath], constant: offset) } @@ -55,12 +58,15 @@ extension LayoutDimension { /// ``` /// /// - Parameters: - /// - another: An instance of the type that conforms to ``SizeConstrainable`` protocol such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. + /// - another: An instance of the type that conforms to ``SizeConstrainable`` protocol + /// such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. /// - offset: A constant offset for the constraint. The default value is `0`. /// - Returns: An `NSLayoutConstraint` object that represents `self` dimension <= `another` dimension + `offset`. @inlinable - public func lessThanOrEqual(to another: some SizeConstrainable, - plus offset: CGFloat = 0) -> NSLayoutConstraint { + public func lessThanOrEqual( + to another: some SizeConstrainable, + plus offset: CGFloat = 0 + ) -> NSLayoutConstraint { anchor.constraint(lessThanOrEqualTo: another[keyPath: anchorKeyPath], constant: offset) } @@ -77,12 +83,15 @@ extension LayoutDimension { /// ``` /// /// - Parameters: - /// - another: An instance of the type that conforms to ``SizeConstrainable`` protocol such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. + /// - another: An instance of the type that conforms to ``SizeConstrainable`` protocol + /// such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. /// - offset: A constant offset for the constraint. The default value is `0`. /// - Returns: An `NSLayoutConstraint` object that represents `self` dimension >= `another` dimension + `offset`. @inlinable - public func greaterThanOrEqual(to another: some SizeConstrainable, - plus offset: CGFloat = 0) -> NSLayoutConstraint { + public func greaterThanOrEqual( + to another: some SizeConstrainable, + plus offset: CGFloat = 0 + ) -> NSLayoutConstraint { anchor.constraint(greaterThanOrEqualTo: another[keyPath: anchorKeyPath], constant: offset) } @@ -96,12 +105,15 @@ extension LayoutDimension { /// ``` /// /// - Parameters: - /// - another: An instance of the type that conforms to ``SizeConstrainable`` protocol such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. + /// - another: An instance of the type that conforms to ``SizeConstrainable`` protocol + /// such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. /// - multiplier: The multiplier constant for the constraint. /// - Returns: An `NSLayoutConstraint` object that represents `self` dimension == `another` dimension \* `multiplier`. @inlinable - public func equal(to another: some SizeConstrainable, - multipliedBy multiplier: CGFloat) -> NSLayoutConstraint { + public func equal( + to another: some SizeConstrainable, + multipliedBy multiplier: CGFloat + ) -> NSLayoutConstraint { anchor.constraint(equalTo: another[keyPath: anchorKeyPath], multiplier: multiplier) } @@ -115,13 +127,19 @@ extension LayoutDimension { /// ``` /// /// - Parameters: - /// - another: An instance of the type that conforms to ``SizeConstrainable`` protocol such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. + /// - another: An instance of the type that conforms to ``SizeConstrainable`` protocol + /// such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. /// - multiplier: The multiplier constant for the constraint. /// - Returns: An `NSLayoutConstraint` object that represents `self` dimension <= `another` dimension \* `multiplier`. @inlinable - public func lessThanOrEqual(to another: some SizeConstrainable, - multipliedBy multiplier: CGFloat) -> NSLayoutConstraint { - anchor.constraint(lessThanOrEqualTo: another[keyPath: anchorKeyPath], multiplier: multiplier) + public func lessThanOrEqual( + to another: some SizeConstrainable, + multipliedBy multiplier: CGFloat + ) -> NSLayoutConstraint { + anchor.constraint( + lessThanOrEqualTo: another[keyPath: anchorKeyPath], + multiplier: multiplier + ) } /// Returns a constraint of the form `self` dimension >= `another` dimension \* `multiplier`. @@ -134,13 +152,19 @@ extension LayoutDimension { /// ``` /// /// - Parameters: - /// - another: An instance of the type that conforms to ``SizeConstrainable`` protocol such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. + /// - another: An instance of the type that conforms to ``SizeConstrainable`` protocol + /// such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. /// - multiplier: The multiplier constant for the constraint. /// - Returns: An `NSLayoutConstraint` object that represents `self` dimension >= `another` dimension \* `multiplier`. @inlinable - public func greaterThanOrEqual(to another: some SizeConstrainable, - multipliedBy multiplier: CGFloat) -> NSLayoutConstraint { - anchor.constraint(greaterThanOrEqualTo: another[keyPath: anchorKeyPath], multiplier: multiplier) + public func greaterThanOrEqual( + to another: some SizeConstrainable, + multipliedBy multiplier: CGFloat + ) -> NSLayoutConstraint { + anchor.constraint( + greaterThanOrEqualTo: another[keyPath: anchorKeyPath], + multiplier: multiplier + ) } // MARK: - Constraints with BaseLayoutAnchor @@ -155,12 +179,15 @@ extension LayoutDimension { /// ``` /// /// - Parameters: - /// - anotherAnchor: An `NSLayoutDimension` object from a `UIView`, `UILayoutGuide`, `NSView`, or `NSLayoutGuide` object. + /// - anotherAnchor: An `NSLayoutDimension` object from a `UIView`, `UILayoutGuide`, `NSView`, + /// or `NSLayoutGuide` object. /// - multiplier: The multiplier constant for the constraint. /// - Returns: An `NSLayoutConstraint` object that represents `self` dimension == `anotherAnchor` \* `multiplier`. @inlinable - public func equal(to anotherAnchor: BaseLayoutAnchor, - multipliedBy multiplier: CGFloat) -> NSLayoutConstraint { + public func equal( + to anotherAnchor: BaseLayoutAnchor, + multipliedBy multiplier: CGFloat + ) -> NSLayoutConstraint { anchor.constraint(equalTo: anotherAnchor, multiplier: multiplier) } @@ -174,12 +201,15 @@ extension LayoutDimension { /// ``` /// /// - Parameters: - /// - anotherAnchor: An `NSLayoutDimension` object from a `UIView`, `UILayoutGuide`, `NSView`, or `NSLayoutGuide` object. + /// - anotherAnchor: An `NSLayoutDimension` object from a `UIView`, `UILayoutGuide`, `NSView`, + /// or `NSLayoutGuide` object. /// - multiplier: The multiplier constant for the constraint. /// - Returns: An `NSLayoutConstraint` object that represents `self` dimension <= `anotherAnchor` \* `multiplier`. @inlinable - public func lessThanOrEqual(to anotherAnchor: BaseLayoutAnchor, - multipliedBy multiplier: CGFloat) -> NSLayoutConstraint { + public func lessThanOrEqual( + to anotherAnchor: BaseLayoutAnchor, + multipliedBy multiplier: CGFloat + ) -> NSLayoutConstraint { anchor.constraint(lessThanOrEqualTo: anotherAnchor, multiplier: multiplier) } @@ -193,12 +223,15 @@ extension LayoutDimension { /// ``` /// /// - Parameters: - /// - anotherAnchor: An `NSLayoutDimension` object from a `UIView`, `UILayoutGuide`, `NSView`, or `NSLayoutGuide` object. + /// - anotherAnchor: An `NSLayoutDimension` object from a `UIView`, `UILayoutGuide`, `NSView`, + /// or `NSLayoutGuide` object. /// - multiplier: The multiplier constant for the constraint. /// - Returns: An `NSLayoutConstraint` object that represents `self` dimension >= `anotherAnchor` \* `multiplier`. @inlinable - public func greaterThanOrEqual(to anotherAnchor: BaseLayoutAnchor, - multipliedBy multiplier: CGFloat) -> NSLayoutConstraint { + public func greaterThanOrEqual( + to anotherAnchor: BaseLayoutAnchor, + multipliedBy multiplier: CGFloat + ) -> NSLayoutConstraint { anchor.constraint(greaterThanOrEqualTo: anotherAnchor, multiplier: multiplier) } @@ -214,12 +247,16 @@ extension LayoutDimension { /// ``` /// /// - Parameters: - /// - another: A layout anchor from a ``LayoutItem``. You must use an instance of ``LayoutDimension`` that matches the current anchor. For example, if you call this method on a `LayoutRect.Dimension`, this parameter must be `LayoutRect.Dimension`. + /// - another: A layout anchor from a ``LayoutItem``. + /// You must use an instance of ``LayoutDimension`` that matches the current anchor. For example, + /// if you call this method on a `LayoutRect.Dimension`, this parameter must be `LayoutRect.Dimension`. /// - multiplier: The multiplier constant for the constraint. /// - Returns: An `NSLayoutConstraint` object that represents `self` dimension == `another` dimension \* `multiplier`. @inlinable - public func equal(to another: Self, - multipliedBy multiplier: CGFloat) -> NSLayoutConstraint { + public func equal( + to another: Self, + multipliedBy multiplier: CGFloat + ) -> NSLayoutConstraint { anchor.constraint(equalTo: another.anchor, multiplier: multiplier) } @@ -233,12 +270,16 @@ extension LayoutDimension { /// ``` /// /// - Parameters: - /// - another: A layout anchor from a ``LayoutItem``. You must use an instance of ``LayoutDimension`` that matches the current anchor. For example, if you call this method on a `LayoutRect.Dimension`, this parameter must be `LayoutRect.Dimension`. + /// - another: A layout anchor from a ``LayoutItem``. + /// You must use an instance of ``LayoutDimension`` that matches the current anchor. For example, + /// if you call this method on a `LayoutRect.Dimension`, this parameter must be `LayoutRect.Dimension`. /// - multiplier: The multiplier constant for the constraint. /// - Returns: An `NSLayoutConstraint` object that represents `self` dimension <= `another` dimension \* `multiplier`. @inlinable - public func lessThanOrEqual(to another: Self, - multipliedBy multiplier: CGFloat) -> NSLayoutConstraint { + public func lessThanOrEqual( + to another: Self, + multipliedBy multiplier: CGFloat + ) -> NSLayoutConstraint { anchor.constraint(lessThanOrEqualTo: another.anchor, multiplier: multiplier) } @@ -252,12 +293,16 @@ extension LayoutDimension { /// ``` /// /// - Parameters: - /// - another: A layout anchor from a ``LayoutItem``. You must use an instance of ``LayoutDimension`` that matches the current anchor. For example, if you call this method on a `LayoutRect.Dimension`, this parameter must be `LayoutRect.Dimension`. + /// - another: A layout anchor from a ``LayoutItem``. + /// You must use an instance of ``LayoutDimension`` that matches the current anchor. For example, + /// if you call this method on a `LayoutRect.Dimension`, this parameter must be `LayoutRect.Dimension`. /// - multiplier: The multiplier constant for the constraint. /// - Returns: An `NSLayoutConstraint` object that represents `self` dimension >= `another` dimension \* `multiplier`. @inlinable - public func greaterThanOrEqual(to another: Self, - multipliedBy multiplier: CGFloat) -> NSLayoutConstraint { + public func greaterThanOrEqual( + to another: Self, + multipliedBy multiplier: CGFloat + ) -> NSLayoutConstraint { anchor.constraint(greaterThanOrEqualTo: another.anchor, multiplier: multiplier) } @@ -333,7 +378,9 @@ extension LayoutDimension { /// - Returns: An `NSLayoutConstraint` object that represents `self` dimension == `superview` dimension + `offset`. public func equalToSuperview(plus offset: CGFloat = 0) -> NSLayoutConstraint { guard let superview = target.superview else { - preconditionFailure("The layout target must have a superview before making constraints on it.") + preconditionFailure( + "The layout target must have a superview before making constraints on it." + ) } return equal(to: superview, plus: offset) } @@ -355,7 +402,9 @@ extension LayoutDimension { /// - Returns: An `NSLayoutConstraint` object that represents `self` dimension <= `superview` dimension + `offset`. public func lessThanOrEqualToSuperview(plus offset: CGFloat = 0) -> NSLayoutConstraint { guard let superview = target.superview else { - preconditionFailure("The layout target must have a superview before making constraints on it.") + preconditionFailure( + "The layout target must have a superview before making constraints on it." + ) } return lessThanOrEqual(to: superview, plus: offset) } @@ -377,7 +426,9 @@ extension LayoutDimension { /// - Returns: An `NSLayoutConstraint` object that represents `self` dimension >= `superview` dimension + `offset`. public func greaterThanOrEqualToSuperview(plus offset: CGFloat = 0) -> NSLayoutConstraint { guard let superview = target.superview else { - preconditionFailure("The layout target must have a superview before making constraints on it.") + preconditionFailure( + "The layout target must have a superview before making constraints on it." + ) } return greaterThanOrEqual(to: superview, plus: offset) } @@ -396,7 +447,9 @@ extension LayoutDimension { /// - Returns: An `NSLayoutConstraint` object that represents `self` dimension == `superview` dimension \* `multiplier`. public func equalToSuperview(multipliedBy multiplier: CGFloat) -> NSLayoutConstraint { guard let superview = target.superview else { - preconditionFailure("The layout target must have a superview before making constraints on it.") + preconditionFailure( + "The layout target must have a superview before making constraints on it." + ) } return equal(to: superview, multipliedBy: multiplier) } @@ -415,7 +468,9 @@ extension LayoutDimension { /// - Returns: An `NSLayoutConstraint` object that represents `self` dimension <= `superview` dimension \* `multiplier`. public func lessThanOrEqualToSuperview(multipliedBy multiplier: CGFloat) -> NSLayoutConstraint { guard let superview = target.superview else { - preconditionFailure("The layout target must have a superview before making constraints on it.") + preconditionFailure( + "The layout target must have a superview before making constraints on it." + ) } return lessThanOrEqual(to: superview, multipliedBy: multiplier) } @@ -432,9 +487,13 @@ extension LayoutDimension { /// - Parameters: /// - multiplier: The multiplier constant for the constraint. /// - Returns: An `NSLayoutConstraint` object that represents `self` dimension >= `superview` dimension \* `multiplier`. - public func greaterThanOrEqualToSuperview(multipliedBy multiplier: CGFloat) -> NSLayoutConstraint { + public func greaterThanOrEqualToSuperview( + multipliedBy multiplier: CGFloat + ) -> NSLayoutConstraint { guard let superview = target.superview else { - preconditionFailure("The layout target must have a superview before making constraints on it.") + preconditionFailure( + "The layout target must have a superview before making constraints on it." + ) } return greaterThanOrEqual(to: superview, multipliedBy: multiplier) } diff --git a/Sources/AceLayout/LayoutAnchors/LayoutRect.swift b/Sources/AceLayout/LayoutAnchors/LayoutRect.swift index 1e7ae9b..fe8537a 100644 --- a/Sources/AceLayout/LayoutAnchors/LayoutRect.swift +++ b/Sources/AceLayout/LayoutAnchors/LayoutRect.swift @@ -16,26 +16,26 @@ public enum LayoutRect { /// A structure that represents a layout anchor for creating horizontal layout constraints. public struct XAxis: XAxisAnchor { - public let target: XAxesConstrainable - public let anchorKeyPath: KeyPath + public let target: any XAxesConstrainable + public let anchorKeyPath: KeyPath } /// A structure that represents a layout anchor for creating vertical layout constraints. public struct YAxis: YAxisAnchor { - public let target: YAxesConstrainable - public let anchorKeyPath: KeyPath + public let target: any YAxesConstrainable + public let anchorKeyPath: KeyPath } /// A structure that represents a layout anchor for creating size-based layout constraints. public struct Dimension: LayoutDimension { - public let target: SizeConstrainable - public let anchorKeyPath: KeyPath + public let target: any SizeConstrainable + public let anchorKeyPath: KeyPath } /// A structure that represents a baseline layout anchor for creating vertical layout constraints. public struct Baseline: BaselineAnchor { - public let target: BaselinesConstrainable - public let anchorKeyPath: KeyPath + public let target: any BaselinesConstrainable + public let anchorKeyPath: KeyPath } } @@ -65,11 +65,14 @@ extension LayoutRect { /// ``` /// /// - Parameters: - /// - another: An instance of the type that conforms to ``XYAxesConstrainable`` protocol such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. + /// - another: An instance of the type that conforms to ``XYAxesConstrainable`` protocol + /// such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. /// - offset: A constant offset for the constraint. The default value is `.zero`. /// - Returns: An `NSLayoutConstraint` object that represents `self` point == `another` point shifted by `offset`. - public func equal(to another: some XYAxesConstrainable, - shiftedBy offset: CGSize = .zero) -> [NSLayoutConstraint] { + public func equal( + to another: some XYAxesConstrainable, + shiftedBy offset: CGSize = .zero + ) -> [NSLayoutConstraint] { [ x.equal(to: another, plus: offset.width), y.equal(to: another, plus: offset.height) @@ -92,11 +95,14 @@ extension LayoutRect { /// ``` /// /// - Parameters: - /// - another: An instance of the type that conforms to ``XYAxesConstrainable`` protocol such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. + /// - another: An instance of the type that conforms to ``XYAxesConstrainable`` protocol + /// such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. /// - offset: A constant offset for the constraint. The default value is `.zero`. /// - Returns: An `NSLayoutConstraint` object that represents `self` point <= `another` point shifted by `offset`. - public func lessThanOrEqual(to another: some XYAxesConstrainable, - shiftedBy offset: CGSize = .zero) -> [NSLayoutConstraint] { + public func lessThanOrEqual( + to another: some XYAxesConstrainable, + shiftedBy offset: CGSize = .zero + ) -> [NSLayoutConstraint] { [ x.lessThanOrEqual(to: another, plus: offset.width), y.lessThanOrEqual(to: another, plus: offset.height) @@ -119,11 +125,14 @@ extension LayoutRect { /// ``` /// /// - Parameters: - /// - another: An instance of the type that conforms to ``XYAxesConstrainable`` protocol such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. + /// - another: An instance of the type that conforms to ``XYAxesConstrainable`` protocol + /// such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. /// - offset: A constant offset for the constraint. The default value is `.zero`. /// - Returns: An `NSLayoutConstraint` object that represents `self` point >= `another` point shifted by `offset`. - public func greaterThanOrEqual(to another: some XYAxesConstrainable, - shiftedBy offset: CGSize = .zero) -> [NSLayoutConstraint] { + public func greaterThanOrEqual( + to another: some XYAxesConstrainable, + shiftedBy offset: CGSize = .zero + ) -> [NSLayoutConstraint] { [ x.greaterThanOrEqual(to: another, plus: offset.width), y.greaterThanOrEqual(to: another, plus: offset.height) @@ -174,7 +183,9 @@ extension LayoutRect { /// - Parameters: /// - offset: A constant offset for the constraint. The default value is `.zero`. /// - Returns: An `NSLayoutConstraint` object that represents `self` point <= `superview` point shifted by `offset`. - public func lessThanOrEqualToSuperview(shiftedBy offset: CGSize = .zero) -> [NSLayoutConstraint] { + public func lessThanOrEqualToSuperview( + shiftedBy offset: CGSize = .zero + ) -> [NSLayoutConstraint] { [ x.lessThanOrEqualToSuperview(plus: offset.width), y.lessThanOrEqualToSuperview(plus: offset.height) @@ -199,7 +210,9 @@ extension LayoutRect { /// - Parameters: /// - offset: A constant offset for the constraint. The default value is `.zero`. /// - Returns: An `NSLayoutConstraint` object that represents `self` point >= `superview` point shifted by `offset`. - public func greaterThanOrEqualToSuperview(shiftedBy offset: CGSize = .zero) -> [NSLayoutConstraint] { + public func greaterThanOrEqualToSuperview( + shiftedBy offset: CGSize = .zero + ) -> [NSLayoutConstraint] { [ x.greaterThanOrEqualToSuperview(plus: offset.width), y.greaterThanOrEqualToSuperview(plus: offset.height) @@ -228,11 +241,14 @@ extension LayoutRect { /// ``` /// /// - Parameters: - /// - another: An instance of the type that conforms to ``SizeConstrainable`` protocol such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. + /// - another: An instance of the type that conforms to ``SizeConstrainable`` protocol + /// such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. /// - multiplier: The multiplier constant for the constraint. The default value is `1`. /// - Returns: An `NSLayoutConstraint` object that represents `self` size == `another` size \* `multiplier`. - public func equal(to another: some SizeConstrainable, - multipliedBy multiplier: CGFloat = 1) -> [NSLayoutConstraint] { + public func equal( + to another: some SizeConstrainable, + multipliedBy multiplier: CGFloat = 1 + ) -> [NSLayoutConstraint] { [ width.equal(to: another, multipliedBy: multiplier), height.equal(to: another, multipliedBy: multiplier) @@ -253,11 +269,14 @@ extension LayoutRect { /// ``` /// /// - Parameters: - /// - another: An instance of the type that conforms to ``SizeConstrainable`` protocol such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. + /// - another: An instance of the type that conforms to ``SizeConstrainable`` protocol + /// such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. /// - multiplier: The multiplier constant for the constraint. The default value is `1`. /// - Returns: An `NSLayoutConstraint` object that represents `self` size <= `another` size \* `multiplier`. - public func lessThanOrEqual(to another: some SizeConstrainable, - multipliedBy multiplier: CGFloat = 1) -> [NSLayoutConstraint] { + public func lessThanOrEqual( + to another: some SizeConstrainable, + multipliedBy multiplier: CGFloat = 1 + ) -> [NSLayoutConstraint] { [ width.lessThanOrEqual(to: another, multipliedBy: multiplier), height.lessThanOrEqual(to: another, multipliedBy: multiplier) @@ -278,11 +297,14 @@ extension LayoutRect { /// ``` /// /// - Parameters: - /// - another: An instance of the type that conforms to ``SizeConstrainable`` protocol such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. + /// - another: An instance of the type that conforms to ``SizeConstrainable`` protocol + /// such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. /// - multiplier: The multiplier constant for the constraint. The default value is `1`. /// - Returns: An `NSLayoutConstraint` object that represents `self` size >= `another` size \* `multiplier`. - public func greaterThanOrEqual(to another: some SizeConstrainable, - multipliedBy multiplier: CGFloat = 1) -> [NSLayoutConstraint] { + public func greaterThanOrEqual( + to another: some SizeConstrainable, + multipliedBy multiplier: CGFloat = 1 + ) -> [NSLayoutConstraint] { [ width.greaterThanOrEqual(to: another, multipliedBy: multiplier), height.greaterThanOrEqual(to: another, multipliedBy: multiplier) @@ -454,7 +476,9 @@ extension LayoutRect { /// - Parameters: /// - multiplier: The multiplier constant for the constraint. The default value is `1`. /// - Returns: An `NSLayoutConstraint` object that represents `self` size <= `superview` size \* `multiplier`. - public func lessThanOrEqualToSuperview(multipliedBy multiplier: CGFloat = 1) -> [NSLayoutConstraint] { + public func lessThanOrEqualToSuperview( + multipliedBy multiplier: CGFloat = 1 + ) -> [NSLayoutConstraint] { [ width.lessThanOrEqualToSuperview(multipliedBy: multiplier), height.lessThanOrEqualToSuperview(multipliedBy: multiplier) @@ -477,7 +501,9 @@ extension LayoutRect { /// - Parameters: /// - multiplier: The multiplier constant for the constraint. The default value is `1`. /// - Returns: An `NSLayoutConstraint` object that represents `self` size >= `superview` size \* `multiplier`. - public func greaterThanOrEqualToSuperview(multipliedBy multiplier: CGFloat = 1) -> [NSLayoutConstraint] { + public func greaterThanOrEqualToSuperview( + multipliedBy multiplier: CGFloat = 1 + ) -> [NSLayoutConstraint] { [ width.greaterThanOrEqualToSuperview(multipliedBy: multiplier), height.greaterThanOrEqualToSuperview(multipliedBy: multiplier) @@ -501,11 +527,14 @@ extension LayoutRect { /// ``` /// /// - Parameters: - /// - another: An instance of the type that conforms to ``XAxesConstrainable`` protocol such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. + /// - another: An instance of the type that conforms to ``XAxesConstrainable`` protocol + /// such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. /// - inset: A constant edge inset for the constraint. The default value is `0`. /// - Returns: An `NSLayoutConstraint` object that represents `self` horizontal edges == `another` ones adjusted by `inset`. - public func equal(to another: some XAxesConstrainable, - insetBy inset: CGFloat = 0) -> [NSLayoutConstraint] { + public func equal( + to another: some XAxesConstrainable, + insetBy inset: CGFloat = 0 + ) -> [NSLayoutConstraint] { [ left.equal(to: another, plus: inset), right.equal(to: another, plus: -inset) @@ -523,11 +552,14 @@ extension LayoutRect { /// ``` /// /// - Parameters: - /// - another: An instance of the type that conforms to ``XAxesConstrainable`` protocol such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. + /// - another: An instance of the type that conforms to ``XAxesConstrainable`` protocol + /// such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. /// - insets: A constant edge insets for the constraint. The default value is `0`. /// - Returns: An `NSLayoutConstraint` object that represents `self` horizontal edges are inside of `another` ones adjusted by `inset`. - public func insideOrEqual(to another: some XAxesConstrainable, - insetBy inset: CGFloat = 0) -> [NSLayoutConstraint] { + public func insideOrEqual( + to another: some XAxesConstrainable, + insetBy inset: CGFloat = 0 + ) -> [NSLayoutConstraint] { [ left.greaterThanOrEqual(to: another, plus: inset), right.lessThanOrEqual(to: another, plus: -inset) @@ -591,11 +623,14 @@ extension LayoutRect { /// ``` /// /// - Parameters: - /// - another: An instance of the type that conforms to ``YAxesConstrainable`` protocol such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. + /// - another: An instance of the type that conforms to ``YAxesConstrainable`` protocol + /// such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. /// - inset: A constant edge inset for the constraint. /// - Returns: An `NSLayoutConstraint` object that represents `self` vertical edges == `another` ones adjusted by `inset`. - public func equal(to another: some YAxesConstrainable, - insetBy inset: CGFloat = 0) -> [NSLayoutConstraint] { + public func equal( + to another: some YAxesConstrainable, + insetBy inset: CGFloat = 0 + ) -> [NSLayoutConstraint] { [ top.equal(to: another, plus: inset), bottom.equal(to: another, plus: -inset) @@ -612,11 +647,14 @@ extension LayoutRect { /// ``` /// /// - Parameters: - /// - another: An instance of the type that conforms to ``YAxesConstrainable`` protocol such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. + /// - another: An instance of the type that conforms to ``YAxesConstrainable`` protocol + /// such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. /// - insets: A constant edge insets for the constraint. The default value is `0`. /// - Returns: An `NSLayoutConstraint` object that represents `self` vertical edges are inside of `another` ones adjusted by `inset`. - public func insideOrEqual(to another: some YAxesConstrainable, - insetBy inset: CGFloat = 0) -> [NSLayoutConstraint] { + public func insideOrEqual( + to another: some YAxesConstrainable, + insetBy inset: CGFloat = 0 + ) -> [NSLayoutConstraint] { [ top.greaterThanOrEqual(to: another, plus: inset), bottom.lessThanOrEqual(to: another, plus: -inset) @@ -690,11 +728,14 @@ extension LayoutRect { /// ``` /// /// - Parameters: - /// - another: An instance of the type that conforms to ``XYAxesConstrainable`` protocol such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. + /// - another: An instance of the type that conforms to ``XYAxesConstrainable`` protocol + /// such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. /// - insets: A constant edge insets for the constraint. The default value is `.zero`. /// - Returns: An `NSLayoutConstraint` object that represents `self` edges == `another` edges adjusted by `insets`. - public func equal(to another: some XYAxesConstrainable, - insetBy insets: AL.EdgeInsets = .zero) -> [NSLayoutConstraint] { + public func equal( + to another: some XYAxesConstrainable, + insetBy insets: AL.EdgeInsets = .zero + ) -> [NSLayoutConstraint] { [ top.equal(to: another, plus: insets.top), left.equal(to: another, plus: insets.left), @@ -716,12 +757,15 @@ extension LayoutRect { /// ``` /// /// - Parameters: - /// - another: An instance of the type that conforms to ``XYAxesConstrainable`` protocol such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. + /// - another: An instance of the type that conforms to ``XYAxesConstrainable`` protocol + /// such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. /// - inset: A constant edge inset for the constraint. /// - Returns: An `NSLayoutConstraint` object that represents `self` edges == `another` edges adjusted by `inset`. @inlinable - public func equal(to another: some XYAxesConstrainable, - insetBy inset: CGFloat) -> [NSLayoutConstraint] { + public func equal( + to another: some XYAxesConstrainable, + insetBy inset: CGFloat + ) -> [NSLayoutConstraint] { equal(to: another, insetBy: .init(top: inset, left: inset, bottom: inset, right: inset)) } @@ -745,11 +789,14 @@ extension LayoutRect { /// ``` /// /// - Parameters: - /// - another: An instance of the type that conforms to ``XYAxesConstrainable`` protocol such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. + /// - another: An instance of the type that conforms to ``XYAxesConstrainable`` protocol + /// such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. /// - insets: A constant edge insets for the constraint. The default value is `.zero`. /// - Returns: An `NSLayoutConstraint` object that represents `self` edges are inside of `another` edges adjusted by `insets`. - public func insideOrEqual(to another: some XYAxesConstrainable, - insetBy insets: AL.EdgeInsets = .zero) -> [NSLayoutConstraint] { + public func insideOrEqual( + to another: some XYAxesConstrainable, + insetBy insets: AL.EdgeInsets = .zero + ) -> [NSLayoutConstraint] { [ top.greaterThanOrEqual(to: another, plus: insets.top), left.greaterThanOrEqual(to: another, plus: insets.left), @@ -771,13 +818,19 @@ extension LayoutRect { /// ``` /// /// - Parameters: - /// - another: An instance of the type that conforms to ``XYAxesConstrainable`` protocol such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. + /// - another: An instance of the type that conforms to ``XYAxesConstrainable`` protocol + /// such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. /// - inset: A constant edge inset for the constraint. /// - Returns: An `NSLayoutConstraint` object that represents `self` edges are inside of `another` edges adjusted by `inset`. @inlinable - public func insideOrEqual(to another: some XYAxesConstrainable, - insetBy inset: CGFloat) -> [NSLayoutConstraint] { - insideOrEqual(to: another, insetBy: .init(top: inset, left: inset, bottom: inset, right: inset)) + public func insideOrEqual( + to another: some XYAxesConstrainable, + insetBy inset: CGFloat + ) -> [NSLayoutConstraint] { + insideOrEqual( + to: another, + insetBy: .init(top: inset, left: inset, bottom: inset, right: inset) + ) } // MARK: - Constraints with superview @@ -801,7 +854,9 @@ extension LayoutRect { /// - Parameters: /// - insets: A constant edge insets for the constraint. The default value is `.zero`. /// - Returns: An `NSLayoutConstraint` object that represents `self` edges == `superview` edges adjusted by `insets`. - public func equalToSuperview(insetBy insets: AL.EdgeInsets = .zero) -> [NSLayoutConstraint] { + public func equalToSuperview( + insetBy insets: AL.EdgeInsets = .zero + ) -> [NSLayoutConstraint] { [ top.equalToSuperview(plus: insets.top), left.equalToSuperview(plus: insets.left), @@ -852,7 +907,9 @@ extension LayoutRect { /// - Parameters: /// - insets: A constant edge insets for the constraint. The default value is `.zero`. /// - Returns: An `NSLayoutConstraint` object that represents `self` edges are inside of `superview` edges adjusted by `insets`. - public func insideOrEqualToSuperview(insetBy insets: AL.EdgeInsets = .zero) -> [NSLayoutConstraint] { + public func insideOrEqualToSuperview( + insetBy insets: AL.EdgeInsets = .zero + ) -> [NSLayoutConstraint] { [ top.greaterThanOrEqualToSuperview(plus: insets.top), left.greaterThanOrEqualToSuperview(plus: insets.left), @@ -878,7 +935,9 @@ extension LayoutRect { /// - Returns: An `NSLayoutConstraint` object that represents `self` edges are inside of `superview` edges adjusted by `inset`. @inlinable public func insideOrEqualToSuperview(insetBy inset: CGFloat) -> [NSLayoutConstraint] { - insideOrEqualToSuperview(insetBy: .init(top: inset, left: inset, bottom: inset, right: inset)) + insideOrEqualToSuperview( + insetBy: .init(top: inset, left: inset, bottom: inset, right: inset) + ) } } } diff --git a/Sources/AceLayout/LayoutAnchors/XAxisAnchor.swift b/Sources/AceLayout/LayoutAnchors/XAxisAnchor.swift index c4b7161..12d4e0a 100644 --- a/Sources/AceLayout/LayoutAnchors/XAxisAnchor.swift +++ b/Sources/AceLayout/LayoutAnchors/XAxisAnchor.swift @@ -33,12 +33,15 @@ extension XAxisAnchor { /// ``` /// /// - Parameters: - /// - another: An instance of the type that conforms to ``XAxesConstrainable`` protocol such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. + /// - another: An instance of the type that conforms to ``XAxesConstrainable`` protocol + /// such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. /// - offset: A constant offset for the constraint. The default value is `0`. /// - Returns: An `NSLayoutConstraint` object that represents `self` x == `another` x + `offset`. @inlinable - public func equal(to another: some XAxesConstrainable, - plus offset: CGFloat = 0) -> NSLayoutConstraint { + public func equal( + to another: some XAxesConstrainable, + plus offset: CGFloat = 0 + ) -> NSLayoutConstraint { anchor.constraint(equalTo: another[keyPath: anchorKeyPath], constant: offset) } @@ -55,12 +58,15 @@ extension XAxisAnchor { /// ``` /// /// - Parameters: - /// - another: An instance of the type that conforms to ``XAxesConstrainable`` protocol such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. + /// - another: An instance of the type that conforms to ``XAxesConstrainable`` protocol + /// such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. /// - offset: A constant offset for the constraint. The default value is `0`. /// - Returns: An `NSLayoutConstraint` object that represents `self` x <= `another` x + `offset`. @inlinable - public func lessThanOrEqual(to another: some XAxesConstrainable, - plus offset: CGFloat = 0) -> NSLayoutConstraint { + public func lessThanOrEqual( + to another: some XAxesConstrainable, + plus offset: CGFloat = 0 + ) -> NSLayoutConstraint { anchor.constraint(lessThanOrEqualTo: another[keyPath: anchorKeyPath], constant: offset) } @@ -77,12 +83,15 @@ extension XAxisAnchor { /// ``` /// /// - Parameters: - /// - another: An instance of the type that conforms to ``XAxesConstrainable`` protocol such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. + /// - another: An instance of the type that conforms to ``XAxesConstrainable`` protocol + /// such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. /// - offset: A constant offset for the constraint. The default value is `0`. /// - Returns: An `NSLayoutConstraint` object that represents `self` x >= `another` x + `offset`. @inlinable - public func greaterThanOrEqual(to another: some XAxesConstrainable, - plus offset: CGFloat = 0) -> NSLayoutConstraint { + public func greaterThanOrEqual( + to another: some XAxesConstrainable, + plus offset: CGFloat = 0 + ) -> NSLayoutConstraint { anchor.constraint(greaterThanOrEqualTo: another[keyPath: anchorKeyPath], constant: offset) } @@ -105,7 +114,9 @@ extension XAxisAnchor { /// - Returns: An `NSLayoutConstraint` object that represents `self` x == `superview` x + `offset`. public func equalToSuperview(plus offset: CGFloat = 0) -> NSLayoutConstraint { guard let superview = target.superview else { - preconditionFailure("The layout target must have a superview before making constraints on it.") + preconditionFailure( + "The layout target must have a superview before making constraints on it." + ) } return equal(to: superview, plus: offset) } @@ -127,7 +138,9 @@ extension XAxisAnchor { /// - Returns: An `NSLayoutConstraint` object that represents `self` x <= `superview` x + `offset`. public func lessThanOrEqualToSuperview(plus offset: CGFloat = 0) -> NSLayoutConstraint { guard let superview = target.superview else { - preconditionFailure("The layout target must have a superview before making constraints on it.") + preconditionFailure( + "The layout target must have a superview before making constraints on it." + ) } return lessThanOrEqual(to: superview, plus: offset) } @@ -149,7 +162,9 @@ extension XAxisAnchor { /// - Returns: An `NSLayoutConstraint` object that represents `self` x >= `superview` x + `offset`. public func greaterThanOrEqualToSuperview(plus offset: CGFloat = 0) -> NSLayoutConstraint { guard let superview = target.superview else { - preconditionFailure("The layout target must have a superview before making constraints on it.") + preconditionFailure( + "The layout target must have a superview before making constraints on it." + ) } return greaterThanOrEqual(to: superview, plus: offset) } diff --git a/Sources/AceLayout/LayoutAnchors/YAxisAnchor.swift b/Sources/AceLayout/LayoutAnchors/YAxisAnchor.swift index df65698..d8b0b36 100644 --- a/Sources/AceLayout/LayoutAnchors/YAxisAnchor.swift +++ b/Sources/AceLayout/LayoutAnchors/YAxisAnchor.swift @@ -33,12 +33,15 @@ extension YAxisAnchor { /// ``` /// /// - Parameters: - /// - another: An instance of the type that conforms to ``YAxesConstrainable`` protocol such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. + /// - another: An instance of the type that conforms to ``YAxesConstrainable`` protocol + /// such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. /// - offset: A constant offset for the constraint. The default value is `0`. /// - Returns: An `NSLayoutConstraint` object that represents `self` y == `another` y + `offset`. @inlinable - public func equal(to another: some YAxesConstrainable, - plus offset: CGFloat = 0) -> NSLayoutConstraint { + public func equal( + to another: some YAxesConstrainable, + plus offset: CGFloat = 0 + ) -> NSLayoutConstraint { anchor.constraint(equalTo: another[keyPath: anchorKeyPath], constant: offset) } @@ -55,12 +58,15 @@ extension YAxisAnchor { /// ``` /// /// - Parameters: - /// - another: An instance of the type that conforms to ``YAxesConstrainable`` protocol such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. + /// - another: An instance of the type that conforms to ``YAxesConstrainable`` protocol + /// such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. /// - offset: A constant offset for the constraint. The default value is `0`. /// - Returns: An `NSLayoutConstraint` object that represents `self` y <= `another` y + `offset`. @inlinable - public func lessThanOrEqual(to another: some YAxesConstrainable, - plus offset: CGFloat = 0) -> NSLayoutConstraint { + public func lessThanOrEqual( + to another: some YAxesConstrainable, + plus offset: CGFloat = 0 + ) -> NSLayoutConstraint { anchor.constraint(lessThanOrEqualTo: another[keyPath: anchorKeyPath], constant: offset) } @@ -77,12 +83,15 @@ extension YAxisAnchor { /// ``` /// /// - Parameters: - /// - another: An instance of the type that conforms to ``YAxesConstrainable`` protocol such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. + /// - another: An instance of the type that conforms to ``YAxesConstrainable`` protocol + /// such as `UIView`, `UILayoutGuide`, `NSView` or `NSLayoutGuide`. /// - offset: A constant offset for the constraint. The default value is `0`. /// - Returns: An `NSLayoutConstraint` object that represents `self` y >= `another` y + `offset`. @inlinable - public func greaterThanOrEqual(to another: some YAxesConstrainable, - plus offset: CGFloat = 0) -> NSLayoutConstraint { + public func greaterThanOrEqual( + to another: some YAxesConstrainable, + plus offset: CGFloat = 0 + ) -> NSLayoutConstraint { anchor.constraint(greaterThanOrEqualTo: another[keyPath: anchorKeyPath], constant: offset) } @@ -105,7 +114,9 @@ extension YAxisAnchor { /// - Returns: An `NSLayoutConstraint` object that represents `self` y == `superview` y + `offset`. public func equalToSuperview(plus offset: CGFloat = 0) -> NSLayoutConstraint { guard let superview = target.superview else { - preconditionFailure("The layout target must have a superview before making constraints on it.") + preconditionFailure( + "The layout target must have a superview before making constraints on it." + ) } return equal(to: superview, plus: offset) } @@ -127,7 +138,9 @@ extension YAxisAnchor { /// - Returns: An `NSLayoutConstraint` object that represents `self` y <= `superview` y + `offset`. public func lessThanOrEqualToSuperview(plus offset: CGFloat = 0) -> NSLayoutConstraint { guard let superview = target.superview else { - preconditionFailure("The layout target must have a superview before making constraints on it.") + preconditionFailure( + "The layout target must have a superview before making constraints on it." + ) } return lessThanOrEqual(to: superview, plus: offset) } @@ -149,7 +162,9 @@ extension YAxisAnchor { /// - Returns: An `NSLayoutConstraint` object that represents `self` y >= `superview` y + `offset`. public func greaterThanOrEqualToSuperview(plus offset: CGFloat = 0) -> NSLayoutConstraint { guard let superview = target.superview else { - preconditionFailure("The layout target must have a superview before making constraints on it.") + preconditionFailure( + "The layout target must have a superview before making constraints on it." + ) } return greaterThanOrEqual(to: superview, plus: offset) } diff --git a/Sources/AceLayout/LayoutConstraintsBuilder.swift b/Sources/AceLayout/LayoutConstraintsBuilder.swift index 0bb9a54..25a0233 100644 --- a/Sources/AceLayout/LayoutConstraintsBuilder.swift +++ b/Sources/AceLayout/LayoutConstraintsBuilder.swift @@ -13,11 +13,14 @@ import AppKit /// A custom parameter attribute that constructs layout constraints from closures. /// -/// You can use this as a parameter attribute for layout-constraint-producing closure parameters, allowing those closures to provide multiple layout constraints. +/// You can use this as a parameter attribute for layout-constraint-producing closure parameters, +/// allowing those closures to provide multiple layout constraints. /// For example, the following `buildConstraints` function accepts a closure that produces one or more constraints via the builder. /// /// ``` -/// func buildConstraints(@LayoutConstraintsBuilder builder: () -> [NSLayoutConstraint]) -> [NSLayoutConstraint] +/// func buildConstraints( +/// @LayoutConstraintsBuilder builder: () -> [NSLayoutConstraint] +/// ) -> [NSLayoutConstraint] /// ``` /// /// Clients of this function can use multiple-statement closures to provide several constraints, as shown in the following example: diff --git a/Sources/AceLayout/LayoutItem.swift b/Sources/AceLayout/LayoutItem.swift index 0bced1f..b95c50f 100644 --- a/Sources/AceLayout/LayoutItem.swift +++ b/Sources/AceLayout/LayoutItem.swift @@ -109,10 +109,12 @@ extension LayoutItem where Base: SizeConstrainable { extension LayoutItem where Base: BaselinesConstrainable { /// A layout anchor representing the baseline for the topmost line of text in the target. - public var firstBaseline: LayoutRect.Baseline { .init(target: base, - anchorKeyPath: \.firstBaselineAnchor) } + public var firstBaseline: LayoutRect.Baseline { + .init(target: base, anchorKeyPath: \.firstBaselineAnchor) + } /// A layout anchor representing the baseline for the bottommost line of text in the target. - public var lastBaseline: LayoutRect.Baseline { .init(target: base, - anchorKeyPath: \.lastBaselineAnchor) } + public var lastBaseline: LayoutRect.Baseline { + .init(target: base, anchorKeyPath: \.lastBaselineAnchor) + } } diff --git a/Sources/AceLayout/LayoutTarget.swift b/Sources/AceLayout/LayoutTarget.swift index 2c61bcb..3577ba2 100644 --- a/Sources/AceLayout/LayoutTarget.swift +++ b/Sources/AceLayout/LayoutTarget.swift @@ -17,19 +17,23 @@ public protocol LayoutTarget { /// This is typically equal to `LayoutTarget` itself. associatedtype LayoutBase - func autoLayout(activates: Bool, - @LayoutConstraintsBuilder builder: (LayoutItem) -> [NSLayoutConstraint]) -> [NSLayoutConstraint] + func autoLayout( + activates: Bool, + @LayoutConstraintsBuilder builder: (_ item: LayoutItem) -> [NSLayoutConstraint] + ) -> [NSLayoutConstraint] } extension LayoutTarget { - /// The default implementation of `autoLayout(activates:, builder:)`. + /// The default implementation of `autoLayout(activates:builder:)`. /// - Parameters: /// - activates: Whether to immediately activate constraints after building. /// - builder: A layout constraints builder that creates constraints on the specified item. /// - Returns: An array of built `NSLayoutConstraint` objects. - fileprivate func _autoLayout(activates: Bool, - @LayoutConstraintsBuilder builder: (LayoutItem) -> [NSLayoutConstraint]) -> [NSLayoutConstraint] { + fileprivate func _autoLayout( + activates: Bool, + @LayoutConstraintsBuilder builder: (_ item: LayoutItem) -> [NSLayoutConstraint] + ) -> [NSLayoutConstraint] { let constraints = builder(LayoutItem(base: self)) if activates { NSLayoutConstraint.activate(constraints) @@ -39,7 +43,8 @@ extension LayoutTarget { /// Creates layout constraints. /// - /// The ``LayoutItem`` instance passed to the `builder` has various layout anchors, and you can use them to create layout constraints. + /// The ``LayoutItem`` instance passed to the `builder` has various layout anchors, + /// and you can use them to create layout constraints. /// /// ``` /// view.autoLayout { item in @@ -53,8 +58,10 @@ extension LayoutTarget { /// - builder: A layout constraints builder that creates constraints on the specified item. /// - Returns: An array of built `NSLayoutConstraint` objects. @discardableResult - public func autoLayout(activates: Bool = true, - @LayoutConstraintsBuilder builder: (LayoutItem) -> [NSLayoutConstraint]) -> [NSLayoutConstraint] { + public func autoLayout( + activates: Bool = true, + @LayoutConstraintsBuilder builder: (_ item: LayoutItem) -> [NSLayoutConstraint] + ) -> [NSLayoutConstraint] { _autoLayout(activates: activates, builder: builder) } } @@ -63,7 +70,8 @@ extension AL.View: LayoutTarget { /// Creates layout constraints. /// - /// The ``LayoutItem`` instance passed to the `builder` has various layout anchors, and you can use them to create layout constraints. + /// The ``LayoutItem`` instance passed to the `builder` has various layout anchors, + /// and you can use them to create layout constraints. /// /// ``` /// view.autoLayout { item in @@ -78,8 +86,10 @@ extension AL.View: LayoutTarget { /// - builder: A layout constraints builder that creates constraints on the specified item. /// - Returns: An array of built `NSLayoutConstraint` objects. @discardableResult - public func autoLayout(activates: Bool = true, - @LayoutConstraintsBuilder builder: (LayoutItem) -> [NSLayoutConstraint]) -> [NSLayoutConstraint] { + public func autoLayout( + activates: Bool = true, + @LayoutConstraintsBuilder builder: (_ item: LayoutItem) -> [NSLayoutConstraint] + ) -> [NSLayoutConstraint] { translatesAutoresizingMaskIntoConstraints = false return _autoLayout(activates: activates, builder: builder) } diff --git a/Tests/AceLayoutTests/Helpers/Assertions.swift b/Tests/AceLayoutTests/Helpers/Assertions.swift index 5a13d08..8b5092b 100644 --- a/Tests/AceLayoutTests/Helpers/Assertions.swift +++ b/Tests/AceLayoutTests/Helpers/Assertions.swift @@ -8,22 +8,28 @@ import XCTest import AceLayout -func assertEqual(_ constraints1: [NSLayoutConstraint], - _ constraints2: [NSLayoutConstraint], - file: StaticString = #file, - line: UInt = #line) { +func assertEqual( + _ constraints1: [NSLayoutConstraint], + _ constraints2: [NSLayoutConstraint], + file: StaticString = #file, + line: UInt = #line +) { XCTAssertEqual(constraints1.count, constraints2.count, "count", file: file, line: line) for (constraint1, constraint2) in zip(constraints1, constraints2) { - assertEqual(constraint1.firstItem, - constraint2.firstItem, - message: "constraint1.firstItem is not equal to constraint2.firstItem", - file: file, - line: line) - assertEqual(constraint1.secondItem, - constraint2.secondItem, - message: "constraint1.secondItem is not equal to constraint2.secondItem", - file: file, - line: line) + assertEqual( + constraint1.firstItem, + constraint2.firstItem, + message: "constraint1.firstItem is not equal to constraint2.firstItem", + file: file, + line: line + ) + assertEqual( + constraint1.secondItem, + constraint2.secondItem, + message: "constraint1.secondItem is not equal to constraint2.secondItem", + file: file, + line: line + ) XCTAssertEqual(constraint1.isActive, constraint2.isActive, "isActive", file: file, line: line) XCTAssertEqual(constraint1.firstAttribute, constraint2.firstAttribute, "firstAttribute", file: file, line: line) XCTAssertEqual(constraint1.secondAttribute, constraint2.secondAttribute, "secondAttribute", file: file, line: line) @@ -34,17 +40,21 @@ func assertEqual(_ constraints1: [NSLayoutConstraint], } } -private func assertEqual(_ layoutItem1: AnyObject?, - _ layoutItem2: AnyObject?, - message: @autoclosure () -> String = "", - file: StaticString = #file, - line: UInt = #line) { +private func assertEqual( + _ layoutItem1: AnyObject?, + _ layoutItem2: AnyObject?, + message: @autoclosure () -> String = "", + file: StaticString = #file, + line: UInt = #line +) { switch (layoutItem1, layoutItem2) { case let (view1 as AL.View?, view2 as AL.View?): XCTAssertEqual(view1, view2, message(), file: file, line: line) case let (layoutGuide1 as AL.LayoutGuide?, layoutGuide2 as AL.LayoutGuide?): XCTAssertEqual(layoutGuide1, layoutGuide2, message(), file: file, line: line) + case (nil, nil): + break default: - XCTAssert(false, message(), file: file, line: line) + XCTFail(message(), file: file, line: line) } } diff --git a/Tests/AceLayoutTests/LayoutTargetTests.swift b/Tests/AceLayoutTests/LayoutTargetTests.swift index fb02cec..169328c 100644 --- a/Tests/AceLayoutTests/LayoutTargetTests.swift +++ b/Tests/AceLayoutTests/LayoutTargetTests.swift @@ -11,7 +11,9 @@ import AceLayout final class LayoutTargetTests: XCTestCase { func testAutoLayout() { - XCTContext.runActivity(named: "translatesAutoresizingMaskIntoConstraints should become false") { _ in + XCTContext.runActivity( + named: "translatesAutoresizingMaskIntoConstraints should become false" + ) { _ in let view = AL.View() XCTAssert(view.translatesAutoresizingMaskIntoConstraints) view.autoLayout { item in @@ -27,7 +29,9 @@ final class LayoutTargetTests: XCTestCase { } XCTAssert(constraints.allSatisfy { $0.isActive }) } - XCTContext.runActivity(named: "All isActive should be false when activates: false") { _ in + XCTContext.runActivity( + named: "All isActive should be false when activates: false" + ) { _ in let constraints = view.autoLayout(activates: false) { item in item.size.equal(toSquare: 100) } diff --git a/Tests/AceLayoutTests/LayoutTests/EqualTests/UILayoutGuideEqualToUILayoutGuideConstraintTests.swift b/Tests/AceLayoutTests/LayoutTests/EqualTests/UILayoutGuideEqualToUILayoutGuideConstraintTests.swift index 96f8bcb..265d85d 100644 --- a/Tests/AceLayoutTests/LayoutTests/EqualTests/UILayoutGuideEqualToUILayoutGuideConstraintTests.swift +++ b/Tests/AceLayoutTests/LayoutTests/EqualTests/UILayoutGuideEqualToUILayoutGuideConstraintTests.swift @@ -37,8 +37,10 @@ final class UILayoutGuideEqualToUILayoutGuideConstraintTests: XCTestCase { } let expectedConstraints = [ layoutGuide.leadingAnchor.constraint(equalTo: layoutMarginsGuide.leadingAnchor), - layoutGuide.trailingAnchor.constraint(equalTo: layoutMarginsGuide.trailingAnchor, - constant: 8) + layoutGuide.trailingAnchor.constraint( + equalTo: layoutMarginsGuide.trailingAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -49,8 +51,10 @@ final class UILayoutGuideEqualToUILayoutGuideConstraintTests: XCTestCase { item.leading.equal(to: layoutMarginsGuide.trailingAnchor, plus: 8) } let expectedConstraints = [ - layoutGuide.leadingAnchor.constraint(equalTo: layoutMarginsGuide.trailingAnchor, - constant: 8) + layoutGuide.leadingAnchor.constraint( + equalTo: layoutMarginsGuide.trailingAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -66,8 +70,10 @@ final class UILayoutGuideEqualToUILayoutGuideConstraintTests: XCTestCase { } let expectedConstraints = [ layoutGuide.topAnchor.constraint(equalTo: layoutMarginsGuide.topAnchor), - layoutGuide.bottomAnchor.constraint(equalTo: layoutMarginsGuide.bottomAnchor, - constant: 8) + layoutGuide.bottomAnchor.constraint( + equalTo: layoutMarginsGuide.bottomAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -78,8 +84,10 @@ final class UILayoutGuideEqualToUILayoutGuideConstraintTests: XCTestCase { item.top.equal(to: layoutMarginsGuide.bottomAnchor, plus: 8) } let expectedConstraints = [ - layoutGuide.topAnchor.constraint(equalTo: layoutMarginsGuide.bottomAnchor, - constant: 8) + layoutGuide.topAnchor.constraint( + equalTo: layoutMarginsGuide.bottomAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -90,25 +98,39 @@ final class UILayoutGuideEqualToUILayoutGuideConstraintTests: XCTestCase { guard #available(iOS 11.0, tvOS 11.0, *) else { throw XCTSkip("This test can only run on iOS 11.0+ or tvOS 11.0+") } - XCTContext.runActivity(named: "equal(toSystemSpacingAfter:), equal(toSystemSpacingBelow:)") { _ in + XCTContext.runActivity( + named: "equal(toSystemSpacingAfter:), equal(toSystemSpacingBelow:)" + ) { _ in let layoutMarginsGuide = superview.layoutMarginsGuide let constraints = layoutGuide.autoLayout { item in item.top.equal(toSystemSpacingBelow: layoutMarginsGuide.topAnchor) item.leading.equal(toSystemSpacingAfter: layoutMarginsGuide.leadingAnchor) - item.trailing.equal(toSystemSpacingAfter: layoutMarginsGuide.trailingAnchor, - multipliedBy: -1) - item.bottom.equal(toSystemSpacingBelow: layoutMarginsGuide.bottomAnchor, - multipliedBy: -1) + item.trailing.equal( + toSystemSpacingAfter: layoutMarginsGuide.trailingAnchor, + multipliedBy: -1 + ) + item.bottom.equal( + toSystemSpacingBelow: layoutMarginsGuide.bottomAnchor, + multipliedBy: -1 + ) } let expectedConstraints = [ - layoutGuide.topAnchor.constraint(equalToSystemSpacingBelow: layoutMarginsGuide.topAnchor, - multiplier: 1), - layoutGuide.leadingAnchor.constraint(equalToSystemSpacingAfter: layoutMarginsGuide.leadingAnchor, - multiplier: 1), - layoutGuide.trailingAnchor.constraint(equalToSystemSpacingAfter: layoutMarginsGuide.trailingAnchor, - multiplier: -1), - layoutGuide.bottomAnchor.constraint(equalToSystemSpacingBelow: layoutMarginsGuide.bottomAnchor, - multiplier: -1) + layoutGuide.topAnchor.constraint( + equalToSystemSpacingBelow: layoutMarginsGuide.topAnchor, + multiplier: 1 + ), + layoutGuide.leadingAnchor.constraint( + equalToSystemSpacingAfter: layoutMarginsGuide.leadingAnchor, + multiplier: 1 + ), + layoutGuide.trailingAnchor.constraint( + equalToSystemSpacingAfter: layoutMarginsGuide.trailingAnchor, + multiplier: -1 + ), + layoutGuide.bottomAnchor.constraint( + equalToSystemSpacingBelow: layoutMarginsGuide.bottomAnchor, + multiplier: -1 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -125,10 +147,14 @@ final class UILayoutGuideEqualToUILayoutGuideConstraintTests: XCTestCase { } let expectedConstraints = [ layoutGuide.widthAnchor.constraint(equalTo: layoutMarginsGuide.widthAnchor), - layoutGuide.heightAnchor.constraint(equalTo: layoutMarginsGuide.heightAnchor, - constant: 8), - layoutGuide.heightAnchor.constraint(equalTo: layoutMarginsGuide.heightAnchor, - multiplier: 2) + layoutGuide.heightAnchor.constraint( + equalTo: layoutMarginsGuide.heightAnchor, + constant: 8 + ), + layoutGuide.heightAnchor.constraint( + equalTo: layoutMarginsGuide.heightAnchor, + multiplier: 2 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -140,10 +166,14 @@ final class UILayoutGuideEqualToUILayoutGuideConstraintTests: XCTestCase { item.width.equal(to: layoutMarginsGuide.heightAnchor, multipliedBy: 2) } let expectedConstraints = [ - layoutGuide.widthAnchor.constraint(equalTo: layoutMarginsGuide.heightAnchor, - constant: 8), - layoutGuide.widthAnchor.constraint(equalTo: layoutMarginsGuide.heightAnchor, - multiplier: 2) + layoutGuide.widthAnchor.constraint( + equalTo: layoutMarginsGuide.heightAnchor, + constant: 8 + ), + layoutGuide.widthAnchor.constraint( + equalTo: layoutMarginsGuide.heightAnchor, + multiplier: 2 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -161,10 +191,14 @@ final class UILayoutGuideEqualToUILayoutGuideConstraintTests: XCTestCase { let expectedConstraints = [ layoutGuide.centerXAnchor.constraint(equalTo: layoutMarginsGuide.centerXAnchor), layoutGuide.centerYAnchor.constraint(equalTo: layoutMarginsGuide.centerYAnchor), - layoutGuide.leadingAnchor.constraint(equalTo: layoutMarginsGuide.leadingAnchor, - constant: 10), - layoutGuide.topAnchor.constraint(equalTo: layoutMarginsGuide.topAnchor, - constant: 20) + layoutGuide.leadingAnchor.constraint( + equalTo: layoutMarginsGuide.leadingAnchor, + constant: 10 + ), + layoutGuide.topAnchor.constraint( + equalTo: layoutMarginsGuide.topAnchor, + constant: 20 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -181,10 +215,14 @@ final class UILayoutGuideEqualToUILayoutGuideConstraintTests: XCTestCase { let expectedConstraints = [ layoutGuide.widthAnchor.constraint(equalTo: layoutMarginsGuide.widthAnchor), layoutGuide.heightAnchor.constraint(equalTo: layoutMarginsGuide.heightAnchor), - layoutGuide.widthAnchor.constraint(equalTo: layoutMarginsGuide.widthAnchor, - multiplier: 2), - layoutGuide.heightAnchor.constraint(equalTo: layoutMarginsGuide.heightAnchor, - multiplier: 2) + layoutGuide.widthAnchor.constraint( + equalTo: layoutMarginsGuide.widthAnchor, + multiplier: 2 + ), + layoutGuide.heightAnchor.constraint( + equalTo: layoutMarginsGuide.heightAnchor, + multiplier: 2 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -210,8 +248,14 @@ final class UILayoutGuideEqualToUILayoutGuideConstraintTests: XCTestCase { item.leftRight.equal(to: layoutMarginsGuide, insetBy: 8) } let expectedConstraints = [ - layoutGuide.leftAnchor.constraint(equalTo: layoutMarginsGuide.leftAnchor, constant: 8), - layoutGuide.rightAnchor.constraint(equalTo: layoutMarginsGuide.rightAnchor, constant: -8) + layoutGuide.leftAnchor.constraint( + equalTo: layoutMarginsGuide.leftAnchor, + constant: 8 + ), + layoutGuide.rightAnchor.constraint( + equalTo: layoutMarginsGuide.rightAnchor, + constant: -8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -222,8 +266,12 @@ final class UILayoutGuideEqualToUILayoutGuideConstraintTests: XCTestCase { item.leadingTrailing.insideOrEqual(to: layoutMarginsGuide) } let expectedConstraints = [ - layoutGuide.leadingAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.leadingAnchor), - layoutGuide.trailingAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.trailingAnchor) + layoutGuide.leadingAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.leadingAnchor + ), + layoutGuide.trailingAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.trailingAnchor + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -234,10 +282,14 @@ final class UILayoutGuideEqualToUILayoutGuideConstraintTests: XCTestCase { item.leftRight.insideOrEqual(to: layoutMarginsGuide, insetBy: 8) } let expectedConstraints = [ - layoutGuide.leftAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.leftAnchor, - constant: 8), - layoutGuide.rightAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.rightAnchor, - constant: -8) + layoutGuide.leftAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.leftAnchor, + constant: 8 + ), + layoutGuide.rightAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.rightAnchor, + constant: -8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -263,9 +315,14 @@ final class UILayoutGuideEqualToUILayoutGuideConstraintTests: XCTestCase { item.topBottom.equal(to: layoutMarginsGuide, insetBy: 8) } let expectedConstraints = [ - layoutGuide.topAnchor.constraint(equalTo: layoutMarginsGuide.topAnchor, constant: 8), - layoutGuide.bottomAnchor.constraint(equalTo: layoutMarginsGuide.bottomAnchor, - constant: -8) + layoutGuide.topAnchor.constraint( + equalTo: layoutMarginsGuide.topAnchor, + constant: 8 + ), + layoutGuide.bottomAnchor.constraint( + equalTo: layoutMarginsGuide.bottomAnchor, + constant: -8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -276,8 +333,12 @@ final class UILayoutGuideEqualToUILayoutGuideConstraintTests: XCTestCase { item.topBottom.insideOrEqual(to: layoutMarginsGuide) } let expectedConstraints = [ - layoutGuide.topAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.topAnchor), - layoutGuide.bottomAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.bottomAnchor) + layoutGuide.topAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.topAnchor + ), + layoutGuide.bottomAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.bottomAnchor + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -288,10 +349,14 @@ final class UILayoutGuideEqualToUILayoutGuideConstraintTests: XCTestCase { item.topBottom.insideOrEqual(to: layoutMarginsGuide, insetBy: 8) } let expectedConstraints = [ - layoutGuide.topAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.topAnchor, - constant: 8), - layoutGuide.bottomAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.bottomAnchor, - constant: -8) + layoutGuide.topAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.topAnchor, + constant: 8 + ), + layoutGuide.bottomAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.bottomAnchor, + constant: -8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -321,14 +386,22 @@ final class UILayoutGuideEqualToUILayoutGuideConstraintTests: XCTestCase { item.edges.equal(to: layoutMarginsGuide, insetBy: insets) } let expectedConstraints = [ - layoutGuide.topAnchor.constraint(equalTo: layoutMarginsGuide.topAnchor, - constant: 10), - layoutGuide.leftAnchor.constraint(equalTo: layoutMarginsGuide.leftAnchor, - constant: 20), - layoutGuide.rightAnchor.constraint(equalTo: layoutMarginsGuide.rightAnchor, - constant: -40), - layoutGuide.bottomAnchor.constraint(equalTo: layoutMarginsGuide.bottomAnchor, - constant: -30) + layoutGuide.topAnchor.constraint( + equalTo: layoutMarginsGuide.topAnchor, + constant: 10 + ), + layoutGuide.leftAnchor.constraint( + equalTo: layoutMarginsGuide.leftAnchor, + constant: 20 + ), + layoutGuide.rightAnchor.constraint( + equalTo: layoutMarginsGuide.rightAnchor, + constant: -40 + ), + layoutGuide.bottomAnchor.constraint( + equalTo: layoutMarginsGuide.bottomAnchor, + constant: -30 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -339,14 +412,22 @@ final class UILayoutGuideEqualToUILayoutGuideConstraintTests: XCTestCase { item.edges.equal(to: layoutMarginsGuide, insetBy: 20) } let expectedConstraints = [ - layoutGuide.topAnchor.constraint(equalTo: layoutMarginsGuide.topAnchor, - constant: 20), - layoutGuide.leftAnchor.constraint(equalTo: layoutMarginsGuide.leftAnchor, - constant: 20), - layoutGuide.rightAnchor.constraint(equalTo: layoutMarginsGuide.rightAnchor, - constant: -20), - layoutGuide.bottomAnchor.constraint(equalTo: layoutMarginsGuide.bottomAnchor, - constant: -20) + layoutGuide.topAnchor.constraint( + equalTo: layoutMarginsGuide.topAnchor, + constant: 20 + ), + layoutGuide.leftAnchor.constraint( + equalTo: layoutMarginsGuide.leftAnchor, + constant: 20 + ), + layoutGuide.rightAnchor.constraint( + equalTo: layoutMarginsGuide.rightAnchor, + constant: -20 + ), + layoutGuide.bottomAnchor.constraint( + equalTo: layoutMarginsGuide.bottomAnchor, + constant: -20 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -360,14 +441,22 @@ final class UILayoutGuideEqualToUILayoutGuideConstraintTests: XCTestCase { item.edges.insideOrEqual(to: layoutMarginsGuide, insetBy: insets) } let expectedConstraints = [ - layoutGuide.topAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.topAnchor, - constant: 10), - layoutGuide.leftAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.leftAnchor, - constant: 20), - layoutGuide.rightAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.rightAnchor, - constant: -40), - layoutGuide.bottomAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.bottomAnchor, - constant: -30) + layoutGuide.topAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.topAnchor, + constant: 10 + ), + layoutGuide.leftAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.leftAnchor, + constant: 20 + ), + layoutGuide.rightAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.rightAnchor, + constant: -40 + ), + layoutGuide.bottomAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.bottomAnchor, + constant: -30 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -378,14 +467,22 @@ final class UILayoutGuideEqualToUILayoutGuideConstraintTests: XCTestCase { item.edges.insideOrEqual(to: layoutMarginsGuide, insetBy: 20) } let expectedConstraints = [ - layoutGuide.topAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.topAnchor, - constant: 20), - layoutGuide.leftAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.leftAnchor, - constant: 20), - layoutGuide.rightAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.rightAnchor, - constant: -20), - layoutGuide.bottomAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.bottomAnchor, - constant: -20) + layoutGuide.topAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.topAnchor, + constant: 20 + ), + layoutGuide.leftAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.leftAnchor, + constant: 20 + ), + layoutGuide.rightAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.rightAnchor, + constant: -20 + ), + layoutGuide.bottomAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.bottomAnchor, + constant: -20 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) diff --git a/Tests/AceLayoutTests/LayoutTests/EqualTests/UILayoutGuideEqualToUIViewConstraintTests.swift b/Tests/AceLayoutTests/LayoutTests/EqualTests/UILayoutGuideEqualToUIViewConstraintTests.swift index 7a6ef76..a57458a 100644 --- a/Tests/AceLayoutTests/LayoutTests/EqualTests/UILayoutGuideEqualToUIViewConstraintTests.swift +++ b/Tests/AceLayoutTests/LayoutTests/EqualTests/UILayoutGuideEqualToUIViewConstraintTests.swift @@ -36,7 +36,10 @@ final class UILayoutGuideEqualToUIViewConstraintTests: XCTestCase { } let expectedConstraints = [ layoutGuide.leadingAnchor.constraint(equalTo: superview.leadingAnchor), - layoutGuide.trailingAnchor.constraint(equalTo: superview.trailingAnchor, constant: 8) + layoutGuide.trailingAnchor.constraint( + equalTo: superview.trailingAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -102,22 +105,35 @@ final class UILayoutGuideEqualToUIViewConstraintTests: XCTestCase { guard #available(iOS 11.0, tvOS 11.0, *) else { throw XCTSkip("This test can only run on iOS 11.0+ or tvOS 11.0+") } - XCTContext.runActivity(named: "equal(toSystemSpacingAfter:), equal(toSystemSpacingBelow:)") { _ in + XCTContext.runActivity( + named: "equal(toSystemSpacingAfter:), equal(toSystemSpacingBelow:)" + ) { _ in let constraints = layoutGuide.autoLayout { item in item.top.equal(toSystemSpacingBelow: superview.topAnchor) item.leading.equal(toSystemSpacingAfter: superview.leadingAnchor) - item.trailing.equal(toSystemSpacingAfter: superview.trailingAnchor, multipliedBy: -1) + item.trailing.equal( + toSystemSpacingAfter: superview.trailingAnchor, + multipliedBy: -1 + ) item.bottom.equal(toSystemSpacingBelow: superview.bottomAnchor, multipliedBy: -1) } let expectedConstraints = [ - layoutGuide.topAnchor.constraint(equalToSystemSpacingBelow: superview.topAnchor, - multiplier: 1), - layoutGuide.leadingAnchor.constraint(equalToSystemSpacingAfter: superview.leadingAnchor, - multiplier: 1), - layoutGuide.trailingAnchor.constraint(equalToSystemSpacingAfter: superview.trailingAnchor, - multiplier: -1), - layoutGuide.bottomAnchor.constraint(equalToSystemSpacingBelow: superview.bottomAnchor, - multiplier: -1) + layoutGuide.topAnchor.constraint( + equalToSystemSpacingBelow: superview.topAnchor, + multiplier: 1 + ), + layoutGuide.leadingAnchor.constraint( + equalToSystemSpacingAfter: superview.leadingAnchor, + multiplier: 1 + ), + layoutGuide.trailingAnchor.constraint( + equalToSystemSpacingAfter: superview.trailingAnchor, + multiplier: -1 + ), + layoutGuide.bottomAnchor.constraint( + equalToSystemSpacingBelow: superview.bottomAnchor, + multiplier: -1 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -197,7 +213,10 @@ final class UILayoutGuideEqualToUIViewConstraintTests: XCTestCase { let expectedConstraints = [ layoutGuide.centerXAnchor.constraint(equalTo: superview.centerXAnchor), layoutGuide.centerYAnchor.constraint(equalTo: superview.centerYAnchor), - layoutGuide.leadingAnchor.constraint(equalTo: superview.leadingAnchor, constant: 10), + layoutGuide.leadingAnchor.constraint( + equalTo: superview.leadingAnchor, + constant: 10 + ), layoutGuide.topAnchor.constraint(equalTo: superview.topAnchor, constant: 20) ] NSLayoutConstraint.activate(expectedConstraints) @@ -312,10 +331,14 @@ final class UILayoutGuideEqualToUIViewConstraintTests: XCTestCase { item.leftRight.insideOrEqual(to: superview, insetBy: 8) } let expectedConstraints = [ - layoutGuide.leftAnchor.constraint(greaterThanOrEqualTo: superview.leftAnchor, - constant: 8), - layoutGuide.rightAnchor.constraint(lessThanOrEqualTo: superview.rightAnchor, - constant: -8) + layoutGuide.leftAnchor.constraint( + greaterThanOrEqualTo: superview.leftAnchor, + constant: 8 + ), + layoutGuide.rightAnchor.constraint( + lessThanOrEqualTo: superview.rightAnchor, + constant: -8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -358,8 +381,14 @@ final class UILayoutGuideEqualToUIViewConstraintTests: XCTestCase { item.leftRight.insideOrEqualToSuperview(insetBy: 8) } let expectedConstraints = [ - layoutGuide.leftAnchor.constraint(greaterThanOrEqualTo: superview.leftAnchor, constant: 8), - layoutGuide.rightAnchor.constraint(lessThanOrEqualTo: superview.rightAnchor, constant: -8) + layoutGuide.leftAnchor.constraint( + greaterThanOrEqualTo: superview.leftAnchor, + constant: 8 + ), + layoutGuide.rightAnchor.constraint( + lessThanOrEqualTo: superview.rightAnchor, + constant: -8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -405,8 +434,14 @@ final class UILayoutGuideEqualToUIViewConstraintTests: XCTestCase { item.topBottom.insideOrEqual(to: superview, insetBy: 8) } let expectedConstraints = [ - layoutGuide.topAnchor.constraint(greaterThanOrEqualTo: superview.topAnchor, constant: 8), - layoutGuide.bottomAnchor.constraint(lessThanOrEqualTo: superview.bottomAnchor, constant: -8) + layoutGuide.topAnchor.constraint( + greaterThanOrEqualTo: superview.topAnchor, + constant: 8 + ), + layoutGuide.bottomAnchor.constraint( + lessThanOrEqualTo: superview.bottomAnchor, + constant: -8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -449,8 +484,14 @@ final class UILayoutGuideEqualToUIViewConstraintTests: XCTestCase { item.topBottom.insideOrEqualToSuperview(insetBy: 8) } let expectedConstraints = [ - layoutGuide.topAnchor.constraint(greaterThanOrEqualTo: superview.topAnchor, constant: 8), - layoutGuide.bottomAnchor.constraint(lessThanOrEqualTo: superview.bottomAnchor, constant: -8) + layoutGuide.topAnchor.constraint( + greaterThanOrEqualTo: superview.topAnchor, + constant: 8 + ), + layoutGuide.bottomAnchor.constraint( + lessThanOrEqualTo: superview.bottomAnchor, + constant: -8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -507,14 +548,22 @@ final class UILayoutGuideEqualToUIViewConstraintTests: XCTestCase { item.edges.insideOrEqual(to: superview, insetBy: insets) } let expectedConstraints = [ - layoutGuide.topAnchor.constraint(greaterThanOrEqualTo: superview.topAnchor, - constant: 10), - layoutGuide.leftAnchor.constraint(greaterThanOrEqualTo: superview.leftAnchor, - constant: 20), - layoutGuide.rightAnchor.constraint(lessThanOrEqualTo: superview.rightAnchor, - constant: -40), - layoutGuide.bottomAnchor.constraint(lessThanOrEqualTo: superview.bottomAnchor, - constant: -30) + layoutGuide.topAnchor.constraint( + greaterThanOrEqualTo: superview.topAnchor, + constant: 10 + ), + layoutGuide.leftAnchor.constraint( + greaterThanOrEqualTo: superview.leftAnchor, + constant: 20 + ), + layoutGuide.rightAnchor.constraint( + lessThanOrEqualTo: superview.rightAnchor, + constant: -40 + ), + layoutGuide.bottomAnchor.constraint( + lessThanOrEqualTo: superview.bottomAnchor, + constant: -30 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -524,14 +573,22 @@ final class UILayoutGuideEqualToUIViewConstraintTests: XCTestCase { item.edges.insideOrEqual(to: superview, insetBy: 20) } let expectedConstraints = [ - layoutGuide.topAnchor.constraint(greaterThanOrEqualTo: superview.topAnchor, - constant: 20), - layoutGuide.leftAnchor.constraint(greaterThanOrEqualTo: superview.leftAnchor, - constant: 20), - layoutGuide.rightAnchor.constraint(lessThanOrEqualTo: superview.rightAnchor, - constant: -20), - layoutGuide.bottomAnchor.constraint(lessThanOrEqualTo: superview.bottomAnchor, - constant: -20) + layoutGuide.topAnchor.constraint( + greaterThanOrEqualTo: superview.topAnchor, + constant: 20 + ), + layoutGuide.leftAnchor.constraint( + greaterThanOrEqualTo: superview.leftAnchor, + constant: 20 + ), + layoutGuide.rightAnchor.constraint( + lessThanOrEqualTo: superview.rightAnchor, + constant: -20 + ), + layoutGuide.bottomAnchor.constraint( + lessThanOrEqualTo: superview.bottomAnchor, + constant: -20 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -586,14 +643,22 @@ final class UILayoutGuideEqualToUIViewConstraintTests: XCTestCase { item.edges.insideOrEqualToSuperview(insetBy: insets) } let expectedConstraints = [ - layoutGuide.topAnchor.constraint(greaterThanOrEqualTo: superview.topAnchor, - constant: 10), - layoutGuide.leftAnchor.constraint(greaterThanOrEqualTo: superview.leftAnchor, - constant: 20), - layoutGuide.rightAnchor.constraint(lessThanOrEqualTo: superview.rightAnchor, - constant: -40), - layoutGuide.bottomAnchor.constraint(lessThanOrEqualTo: superview.bottomAnchor, - constant: -30) + layoutGuide.topAnchor.constraint( + greaterThanOrEqualTo: superview.topAnchor, + constant: 10 + ), + layoutGuide.leftAnchor.constraint( + greaterThanOrEqualTo: superview.leftAnchor, + constant: 20 + ), + layoutGuide.rightAnchor.constraint( + lessThanOrEqualTo: superview.rightAnchor, + constant: -40 + ), + layoutGuide.bottomAnchor.constraint( + lessThanOrEqualTo: superview.bottomAnchor, + constant: -30 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -603,14 +668,22 @@ final class UILayoutGuideEqualToUIViewConstraintTests: XCTestCase { item.edges.insideOrEqualToSuperview(insetBy: 20) } let expectedConstraints = [ - layoutGuide.topAnchor.constraint(greaterThanOrEqualTo: superview.topAnchor, - constant: 20), - layoutGuide.leftAnchor.constraint(greaterThanOrEqualTo: superview.leftAnchor, - constant: 20), - layoutGuide.rightAnchor.constraint(lessThanOrEqualTo: superview.rightAnchor, - constant: -20), - layoutGuide.bottomAnchor.constraint(lessThanOrEqualTo: superview.bottomAnchor, - constant: -20) + layoutGuide.topAnchor.constraint( + greaterThanOrEqualTo: superview.topAnchor, + constant: 20 + ), + layoutGuide.leftAnchor.constraint( + greaterThanOrEqualTo: superview.leftAnchor, + constant: 20 + ), + layoutGuide.rightAnchor.constraint( + lessThanOrEqualTo: superview.rightAnchor, + constant: -20 + ), + layoutGuide.bottomAnchor.constraint( + lessThanOrEqualTo: superview.bottomAnchor, + constant: -20 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) diff --git a/Tests/AceLayoutTests/LayoutTests/EqualTests/UIViewEqualToUILayoutGuideConstraintTests.swift b/Tests/AceLayoutTests/LayoutTests/EqualTests/UIViewEqualToUILayoutGuideConstraintTests.swift index cbc222d..cb186e9 100644 --- a/Tests/AceLayoutTests/LayoutTests/EqualTests/UIViewEqualToUILayoutGuideConstraintTests.swift +++ b/Tests/AceLayoutTests/LayoutTests/EqualTests/UIViewEqualToUILayoutGuideConstraintTests.swift @@ -38,8 +38,10 @@ final class UIViewEqualToUILayoutGuideConstraintTests: XCTestCase { } let expectedConstraints = [ subview.leadingAnchor.constraint(equalTo: layoutMarginsGuide.leadingAnchor), - subview.trailingAnchor.constraint(equalTo: layoutMarginsGuide.trailingAnchor, - constant: 8) + subview.trailingAnchor.constraint( + equalTo: layoutMarginsGuide.trailingAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -50,8 +52,10 @@ final class UIViewEqualToUILayoutGuideConstraintTests: XCTestCase { item.leading.equal(to: layoutMarginsGuide.trailingAnchor, plus: 8) } let expectedConstraints = [ - subview.leadingAnchor.constraint(equalTo: layoutMarginsGuide.trailingAnchor, - constant: 8) + subview.leadingAnchor.constraint( + equalTo: layoutMarginsGuide.trailingAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -67,8 +71,10 @@ final class UIViewEqualToUILayoutGuideConstraintTests: XCTestCase { } let expectedConstraints = [ subview.topAnchor.constraint(equalTo: layoutMarginsGuide.topAnchor), - subview.bottomAnchor.constraint(equalTo: layoutMarginsGuide.bottomAnchor, - constant: 8) + subview.bottomAnchor.constraint( + equalTo: layoutMarginsGuide.bottomAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -79,8 +85,10 @@ final class UIViewEqualToUILayoutGuideConstraintTests: XCTestCase { item.top.equal(to: layoutMarginsGuide.bottomAnchor, plus: 8) } let expectedConstraints = [ - subview.topAnchor.constraint(equalTo: layoutMarginsGuide.bottomAnchor, - constant: 8) + subview.topAnchor.constraint( + equalTo: layoutMarginsGuide.bottomAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -91,23 +99,39 @@ final class UIViewEqualToUILayoutGuideConstraintTests: XCTestCase { guard #available(iOS 11.0, tvOS 11.0, *) else { throw XCTSkip("This test can only run on iOS 11.0+ or tvOS 11.0+") } - XCTContext.runActivity(named: "equal(toSystemSpacingAfter:), equal(toSystemSpacingBelow:)") { _ in + XCTContext.runActivity( + named: "equal(toSystemSpacingAfter:), equal(toSystemSpacingBelow:)" + ) { _ in let layoutMarginsGuide = superview.layoutMarginsGuide let constraints = subview.autoLayout { item in item.top.equal(toSystemSpacingBelow: layoutMarginsGuide.topAnchor) item.leading.equal(toSystemSpacingAfter: layoutMarginsGuide.leadingAnchor) - item.trailing.equal(toSystemSpacingAfter: layoutMarginsGuide.trailingAnchor, multipliedBy: -1) - item.bottom.equal(toSystemSpacingBelow: layoutMarginsGuide.bottomAnchor, multipliedBy: -1) + item.trailing.equal( + toSystemSpacingAfter: layoutMarginsGuide.trailingAnchor, + multipliedBy: -1 + ) + item.bottom.equal( + toSystemSpacingBelow: layoutMarginsGuide.bottomAnchor, + multipliedBy: -1 + ) } let expectedConstraints = [ - subview.topAnchor.constraint(equalToSystemSpacingBelow: layoutMarginsGuide.topAnchor, - multiplier: 1), - subview.leadingAnchor.constraint(equalToSystemSpacingAfter: layoutMarginsGuide.leadingAnchor, - multiplier: 1), - subview.trailingAnchor.constraint(equalToSystemSpacingAfter: layoutMarginsGuide.trailingAnchor, - multiplier: -1), - subview.bottomAnchor.constraint(equalToSystemSpacingBelow: layoutMarginsGuide.bottomAnchor, - multiplier: -1) + subview.topAnchor.constraint( + equalToSystemSpacingBelow: layoutMarginsGuide.topAnchor, + multiplier: 1 + ), + subview.leadingAnchor.constraint( + equalToSystemSpacingAfter: layoutMarginsGuide.leadingAnchor, + multiplier: 1 + ), + subview.trailingAnchor.constraint( + equalToSystemSpacingAfter: layoutMarginsGuide.trailingAnchor, + multiplier: -1 + ), + subview.bottomAnchor.constraint( + equalToSystemSpacingBelow: layoutMarginsGuide.bottomAnchor, + multiplier: -1 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -124,10 +148,14 @@ final class UIViewEqualToUILayoutGuideConstraintTests: XCTestCase { } let expectedConstraints = [ subview.widthAnchor.constraint(equalTo: layoutMarginsGuide.widthAnchor), - subview.heightAnchor.constraint(equalTo: layoutMarginsGuide.heightAnchor, - constant: 8), - subview.heightAnchor.constraint(equalTo: layoutMarginsGuide.heightAnchor, - multiplier: 2) + subview.heightAnchor.constraint( + equalTo: layoutMarginsGuide.heightAnchor, + constant: 8 + ), + subview.heightAnchor.constraint( + equalTo: layoutMarginsGuide.heightAnchor, + multiplier: 2 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -139,10 +167,14 @@ final class UIViewEqualToUILayoutGuideConstraintTests: XCTestCase { item.width.equal(to: layoutMarginsGuide.heightAnchor, multipliedBy: 2) } let expectedConstraints = [ - subview.widthAnchor.constraint(equalTo: layoutMarginsGuide.heightAnchor, - constant: 8), - subview.widthAnchor.constraint(equalTo: layoutMarginsGuide.heightAnchor, - multiplier: 2) + subview.widthAnchor.constraint( + equalTo: layoutMarginsGuide.heightAnchor, + constant: 8 + ), + subview.widthAnchor.constraint( + equalTo: layoutMarginsGuide.heightAnchor, + multiplier: 2 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -158,8 +190,10 @@ final class UIViewEqualToUILayoutGuideConstraintTests: XCTestCase { } let expectedConstraints = [ subview.firstBaselineAnchor.constraint(equalTo: layoutMarginsGuide.topAnchor), - subview.firstBaselineAnchor.constraint(equalTo: layoutMarginsGuide.bottomAnchor, - constant: 8) + subview.firstBaselineAnchor.constraint( + equalTo: layoutMarginsGuide.bottomAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -177,10 +211,14 @@ final class UIViewEqualToUILayoutGuideConstraintTests: XCTestCase { let expectedConstraints = [ subview.centerXAnchor.constraint(equalTo: layoutMarginsGuide.centerXAnchor), subview.centerYAnchor.constraint(equalTo: layoutMarginsGuide.centerYAnchor), - subview.leadingAnchor.constraint(equalTo: layoutMarginsGuide.leadingAnchor, - constant: 10), - subview.topAnchor.constraint(equalTo: layoutMarginsGuide.topAnchor, - constant: 20) + subview.leadingAnchor.constraint( + equalTo: layoutMarginsGuide.leadingAnchor, + constant: 10 + ), + subview.topAnchor.constraint( + equalTo: layoutMarginsGuide.topAnchor, + constant: 20 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -197,10 +235,14 @@ final class UIViewEqualToUILayoutGuideConstraintTests: XCTestCase { let expectedConstraints = [ subview.widthAnchor.constraint(equalTo: layoutMarginsGuide.widthAnchor), subview.heightAnchor.constraint(equalTo: layoutMarginsGuide.heightAnchor), - subview.widthAnchor.constraint(equalTo: layoutMarginsGuide.widthAnchor, - multiplier: 2), - subview.heightAnchor.constraint(equalTo: layoutMarginsGuide.heightAnchor, - multiplier: 2) + subview.widthAnchor.constraint( + equalTo: layoutMarginsGuide.widthAnchor, + multiplier: 2 + ), + subview.heightAnchor.constraint( + equalTo: layoutMarginsGuide.heightAnchor, + multiplier: 2 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -238,8 +280,12 @@ final class UIViewEqualToUILayoutGuideConstraintTests: XCTestCase { item.leadingTrailing.insideOrEqual(to: layoutMarginsGuide) } let expectedConstraints = [ - subview.leadingAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.leadingAnchor), - subview.trailingAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.trailingAnchor) + subview.leadingAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.leadingAnchor + ), + subview.trailingAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.trailingAnchor + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -250,10 +296,14 @@ final class UIViewEqualToUILayoutGuideConstraintTests: XCTestCase { item.leftRight.insideOrEqual(to: layoutMarginsGuide, insetBy: 8) } let expectedConstraints = [ - subview.leftAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.leftAnchor, - constant: 8), - subview.rightAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.rightAnchor, - constant: -8) + subview.leftAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.leftAnchor, + constant: 8 + ), + subview.rightAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.rightAnchor, + constant: -8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -280,7 +330,10 @@ final class UIViewEqualToUILayoutGuideConstraintTests: XCTestCase { } let expectedConstraints = [ subview.topAnchor.constraint(equalTo: layoutMarginsGuide.topAnchor, constant: 8), - subview.bottomAnchor.constraint(equalTo: layoutMarginsGuide.bottomAnchor, constant: -8) + subview.bottomAnchor.constraint( + equalTo: layoutMarginsGuide.bottomAnchor, + constant: -8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -303,10 +356,14 @@ final class UIViewEqualToUILayoutGuideConstraintTests: XCTestCase { item.topBottom.insideOrEqual(to: layoutMarginsGuide, insetBy: 8) } let expectedConstraints = [ - subview.topAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.topAnchor, - constant: 8), - subview.bottomAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.bottomAnchor, - constant: -8) + subview.topAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.topAnchor, + constant: 8 + ), + subview.bottomAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.bottomAnchor, + constant: -8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -336,10 +393,22 @@ final class UIViewEqualToUILayoutGuideConstraintTests: XCTestCase { item.edges.equal(to: layoutMarginsGuide, insetBy: insets) } let expectedConstraints = [ - subview.topAnchor.constraint(equalTo: layoutMarginsGuide.topAnchor, constant: 10), - subview.leftAnchor.constraint(equalTo: layoutMarginsGuide.leftAnchor, constant: 20), - subview.rightAnchor.constraint(equalTo: layoutMarginsGuide.rightAnchor, constant: -40), - subview.bottomAnchor.constraint(equalTo: layoutMarginsGuide.bottomAnchor, constant: -30) + subview.topAnchor.constraint( + equalTo: layoutMarginsGuide.topAnchor, + constant: 10 + ), + subview.leftAnchor.constraint( + equalTo: layoutMarginsGuide.leftAnchor, + constant: 20 + ), + subview.rightAnchor.constraint( + equalTo: layoutMarginsGuide.rightAnchor, + constant: -40 + ), + subview.bottomAnchor.constraint( + equalTo: layoutMarginsGuide.bottomAnchor, + constant: -30 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -350,10 +419,22 @@ final class UIViewEqualToUILayoutGuideConstraintTests: XCTestCase { item.edges.equal(to: layoutMarginsGuide, insetBy: 20) } let expectedConstraints = [ - subview.topAnchor.constraint(equalTo: layoutMarginsGuide.topAnchor, constant: 20), - subview.leftAnchor.constraint(equalTo: layoutMarginsGuide.leftAnchor, constant: 20), - subview.rightAnchor.constraint(equalTo: layoutMarginsGuide.rightAnchor, constant: -20), - subview.bottomAnchor.constraint(equalTo: layoutMarginsGuide.bottomAnchor, constant: -20) + subview.topAnchor.constraint( + equalTo: layoutMarginsGuide.topAnchor, + constant: 20 + ), + subview.leftAnchor.constraint( + equalTo: layoutMarginsGuide.leftAnchor, + constant: 20 + ), + subview.rightAnchor.constraint( + equalTo: layoutMarginsGuide.rightAnchor, + constant: -20 + ), + subview.bottomAnchor.constraint( + equalTo: layoutMarginsGuide.bottomAnchor, + constant: -20 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -367,14 +448,22 @@ final class UIViewEqualToUILayoutGuideConstraintTests: XCTestCase { item.edges.insideOrEqual(to: layoutMarginsGuide, insetBy: insets) } let expectedConstraints = [ - subview.topAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.topAnchor, - constant: 10), - subview.leftAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.leftAnchor, - constant: 20), - subview.rightAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.rightAnchor, - constant: -40), - subview.bottomAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.bottomAnchor, - constant: -30) + subview.topAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.topAnchor, + constant: 10 + ), + subview.leftAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.leftAnchor, + constant: 20 + ), + subview.rightAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.rightAnchor, + constant: -40 + ), + subview.bottomAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.bottomAnchor, + constant: -30 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -385,14 +474,22 @@ final class UIViewEqualToUILayoutGuideConstraintTests: XCTestCase { item.edges.insideOrEqual(to: layoutMarginsGuide, insetBy: 20) } let expectedConstraints = [ - subview.topAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.topAnchor, - constant: 20), - subview.leftAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.leftAnchor, - constant: 20), - subview.rightAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.rightAnchor, - constant: -20), - subview.bottomAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.bottomAnchor, - constant: -20) + subview.topAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.topAnchor, + constant: 20 + ), + subview.leftAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.leftAnchor, + constant: 20 + ), + subview.rightAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.rightAnchor, + constant: -20 + ), + subview.bottomAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.bottomAnchor, + constant: -20 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) diff --git a/Tests/AceLayoutTests/LayoutTests/EqualTests/UIViewEqualToUIViewConstraintTests.swift b/Tests/AceLayoutTests/LayoutTests/EqualTests/UIViewEqualToUIViewConstraintTests.swift index 5e3a075..8acd850 100644 --- a/Tests/AceLayoutTests/LayoutTests/EqualTests/UIViewEqualToUIViewConstraintTests.swift +++ b/Tests/AceLayoutTests/LayoutTests/EqualTests/UIViewEqualToUIViewConstraintTests.swift @@ -103,7 +103,9 @@ final class UIViewEqualToUIViewConstraintTests: XCTestCase { guard #available(iOS 11.0, tvOS 11.0, *) else { throw XCTSkip("This test can only run on iOS 11.0+ or tvOS 11.0+") } - XCTContext.runActivity(named: "equal(toSystemSpacingAfter:), equal(toSystemSpacingBelow:)") { _ in + XCTContext.runActivity( + named: "equal(toSystemSpacingAfter:), equal(toSystemSpacingBelow:)" + ) { _ in let constraints = subview.autoLayout { item in item.top.equal(toSystemSpacingBelow: superview.topAnchor) item.leading.equal(toSystemSpacingAfter: superview.leadingAnchor) @@ -111,14 +113,22 @@ final class UIViewEqualToUIViewConstraintTests: XCTestCase { item.bottom.equal(toSystemSpacingBelow: superview.bottomAnchor, multipliedBy: -1) } let expectedConstraints = [ - subview.topAnchor.constraint(equalToSystemSpacingBelow: superview.topAnchor, - multiplier: 1), - subview.leadingAnchor.constraint(equalToSystemSpacingAfter: superview.leadingAnchor, - multiplier: 1), - subview.trailingAnchor.constraint(equalToSystemSpacingAfter: superview.trailingAnchor, - multiplier: -1), - subview.bottomAnchor.constraint(equalToSystemSpacingBelow: superview.bottomAnchor, - multiplier: -1) + subview.topAnchor.constraint( + equalToSystemSpacingBelow: superview.topAnchor, + multiplier: 1 + ), + subview.leadingAnchor.constraint( + equalToSystemSpacingAfter: superview.leadingAnchor, + multiplier: 1 + ), + subview.trailingAnchor.constraint( + equalToSystemSpacingAfter: superview.trailingAnchor, + multiplier: -1 + ), + subview.bottomAnchor.constraint( + equalToSystemSpacingBelow: superview.bottomAnchor, + multiplier: -1 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -196,7 +206,10 @@ final class UIViewEqualToUIViewConstraintTests: XCTestCase { } let expectedConstraints = [ subview.firstBaselineAnchor.constraint(equalTo: superview.firstBaselineAnchor), - subview.lastBaselineAnchor.constraint(equalTo: superview.lastBaselineAnchor, constant: 8) + subview.lastBaselineAnchor.constraint( + equalTo: superview.lastBaselineAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -216,8 +229,10 @@ final class UIViewEqualToUIViewConstraintTests: XCTestCase { item.firstBaseline.equalToSuperview(plus: 8) } let expectedConstraints = [ - subview.firstBaselineAnchor.constraint(equalTo: superview.firstBaselineAnchor, - constant: 8) + subview.firstBaselineAnchor.constraint( + equalTo: superview.firstBaselineAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -349,8 +364,14 @@ final class UIViewEqualToUIViewConstraintTests: XCTestCase { item.leftRight.insideOrEqual(to: superview, insetBy: 8) } let expectedConstraints = [ - subview.leftAnchor.constraint(greaterThanOrEqualTo: superview.leftAnchor, constant: 8), - subview.rightAnchor.constraint(lessThanOrEqualTo: superview.rightAnchor, constant: -8) + subview.leftAnchor.constraint( + greaterThanOrEqualTo: superview.leftAnchor, + constant: 8 + ), + subview.rightAnchor.constraint( + lessThanOrEqualTo: superview.rightAnchor, + constant: -8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -393,8 +414,14 @@ final class UIViewEqualToUIViewConstraintTests: XCTestCase { item.leftRight.insideOrEqualToSuperview(insetBy: 8) } let expectedConstraints = [ - subview.leftAnchor.constraint(greaterThanOrEqualTo: superview.leftAnchor, constant: 8), - subview.rightAnchor.constraint(lessThanOrEqualTo: superview.rightAnchor, constant: -8) + subview.leftAnchor.constraint( + greaterThanOrEqualTo: superview.leftAnchor, + constant: 8 + ), + subview.rightAnchor.constraint( + lessThanOrEqualTo: superview.rightAnchor, + constant: -8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -440,8 +467,14 @@ final class UIViewEqualToUIViewConstraintTests: XCTestCase { item.topBottom.insideOrEqual(to: superview, insetBy: 8) } let expectedConstraints = [ - subview.topAnchor.constraint(greaterThanOrEqualTo: superview.topAnchor, constant: 8), - subview.bottomAnchor.constraint(lessThanOrEqualTo: superview.bottomAnchor, constant: -8) + subview.topAnchor.constraint( + greaterThanOrEqualTo: superview.topAnchor, + constant: 8 + ), + subview.bottomAnchor.constraint( + lessThanOrEqualTo: superview.bottomAnchor, + constant: -8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -484,8 +517,14 @@ final class UIViewEqualToUIViewConstraintTests: XCTestCase { item.topBottom.insideOrEqualToSuperview(insetBy: 8) } let expectedConstraints = [ - subview.topAnchor.constraint(greaterThanOrEqualTo: superview.topAnchor, constant: 8), - subview.bottomAnchor.constraint(lessThanOrEqualTo: superview.bottomAnchor, constant: -8) + subview.topAnchor.constraint( + greaterThanOrEqualTo: superview.topAnchor, + constant: 8 + ), + subview.bottomAnchor.constraint( + lessThanOrEqualTo: superview.bottomAnchor, + constant: -8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -542,10 +581,22 @@ final class UIViewEqualToUIViewConstraintTests: XCTestCase { item.edges.insideOrEqual(to: superview, insetBy: insets) } let expectedConstraints = [ - subview.topAnchor.constraint(greaterThanOrEqualTo: superview.topAnchor, constant: 10), - subview.leftAnchor.constraint(greaterThanOrEqualTo: superview.leftAnchor, constant: 20), - subview.rightAnchor.constraint(lessThanOrEqualTo: superview.rightAnchor, constant: -40), - subview.bottomAnchor.constraint(lessThanOrEqualTo: superview.bottomAnchor, constant: -30) + subview.topAnchor.constraint( + greaterThanOrEqualTo: superview.topAnchor, + constant: 10 + ), + subview.leftAnchor.constraint( + greaterThanOrEqualTo: superview.leftAnchor, + constant: 20 + ), + subview.rightAnchor.constraint( + lessThanOrEqualTo: superview.rightAnchor, + constant: -40 + ), + subview.bottomAnchor.constraint( + lessThanOrEqualTo: superview.bottomAnchor, + constant: -30 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -555,10 +606,22 @@ final class UIViewEqualToUIViewConstraintTests: XCTestCase { item.edges.insideOrEqual(to: superview, insetBy: 20) } let expectedConstraints = [ - subview.topAnchor.constraint(greaterThanOrEqualTo: superview.topAnchor, constant: 20), - subview.leftAnchor.constraint(greaterThanOrEqualTo: superview.leftAnchor, constant: 20), - subview.rightAnchor.constraint(lessThanOrEqualTo: superview.rightAnchor, constant: -20), - subview.bottomAnchor.constraint(lessThanOrEqualTo: superview.bottomAnchor, constant: -20) + subview.topAnchor.constraint( + greaterThanOrEqualTo: superview.topAnchor, + constant: 20 + ), + subview.leftAnchor.constraint( + greaterThanOrEqualTo: superview.leftAnchor, + constant: 20 + ), + subview.rightAnchor.constraint( + lessThanOrEqualTo: superview.rightAnchor, + constant: -20 + ), + subview.bottomAnchor.constraint( + lessThanOrEqualTo: superview.bottomAnchor, + constant: -20 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -613,10 +676,22 @@ final class UIViewEqualToUIViewConstraintTests: XCTestCase { item.edges.insideOrEqualToSuperview(insetBy: insets) } let expectedConstraints = [ - subview.topAnchor.constraint(greaterThanOrEqualTo: superview.topAnchor, constant: 10), - subview.leftAnchor.constraint(greaterThanOrEqualTo: superview.leftAnchor, constant: 20), - subview.rightAnchor.constraint(lessThanOrEqualTo: superview.rightAnchor, constant: -40), - subview.bottomAnchor.constraint(lessThanOrEqualTo: superview.bottomAnchor, constant: -30) + subview.topAnchor.constraint( + greaterThanOrEqualTo: superview.topAnchor, + constant: 10 + ), + subview.leftAnchor.constraint( + greaterThanOrEqualTo: superview.leftAnchor, + constant: 20 + ), + subview.rightAnchor.constraint( + lessThanOrEqualTo: superview.rightAnchor, + constant: -40 + ), + subview.bottomAnchor.constraint( + lessThanOrEqualTo: superview.bottomAnchor, + constant: -30 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -626,10 +701,22 @@ final class UIViewEqualToUIViewConstraintTests: XCTestCase { item.edges.insideOrEqualToSuperview(insetBy: 20) } let expectedConstraints = [ - subview.topAnchor.constraint(greaterThanOrEqualTo: superview.topAnchor, constant: 20), - subview.leftAnchor.constraint(greaterThanOrEqualTo: superview.leftAnchor, constant: 20), - subview.rightAnchor.constraint(lessThanOrEqualTo: superview.rightAnchor, constant: -20), - subview.bottomAnchor.constraint(lessThanOrEqualTo: superview.bottomAnchor, constant: -20) + subview.topAnchor.constraint( + greaterThanOrEqualTo: superview.topAnchor, + constant: 20 + ), + subview.leftAnchor.constraint( + greaterThanOrEqualTo: superview.leftAnchor, + constant: 20 + ), + subview.rightAnchor.constraint( + lessThanOrEqualTo: superview.rightAnchor, + constant: -20 + ), + subview.bottomAnchor.constraint( + lessThanOrEqualTo: superview.bottomAnchor, + constant: -20 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) diff --git a/Tests/AceLayoutTests/LayoutTests/GreaterThanOrEqualTests/UILayoutGuideGreaterThanOrEqualToUILayoutGuideConstraintTests.swift b/Tests/AceLayoutTests/LayoutTests/GreaterThanOrEqualTests/UILayoutGuideGreaterThanOrEqualToUILayoutGuideConstraintTests.swift index 6806fec..b15c921 100644 --- a/Tests/AceLayoutTests/LayoutTests/GreaterThanOrEqualTests/UILayoutGuideGreaterThanOrEqualToUILayoutGuideConstraintTests.swift +++ b/Tests/AceLayoutTests/LayoutTests/GreaterThanOrEqualTests/UILayoutGuideGreaterThanOrEqualToUILayoutGuideConstraintTests.swift @@ -36,9 +36,13 @@ final class UILayoutGuideGreaterThanOrEqualToUILayoutGuideConstraintTests: XCTes item.trailing.greaterThanOrEqual(to: layoutMarginsGuide, plus: 8) } let expectedConstraints = [ - layoutGuide.leadingAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.leadingAnchor), - layoutGuide.trailingAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.trailingAnchor, - constant: 8) + layoutGuide.leadingAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.leadingAnchor + ), + layoutGuide.trailingAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.trailingAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -49,8 +53,10 @@ final class UILayoutGuideGreaterThanOrEqualToUILayoutGuideConstraintTests: XCTes item.leading.greaterThanOrEqual(to: layoutMarginsGuide.trailingAnchor, plus: 8) } let expectedConstraints = [ - layoutGuide.leadingAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.trailingAnchor, - constant: 8) + layoutGuide.leadingAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.trailingAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -65,9 +71,13 @@ final class UILayoutGuideGreaterThanOrEqualToUILayoutGuideConstraintTests: XCTes item.bottom.greaterThanOrEqual(to: layoutMarginsGuide, plus: 8) } let expectedConstraints = [ - layoutGuide.topAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.topAnchor), - layoutGuide.bottomAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.bottomAnchor, - constant: 8) + layoutGuide.topAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.topAnchor + ), + layoutGuide.bottomAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.bottomAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -78,8 +88,10 @@ final class UILayoutGuideGreaterThanOrEqualToUILayoutGuideConstraintTests: XCTes item.top.greaterThanOrEqual(to: layoutMarginsGuide.bottomAnchor, plus: 8) } let expectedConstraints = [ - layoutGuide.topAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.bottomAnchor, - constant: 8) + layoutGuide.topAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.bottomAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -94,18 +106,35 @@ final class UILayoutGuideGreaterThanOrEqualToUILayoutGuideConstraintTests: XCTes let layoutMarginsGuide = superview.layoutMarginsGuide let constraints = layoutGuide.autoLayout { item in item.top.greaterThanOrEqual(toSystemSpacingBelow: layoutMarginsGuide.topAnchor) - item.leading.greaterThanOrEqual(toSystemSpacingAfter: layoutMarginsGuide.leadingAnchor) - item.trailing.greaterThanOrEqual(toSystemSpacingAfter: layoutMarginsGuide.trailingAnchor, multipliedBy: -1) - item.bottom.greaterThanOrEqual(toSystemSpacingBelow: layoutMarginsGuide.bottomAnchor, multipliedBy: -1) + item.leading.greaterThanOrEqual( + toSystemSpacingAfter: layoutMarginsGuide.leadingAnchor + ) + item.trailing.greaterThanOrEqual( + toSystemSpacingAfter: layoutMarginsGuide.trailingAnchor, + multipliedBy: -1 + ) + item.bottom.greaterThanOrEqual( + toSystemSpacingBelow: layoutMarginsGuide.bottomAnchor, + multipliedBy: -1 + ) } let expectedConstraints = [ - layoutGuide.topAnchor.constraint(greaterThanOrEqualToSystemSpacingBelow: layoutMarginsGuide.topAnchor, multiplier: 1), - layoutGuide.leadingAnchor.constraint(greaterThanOrEqualToSystemSpacingAfter: layoutMarginsGuide.leadingAnchor, - multiplier: 1), - layoutGuide.trailingAnchor.constraint(greaterThanOrEqualToSystemSpacingAfter: layoutMarginsGuide.trailingAnchor, - multiplier: -1), - layoutGuide.bottomAnchor.constraint(greaterThanOrEqualToSystemSpacingBelow: layoutMarginsGuide.bottomAnchor, - multiplier: -1) + layoutGuide.topAnchor.constraint( + greaterThanOrEqualToSystemSpacingBelow: layoutMarginsGuide.topAnchor, + multiplier: 1 + ), + layoutGuide.leadingAnchor.constraint( + greaterThanOrEqualToSystemSpacingAfter: layoutMarginsGuide.leadingAnchor, + multiplier: 1 + ), + layoutGuide.trailingAnchor.constraint( + greaterThanOrEqualToSystemSpacingAfter: layoutMarginsGuide.trailingAnchor, + multiplier: -1 + ), + layoutGuide.bottomAnchor.constraint( + greaterThanOrEqualToSystemSpacingBelow: layoutMarginsGuide.bottomAnchor, + multiplier: -1 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -121,11 +150,17 @@ final class UILayoutGuideGreaterThanOrEqualToUILayoutGuideConstraintTests: XCTes item.height.greaterThanOrEqual(to: layoutMarginsGuide, multipliedBy: 2) } let expectedConstraints = [ - layoutGuide.widthAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.widthAnchor), - layoutGuide.heightAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.heightAnchor, - constant: 8), - layoutGuide.heightAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.heightAnchor, - multiplier: 2) + layoutGuide.widthAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.widthAnchor + ), + layoutGuide.heightAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.heightAnchor, + constant: 8 + ), + layoutGuide.heightAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.heightAnchor, + multiplier: 2 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -137,10 +172,14 @@ final class UILayoutGuideGreaterThanOrEqualToUILayoutGuideConstraintTests: XCTes item.width.greaterThanOrEqual(to: layoutMarginsGuide.heightAnchor, multipliedBy: 2) } let expectedConstraints = [ - layoutGuide.widthAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.heightAnchor, - constant: 8), - layoutGuide.widthAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.heightAnchor, - multiplier: 2) + layoutGuide.widthAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.heightAnchor, + constant: 8 + ), + layoutGuide.widthAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.heightAnchor, + multiplier: 2 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -156,12 +195,20 @@ final class UILayoutGuideGreaterThanOrEqualToUILayoutGuideConstraintTests: XCTes item.topLeading.greaterThanOrEqual(to: layoutMarginsGuide, shiftedBy: offset) } let expectedConstraints = [ - layoutGuide.centerXAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.centerXAnchor), - layoutGuide.centerYAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.centerYAnchor), - layoutGuide.leadingAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.leadingAnchor, - constant: 10), - layoutGuide.topAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.topAnchor, - constant: 20) + layoutGuide.centerXAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.centerXAnchor + ), + layoutGuide.centerYAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.centerYAnchor + ), + layoutGuide.leadingAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.leadingAnchor, + constant: 10 + ), + layoutGuide.topAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.topAnchor, + constant: 20 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -176,12 +223,20 @@ final class UILayoutGuideGreaterThanOrEqualToUILayoutGuideConstraintTests: XCTes item.size.greaterThanOrEqual(to: layoutMarginsGuide, multipliedBy: 2) } let expectedConstraints = [ - layoutGuide.widthAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.widthAnchor), - layoutGuide.heightAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.heightAnchor), - layoutGuide.widthAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.widthAnchor, - multiplier: 2), - layoutGuide.heightAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.heightAnchor, - multiplier: 2) + layoutGuide.widthAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.widthAnchor + ), + layoutGuide.heightAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.heightAnchor + ), + layoutGuide.widthAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.widthAnchor, + multiplier: 2 + ), + layoutGuide.heightAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.heightAnchor, + multiplier: 2 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) diff --git a/Tests/AceLayoutTests/LayoutTests/GreaterThanOrEqualTests/UILayoutGuideGreaterThanOrEqualToUIViewConstraintTests.swift b/Tests/AceLayoutTests/LayoutTests/GreaterThanOrEqualTests/UILayoutGuideGreaterThanOrEqualToUIViewConstraintTests.swift index cfb06ea..0399448 100644 --- a/Tests/AceLayoutTests/LayoutTests/GreaterThanOrEqualTests/UILayoutGuideGreaterThanOrEqualToUIViewConstraintTests.swift +++ b/Tests/AceLayoutTests/LayoutTests/GreaterThanOrEqualTests/UILayoutGuideGreaterThanOrEqualToUIViewConstraintTests.swift @@ -36,8 +36,10 @@ final class UILayoutGuideGreaterThanOrEqualToUIViewConstraintTests: XCTestCase { } let expectedConstraints = [ layoutGuide.leadingAnchor.constraint(greaterThanOrEqualTo: superview.leadingAnchor), - layoutGuide.trailingAnchor.constraint(greaterThanOrEqualTo: superview.trailingAnchor, - constant: 8) + layoutGuide.trailingAnchor.constraint( + greaterThanOrEqualTo: superview.trailingAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -47,8 +49,10 @@ final class UILayoutGuideGreaterThanOrEqualToUIViewConstraintTests: XCTestCase { item.leading.greaterThanOrEqual(to: superview.trailingAnchor, plus: 8) } let expectedConstraints = [ - layoutGuide.leadingAnchor.constraint(greaterThanOrEqualTo: superview.trailingAnchor, - constant: 8) + layoutGuide.leadingAnchor.constraint( + greaterThanOrEqualTo: superview.trailingAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -58,8 +62,10 @@ final class UILayoutGuideGreaterThanOrEqualToUIViewConstraintTests: XCTestCase { item.leading.greaterThanOrEqualToSuperview(plus: 8) } let expectedConstraints = [ - layoutGuide.leadingAnchor.constraint(greaterThanOrEqualTo: superview.leadingAnchor, - constant: 8) + layoutGuide.leadingAnchor.constraint( + greaterThanOrEqualTo: superview.leadingAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -74,8 +80,10 @@ final class UILayoutGuideGreaterThanOrEqualToUIViewConstraintTests: XCTestCase { } let expectedConstraints = [ layoutGuide.topAnchor.constraint(greaterThanOrEqualTo: superview.topAnchor), - layoutGuide.bottomAnchor.constraint(greaterThanOrEqualTo: superview.bottomAnchor, - constant: 8) + layoutGuide.bottomAnchor.constraint( + greaterThanOrEqualTo: superview.bottomAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -85,8 +93,10 @@ final class UILayoutGuideGreaterThanOrEqualToUIViewConstraintTests: XCTestCase { item.top.greaterThanOrEqual(to: superview.bottomAnchor, plus: 8) } let expectedConstraints = [ - layoutGuide.topAnchor.constraint(greaterThanOrEqualTo: superview.bottomAnchor, - constant: 8) + layoutGuide.topAnchor.constraint( + greaterThanOrEqualTo: superview.bottomAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -96,7 +106,10 @@ final class UILayoutGuideGreaterThanOrEqualToUIViewConstraintTests: XCTestCase { item.top.greaterThanOrEqualToSuperview(plus: 8) } let expectedConstraints = [ - layoutGuide.topAnchor.constraint(greaterThanOrEqualTo: superview.topAnchor, constant: 8) + layoutGuide.topAnchor.constraint( + greaterThanOrEqualTo: superview.topAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -111,20 +124,32 @@ final class UILayoutGuideGreaterThanOrEqualToUIViewConstraintTests: XCTestCase { let constraints = layoutGuide.autoLayout { item in item.top.greaterThanOrEqual(toSystemSpacingBelow: superview.topAnchor) item.leading.greaterThanOrEqual(toSystemSpacingAfter: superview.leadingAnchor) - item.trailing.greaterThanOrEqual(toSystemSpacingAfter: superview.trailingAnchor, - multipliedBy: -1) - item.bottom.greaterThanOrEqual(toSystemSpacingBelow: superview.bottomAnchor, - multipliedBy: -1) + item.trailing.greaterThanOrEqual( + toSystemSpacingAfter: superview.trailingAnchor, + multipliedBy: -1 + ) + item.bottom.greaterThanOrEqual( + toSystemSpacingBelow: superview.bottomAnchor, + multipliedBy: -1 + ) } let expectedConstraints = [ - layoutGuide.topAnchor.constraint(greaterThanOrEqualToSystemSpacingBelow: superview.topAnchor, - multiplier: 1), - layoutGuide.leadingAnchor.constraint(greaterThanOrEqualToSystemSpacingAfter: superview.leadingAnchor, - multiplier: 1), - layoutGuide.trailingAnchor.constraint(greaterThanOrEqualToSystemSpacingAfter: superview.trailingAnchor, - multiplier: -1), - layoutGuide.bottomAnchor.constraint(greaterThanOrEqualToSystemSpacingBelow: superview.bottomAnchor, - multiplier: -1) + layoutGuide.topAnchor.constraint( + greaterThanOrEqualToSystemSpacingBelow: superview.topAnchor, + multiplier: 1 + ), + layoutGuide.leadingAnchor.constraint( + greaterThanOrEqualToSystemSpacingAfter: superview.leadingAnchor, + multiplier: 1 + ), + layoutGuide.trailingAnchor.constraint( + greaterThanOrEqualToSystemSpacingAfter: superview.trailingAnchor, + multiplier: -1 + ), + layoutGuide.bottomAnchor.constraint( + greaterThanOrEqualToSystemSpacingBelow: superview.bottomAnchor, + multiplier: -1 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -140,10 +165,14 @@ final class UILayoutGuideGreaterThanOrEqualToUIViewConstraintTests: XCTestCase { } let expectedConstraints = [ layoutGuide.widthAnchor.constraint(greaterThanOrEqualTo: superview.widthAnchor), - layoutGuide.heightAnchor.constraint(greaterThanOrEqualTo: superview.heightAnchor, - constant: 8), - layoutGuide.heightAnchor.constraint(greaterThanOrEqualTo: superview.heightAnchor, - multiplier: 2) + layoutGuide.heightAnchor.constraint( + greaterThanOrEqualTo: superview.heightAnchor, + constant: 8 + ), + layoutGuide.heightAnchor.constraint( + greaterThanOrEqualTo: superview.heightAnchor, + multiplier: 2 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -154,10 +183,14 @@ final class UILayoutGuideGreaterThanOrEqualToUIViewConstraintTests: XCTestCase { item.width.greaterThanOrEqual(to: superview.heightAnchor, multipliedBy: 2) } let expectedConstraints = [ - layoutGuide.widthAnchor.constraint(greaterThanOrEqualTo: superview.heightAnchor, - constant: 8), - layoutGuide.widthAnchor.constraint(greaterThanOrEqualTo: superview.heightAnchor, - multiplier: 2) + layoutGuide.widthAnchor.constraint( + greaterThanOrEqualTo: superview.heightAnchor, + constant: 8 + ), + layoutGuide.widthAnchor.constraint( + greaterThanOrEqualTo: superview.heightAnchor, + multiplier: 2 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -168,10 +201,14 @@ final class UILayoutGuideGreaterThanOrEqualToUIViewConstraintTests: XCTestCase { item.width.greaterThanOrEqual(to: item.height, multipliedBy: 2) } let expectedConstraints = [ - layoutGuide.widthAnchor.constraint(greaterThanOrEqualTo: layoutGuide.heightAnchor, - constant: 8), - layoutGuide.widthAnchor.constraint(greaterThanOrEqualTo: layoutGuide.heightAnchor, - multiplier: 2) + layoutGuide.widthAnchor.constraint( + greaterThanOrEqualTo: layoutGuide.heightAnchor, + constant: 8 + ), + layoutGuide.widthAnchor.constraint( + greaterThanOrEqualTo: layoutGuide.heightAnchor, + multiplier: 2 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -192,10 +229,14 @@ final class UILayoutGuideGreaterThanOrEqualToUIViewConstraintTests: XCTestCase { item.height.greaterThanOrEqualToSuperview(multipliedBy: 2) } let expectedConstraints = [ - layoutGuide.widthAnchor.constraint(greaterThanOrEqualTo: superview.widthAnchor, - constant: 8), - layoutGuide.heightAnchor.constraint(greaterThanOrEqualTo: superview.heightAnchor, - multiplier: 2) + layoutGuide.widthAnchor.constraint( + greaterThanOrEqualTo: superview.widthAnchor, + constant: 8 + ), + layoutGuide.heightAnchor.constraint( + greaterThanOrEqualTo: superview.heightAnchor, + multiplier: 2 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -212,10 +253,14 @@ final class UILayoutGuideGreaterThanOrEqualToUIViewConstraintTests: XCTestCase { let expectedConstraints = [ layoutGuide.centerXAnchor.constraint(greaterThanOrEqualTo: superview.centerXAnchor), layoutGuide.centerYAnchor.constraint(greaterThanOrEqualTo: superview.centerYAnchor), - layoutGuide.leadingAnchor.constraint(greaterThanOrEqualTo: superview.leadingAnchor, - constant: 10), - layoutGuide.topAnchor.constraint(greaterThanOrEqualTo: superview.topAnchor, - constant: 20) + layoutGuide.leadingAnchor.constraint( + greaterThanOrEqualTo: superview.leadingAnchor, + constant: 10 + ), + layoutGuide.topAnchor.constraint( + greaterThanOrEqualTo: superview.topAnchor, + constant: 20 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -229,10 +274,14 @@ final class UILayoutGuideGreaterThanOrEqualToUIViewConstraintTests: XCTestCase { let expectedConstraints = [ layoutGuide.leftAnchor.constraint(greaterThanOrEqualTo: superview.leftAnchor), layoutGuide.topAnchor.constraint(greaterThanOrEqualTo: superview.topAnchor), - layoutGuide.rightAnchor.constraint(greaterThanOrEqualTo: superview.rightAnchor, - constant: 10), - layoutGuide.bottomAnchor.constraint(greaterThanOrEqualTo: superview.bottomAnchor, - constant: 20) + layoutGuide.rightAnchor.constraint( + greaterThanOrEqualTo: superview.rightAnchor, + constant: 10 + ), + layoutGuide.bottomAnchor.constraint( + greaterThanOrEqualTo: superview.bottomAnchor, + constant: 20 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -248,10 +297,14 @@ final class UILayoutGuideGreaterThanOrEqualToUIViewConstraintTests: XCTestCase { let expectedConstraints = [ layoutGuide.widthAnchor.constraint(greaterThanOrEqualTo: superview.widthAnchor), layoutGuide.heightAnchor.constraint(greaterThanOrEqualTo: superview.heightAnchor), - layoutGuide.widthAnchor.constraint(greaterThanOrEqualTo: superview.widthAnchor, - multiplier: 2), - layoutGuide.heightAnchor.constraint(greaterThanOrEqualTo: superview.heightAnchor, - multiplier: 2) + layoutGuide.widthAnchor.constraint( + greaterThanOrEqualTo: superview.widthAnchor, + multiplier: 2 + ), + layoutGuide.heightAnchor.constraint( + greaterThanOrEqualTo: superview.heightAnchor, + multiplier: 2 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -286,10 +339,14 @@ final class UILayoutGuideGreaterThanOrEqualToUIViewConstraintTests: XCTestCase { let expectedConstraints = [ layoutGuide.widthAnchor.constraint(greaterThanOrEqualTo: superview.widthAnchor), layoutGuide.heightAnchor.constraint(greaterThanOrEqualTo: superview.heightAnchor), - layoutGuide.widthAnchor.constraint(greaterThanOrEqualTo: superview.widthAnchor, - multiplier: 2), - layoutGuide.heightAnchor.constraint(greaterThanOrEqualTo: superview.heightAnchor, - multiplier: 2) + layoutGuide.widthAnchor.constraint( + greaterThanOrEqualTo: superview.widthAnchor, + multiplier: 2 + ), + layoutGuide.heightAnchor.constraint( + greaterThanOrEqualTo: superview.heightAnchor, + multiplier: 2 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) diff --git a/Tests/AceLayoutTests/LayoutTests/GreaterThanOrEqualTests/UIViewGreaterThanOrEqualToUILayoutGuideConstraintTests.swift b/Tests/AceLayoutTests/LayoutTests/GreaterThanOrEqualTests/UIViewGreaterThanOrEqualToUILayoutGuideConstraintTests.swift index c31718f..a5f20a9 100644 --- a/Tests/AceLayoutTests/LayoutTests/GreaterThanOrEqualTests/UIViewGreaterThanOrEqualToUILayoutGuideConstraintTests.swift +++ b/Tests/AceLayoutTests/LayoutTests/GreaterThanOrEqualTests/UIViewGreaterThanOrEqualToUILayoutGuideConstraintTests.swift @@ -37,9 +37,13 @@ final class UIViewGreaterThanOrEqualToUILayoutGuideConstraintTests: XCTestCase { item.trailing.greaterThanOrEqual(to: layoutMarginsGuide, plus: 8) } let expectedConstraints = [ - subview.leadingAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.leadingAnchor), - subview.trailingAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.trailingAnchor, - constant: 8) + subview.leadingAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.leadingAnchor + ), + subview.trailingAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.trailingAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -50,8 +54,10 @@ final class UIViewGreaterThanOrEqualToUILayoutGuideConstraintTests: XCTestCase { item.leading.greaterThanOrEqual(to: layoutMarginsGuide.trailingAnchor, plus: 8) } let expectedConstraints = [ - subview.leadingAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.trailingAnchor, - constant: 8) + subview.leadingAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.trailingAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -67,8 +73,10 @@ final class UIViewGreaterThanOrEqualToUILayoutGuideConstraintTests: XCTestCase { } let expectedConstraints = [ subview.topAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.topAnchor), - subview.bottomAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.bottomAnchor, - constant: 8) + subview.bottomAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.bottomAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -79,8 +87,10 @@ final class UIViewGreaterThanOrEqualToUILayoutGuideConstraintTests: XCTestCase { item.top.greaterThanOrEqual(to: layoutMarginsGuide.bottomAnchor, plus: 8) } let expectedConstraints = [ - subview.topAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.bottomAnchor, - constant: 8) + subview.topAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.bottomAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -95,21 +105,35 @@ final class UIViewGreaterThanOrEqualToUILayoutGuideConstraintTests: XCTestCase { let layoutMarginsGuide = superview.layoutMarginsGuide let constraints = subview.autoLayout { item in item.top.greaterThanOrEqual(toSystemSpacingBelow: layoutMarginsGuide.topAnchor) - item.leading.greaterThanOrEqual(toSystemSpacingAfter: layoutMarginsGuide.leadingAnchor) - item.trailing.greaterThanOrEqual(toSystemSpacingAfter: layoutMarginsGuide.trailingAnchor, - multipliedBy: -1) - item.bottom.greaterThanOrEqual(toSystemSpacingBelow: layoutMarginsGuide.bottomAnchor, - multipliedBy: -1) + item.leading.greaterThanOrEqual( + toSystemSpacingAfter: layoutMarginsGuide.leadingAnchor + ) + item.trailing.greaterThanOrEqual( + toSystemSpacingAfter: layoutMarginsGuide.trailingAnchor, + multipliedBy: -1 + ) + item.bottom.greaterThanOrEqual( + toSystemSpacingBelow: layoutMarginsGuide.bottomAnchor, + multipliedBy: -1 + ) } let expectedConstraints = [ - subview.topAnchor.constraint(greaterThanOrEqualToSystemSpacingBelow: layoutMarginsGuide.topAnchor, - multiplier: 1), - subview.leadingAnchor.constraint(greaterThanOrEqualToSystemSpacingAfter: layoutMarginsGuide.leadingAnchor, - multiplier: 1), - subview.trailingAnchor.constraint(greaterThanOrEqualToSystemSpacingAfter: layoutMarginsGuide.trailingAnchor, - multiplier: -1), - subview.bottomAnchor.constraint(greaterThanOrEqualToSystemSpacingBelow: layoutMarginsGuide.bottomAnchor, - multiplier: -1) + subview.topAnchor.constraint( + greaterThanOrEqualToSystemSpacingBelow: layoutMarginsGuide.topAnchor, + multiplier: 1 + ), + subview.leadingAnchor.constraint( + greaterThanOrEqualToSystemSpacingAfter: layoutMarginsGuide.leadingAnchor, + multiplier: 1 + ), + subview.trailingAnchor.constraint( + greaterThanOrEqualToSystemSpacingAfter: layoutMarginsGuide.trailingAnchor, + multiplier: -1 + ), + subview.bottomAnchor.constraint( + greaterThanOrEqualToSystemSpacingBelow: layoutMarginsGuide.bottomAnchor, + multiplier: -1 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -125,11 +149,17 @@ final class UIViewGreaterThanOrEqualToUILayoutGuideConstraintTests: XCTestCase { item.height.greaterThanOrEqual(to: layoutMarginsGuide, multipliedBy: 2) } let expectedConstraints = [ - subview.widthAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.widthAnchor), - subview.heightAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.heightAnchor, - constant: 8), - subview.heightAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.heightAnchor, - multiplier: 2) + subview.widthAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.widthAnchor + ), + subview.heightAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.heightAnchor, + constant: 8 + ), + subview.heightAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.heightAnchor, + multiplier: 2 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -141,10 +171,14 @@ final class UIViewGreaterThanOrEqualToUILayoutGuideConstraintTests: XCTestCase { item.width.greaterThanOrEqual(to: layoutMarginsGuide.heightAnchor, multipliedBy: 2) } let expectedConstraints = [ - subview.widthAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.heightAnchor, - constant: 8), - subview.widthAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.heightAnchor, - multiplier: 2) + subview.widthAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.heightAnchor, + constant: 8 + ), + subview.widthAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.heightAnchor, + multiplier: 2 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -159,9 +193,13 @@ final class UIViewGreaterThanOrEqualToUILayoutGuideConstraintTests: XCTestCase { item.firstBaseline.greaterThanOrEqual(to: layoutMarginsGuide.bottomAnchor, plus: 8) } let expectedConstraints = [ - subview.firstBaselineAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.topAnchor), - subview.firstBaselineAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.bottomAnchor, - constant: 8) + subview.firstBaselineAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.topAnchor + ), + subview.firstBaselineAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.bottomAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -177,12 +215,20 @@ final class UIViewGreaterThanOrEqualToUILayoutGuideConstraintTests: XCTestCase { item.topLeading.greaterThanOrEqual(to: layoutMarginsGuide, shiftedBy: offset) } let expectedConstraints = [ - subview.centerXAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.centerXAnchor), - subview.centerYAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.centerYAnchor), - subview.leadingAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.leadingAnchor, - constant: 10), - subview.topAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.topAnchor, - constant: 20) + subview.centerXAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.centerXAnchor + ), + subview.centerYAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.centerYAnchor + ), + subview.leadingAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.leadingAnchor, + constant: 10 + ), + subview.topAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.topAnchor, + constant: 20 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -197,12 +243,20 @@ final class UIViewGreaterThanOrEqualToUILayoutGuideConstraintTests: XCTestCase { item.size.greaterThanOrEqual(to: layoutMarginsGuide, multipliedBy: 2) } let expectedConstraints = [ - subview.widthAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.widthAnchor), - subview.heightAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.heightAnchor), - subview.widthAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.widthAnchor, - multiplier: 2), - subview.heightAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.heightAnchor, - multiplier: 2) + subview.widthAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.widthAnchor + ), + subview.heightAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.heightAnchor + ), + subview.widthAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.widthAnchor, + multiplier: 2 + ), + subview.heightAnchor.constraint( + greaterThanOrEqualTo: layoutMarginsGuide.heightAnchor, + multiplier: 2 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) diff --git a/Tests/AceLayoutTests/LayoutTests/GreaterThanOrEqualTests/UIViewGreaterThanOrEqualToUIViewConstraintTests.swift b/Tests/AceLayoutTests/LayoutTests/GreaterThanOrEqualTests/UIViewGreaterThanOrEqualToUIViewConstraintTests.swift index 25c3dfa..9f99dca 100644 --- a/Tests/AceLayoutTests/LayoutTests/GreaterThanOrEqualTests/UIViewGreaterThanOrEqualToUIViewConstraintTests.swift +++ b/Tests/AceLayoutTests/LayoutTests/GreaterThanOrEqualTests/UIViewGreaterThanOrEqualToUIViewConstraintTests.swift @@ -37,8 +37,10 @@ final class UIViewGreaterThanOrEqualToUIViewConstraintTests: XCTestCase { } let expectedConstraints = [ subview.leadingAnchor.constraint(greaterThanOrEqualTo: superview.leadingAnchor), - subview.trailingAnchor.constraint(greaterThanOrEqualTo: superview.trailingAnchor, - constant: 8) + subview.trailingAnchor.constraint( + greaterThanOrEqualTo: superview.trailingAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -48,8 +50,10 @@ final class UIViewGreaterThanOrEqualToUIViewConstraintTests: XCTestCase { item.leading.greaterThanOrEqual(to: superview.trailingAnchor, plus: 8) } let expectedConstraints = [ - subview.leadingAnchor.constraint(greaterThanOrEqualTo: superview.trailingAnchor, - constant: 8) + subview.leadingAnchor.constraint( + greaterThanOrEqualTo: superview.trailingAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -59,7 +63,10 @@ final class UIViewGreaterThanOrEqualToUIViewConstraintTests: XCTestCase { item.leading.greaterThanOrEqualToSuperview(plus: 8) } let expectedConstraints = [ - subview.leadingAnchor.constraint(greaterThanOrEqualTo: superview.leadingAnchor, constant: 8) + subview.leadingAnchor.constraint( + greaterThanOrEqualTo: superview.leadingAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -74,7 +81,10 @@ final class UIViewGreaterThanOrEqualToUIViewConstraintTests: XCTestCase { } let expectedConstraints = [ subview.topAnchor.constraint(greaterThanOrEqualTo: superview.topAnchor), - subview.bottomAnchor.constraint(greaterThanOrEqualTo: superview.bottomAnchor, constant: 8) + subview.bottomAnchor.constraint( + greaterThanOrEqualTo: superview.bottomAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -84,7 +94,10 @@ final class UIViewGreaterThanOrEqualToUIViewConstraintTests: XCTestCase { item.top.greaterThanOrEqual(to: superview.bottomAnchor, plus: 8) } let expectedConstraints = [ - subview.topAnchor.constraint(greaterThanOrEqualTo: superview.bottomAnchor, constant: 8) + subview.topAnchor.constraint( + greaterThanOrEqualTo: superview.bottomAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -109,20 +122,32 @@ final class UIViewGreaterThanOrEqualToUIViewConstraintTests: XCTestCase { let constraints = subview.autoLayout { item in item.top.greaterThanOrEqual(toSystemSpacingBelow: superview.topAnchor) item.leading.greaterThanOrEqual(toSystemSpacingAfter: superview.leadingAnchor) - item.trailing.greaterThanOrEqual(toSystemSpacingAfter: superview.trailingAnchor, - multipliedBy: -1) - item.bottom.greaterThanOrEqual(toSystemSpacingBelow: superview.bottomAnchor, - multipliedBy: -1) + item.trailing.greaterThanOrEqual( + toSystemSpacingAfter: superview.trailingAnchor, + multipliedBy: -1 + ) + item.bottom.greaterThanOrEqual( + toSystemSpacingBelow: superview.bottomAnchor, + multipliedBy: -1 + ) } let expectedConstraints = [ - subview.topAnchor.constraint(greaterThanOrEqualToSystemSpacingBelow: superview.topAnchor, - multiplier: 1), - subview.leadingAnchor.constraint(greaterThanOrEqualToSystemSpacingAfter: superview.leadingAnchor, - multiplier: 1), - subview.trailingAnchor.constraint(greaterThanOrEqualToSystemSpacingAfter: superview.trailingAnchor, - multiplier: -1), - subview.bottomAnchor.constraint(greaterThanOrEqualToSystemSpacingBelow: superview.bottomAnchor, - multiplier: -1) + subview.topAnchor.constraint( + greaterThanOrEqualToSystemSpacingBelow: superview.topAnchor, + multiplier: 1 + ), + subview.leadingAnchor.constraint( + greaterThanOrEqualToSystemSpacingAfter: superview.leadingAnchor, + multiplier: 1 + ), + subview.trailingAnchor.constraint( + greaterThanOrEqualToSystemSpacingAfter: superview.trailingAnchor, + multiplier: -1 + ), + subview.bottomAnchor.constraint( + greaterThanOrEqualToSystemSpacingBelow: superview.bottomAnchor, + multiplier: -1 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -138,8 +163,14 @@ final class UIViewGreaterThanOrEqualToUIViewConstraintTests: XCTestCase { } let expectedConstraints = [ subview.widthAnchor.constraint(greaterThanOrEqualTo: superview.widthAnchor), - subview.heightAnchor.constraint(greaterThanOrEqualTo: superview.heightAnchor, constant: 8), - subview.heightAnchor.constraint(greaterThanOrEqualTo: superview.heightAnchor, multiplier: 2) + subview.heightAnchor.constraint( + greaterThanOrEqualTo: superview.heightAnchor, + constant: 8 + ), + subview.heightAnchor.constraint( + greaterThanOrEqualTo: superview.heightAnchor, + multiplier: 2 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -150,8 +181,14 @@ final class UIViewGreaterThanOrEqualToUIViewConstraintTests: XCTestCase { item.width.greaterThanOrEqual(to: superview.heightAnchor, multipliedBy: 2) } let expectedConstraints = [ - subview.widthAnchor.constraint(greaterThanOrEqualTo: superview.heightAnchor, constant: 8), - subview.widthAnchor.constraint(greaterThanOrEqualTo: superview.heightAnchor, multiplier: 2) + subview.widthAnchor.constraint( + greaterThanOrEqualTo: superview.heightAnchor, + constant: 8 + ), + subview.widthAnchor.constraint( + greaterThanOrEqualTo: superview.heightAnchor, + multiplier: 2 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -162,8 +199,14 @@ final class UIViewGreaterThanOrEqualToUIViewConstraintTests: XCTestCase { item.width.greaterThanOrEqual(to: item.height, multipliedBy: 2) } let expectedConstraints = [ - subview.widthAnchor.constraint(greaterThanOrEqualTo: subview.heightAnchor, constant: 8), - subview.widthAnchor.constraint(greaterThanOrEqualTo: subview.heightAnchor, multiplier: 2) + subview.widthAnchor.constraint( + greaterThanOrEqualTo: subview.heightAnchor, + constant: 8 + ), + subview.widthAnchor.constraint( + greaterThanOrEqualTo: subview.heightAnchor, + multiplier: 2 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -184,8 +227,14 @@ final class UIViewGreaterThanOrEqualToUIViewConstraintTests: XCTestCase { item.height.greaterThanOrEqualToSuperview(multipliedBy: 2) } let expectedConstraints = [ - subview.widthAnchor.constraint(greaterThanOrEqualTo: superview.widthAnchor, constant: 8), - subview.heightAnchor.constraint(greaterThanOrEqualTo: superview.heightAnchor, multiplier: 2) + subview.widthAnchor.constraint( + greaterThanOrEqualTo: superview.widthAnchor, + constant: 8 + ), + subview.heightAnchor.constraint( + greaterThanOrEqualTo: superview.heightAnchor, + multiplier: 2 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -199,9 +248,13 @@ final class UIViewGreaterThanOrEqualToUIViewConstraintTests: XCTestCase { item.lastBaseline.greaterThanOrEqual(to: superview, plus: 8) } let expectedConstraints = [ - subview.firstBaselineAnchor.constraint(greaterThanOrEqualTo: superview.firstBaselineAnchor), - subview.lastBaselineAnchor.constraint(greaterThanOrEqualTo: superview.lastBaselineAnchor, - constant: 8) + subview.firstBaselineAnchor.constraint( + greaterThanOrEqualTo: superview.firstBaselineAnchor + ), + subview.lastBaselineAnchor.constraint( + greaterThanOrEqualTo: superview.lastBaselineAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -211,8 +264,10 @@ final class UIViewGreaterThanOrEqualToUIViewConstraintTests: XCTestCase { item.firstBaseline.greaterThanOrEqual(to: superview.bottomAnchor, plus: 8) } let expectedConstraints = [ - subview.firstBaselineAnchor.constraint(greaterThanOrEqualTo: superview.bottomAnchor, - constant: 8) + subview.firstBaselineAnchor.constraint( + greaterThanOrEqualTo: superview.bottomAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -222,8 +277,10 @@ final class UIViewGreaterThanOrEqualToUIViewConstraintTests: XCTestCase { item.firstBaseline.greaterThanOrEqualToSuperview(plus: 8) } let expectedConstraints = [ - subview.firstBaselineAnchor.constraint(greaterThanOrEqualTo: superview.firstBaselineAnchor, - constant: 8) + subview.firstBaselineAnchor.constraint( + greaterThanOrEqualTo: superview.firstBaselineAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -240,10 +297,14 @@ final class UIViewGreaterThanOrEqualToUIViewConstraintTests: XCTestCase { let expectedConstraints = [ subview.centerXAnchor.constraint(greaterThanOrEqualTo: superview.centerXAnchor), subview.centerYAnchor.constraint(greaterThanOrEqualTo: superview.centerYAnchor), - subview.leadingAnchor.constraint(greaterThanOrEqualTo: superview.leadingAnchor, - constant: 10), - subview.topAnchor.constraint(greaterThanOrEqualTo: superview.topAnchor, - constant: 20) + subview.leadingAnchor.constraint( + greaterThanOrEqualTo: superview.leadingAnchor, + constant: 10 + ), + subview.topAnchor.constraint( + greaterThanOrEqualTo: superview.topAnchor, + constant: 20 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -251,15 +312,21 @@ final class UIViewGreaterThanOrEqualToUIViewConstraintTests: XCTestCase { XCTContext.runActivity(named: "greaterThanOrEqualSuperview(shiftedBy:)") { _ in let constraints = subview.autoLayout { item in item.topLeft.greaterThanOrEqualToSuperview() - item.bottomRight.greaterThanOrEqualToSuperview(shiftedBy: .init(width: 10, height: 20)) + item.bottomRight.greaterThanOrEqualToSuperview( + shiftedBy: .init(width: 10, height: 20) + ) } let expectedConstraints = [ subview.leftAnchor.constraint(greaterThanOrEqualTo: superview.leftAnchor), subview.topAnchor.constraint(greaterThanOrEqualTo: superview.topAnchor), - subview.rightAnchor.constraint(greaterThanOrEqualTo: superview.rightAnchor, - constant: 10), - subview.bottomAnchor.constraint(greaterThanOrEqualTo: superview.bottomAnchor, - constant: 20) + subview.rightAnchor.constraint( + greaterThanOrEqualTo: superview.rightAnchor, + constant: 10 + ), + subview.bottomAnchor.constraint( + greaterThanOrEqualTo: superview.bottomAnchor, + constant: 20 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -275,8 +342,14 @@ final class UIViewGreaterThanOrEqualToUIViewConstraintTests: XCTestCase { let expectedConstraints = [ subview.widthAnchor.constraint(greaterThanOrEqualTo: superview.widthAnchor), subview.heightAnchor.constraint(greaterThanOrEqualTo: superview.heightAnchor), - subview.widthAnchor.constraint(greaterThanOrEqualTo: superview.widthAnchor, multiplier: 2), - subview.heightAnchor.constraint(greaterThanOrEqualTo: superview.heightAnchor, multiplier: 2) + subview.widthAnchor.constraint( + greaterThanOrEqualTo: superview.widthAnchor, + multiplier: 2 + ), + subview.heightAnchor.constraint( + greaterThanOrEqualTo: superview.heightAnchor, + multiplier: 2 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -311,8 +384,14 @@ final class UIViewGreaterThanOrEqualToUIViewConstraintTests: XCTestCase { let expectedConstraints = [ subview.widthAnchor.constraint(greaterThanOrEqualTo: superview.widthAnchor), subview.heightAnchor.constraint(greaterThanOrEqualTo: superview.heightAnchor), - subview.widthAnchor.constraint(greaterThanOrEqualTo: superview.widthAnchor, multiplier: 2), - subview.heightAnchor.constraint(greaterThanOrEqualTo: superview.heightAnchor, multiplier: 2) + subview.widthAnchor.constraint( + greaterThanOrEqualTo: superview.widthAnchor, + multiplier: 2 + ), + subview.heightAnchor.constraint( + greaterThanOrEqualTo: superview.heightAnchor, + multiplier: 2 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) diff --git a/Tests/AceLayoutTests/LayoutTests/LessThanOrEqualTests/UILayoutGuideLessThanOrEqualToUILayoutGuideConstraintTests.swift b/Tests/AceLayoutTests/LayoutTests/LessThanOrEqualTests/UILayoutGuideLessThanOrEqualToUILayoutGuideConstraintTests.swift index bbf96d0..707a16c 100644 --- a/Tests/AceLayoutTests/LayoutTests/LessThanOrEqualTests/UILayoutGuideLessThanOrEqualToUILayoutGuideConstraintTests.swift +++ b/Tests/AceLayoutTests/LayoutTests/LessThanOrEqualTests/UILayoutGuideLessThanOrEqualToUILayoutGuideConstraintTests.swift @@ -36,9 +36,13 @@ final class UILayoutGuideLessThanOrEqualToUILayoutGuideConstraintTests: XCTestCa item.trailing.lessThanOrEqual(to: layoutMarginsGuide, plus: 8) } let expectedConstraints = [ - layoutGuide.leadingAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.leadingAnchor), - layoutGuide.trailingAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.trailingAnchor, - constant: 8) + layoutGuide.leadingAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.leadingAnchor + ), + layoutGuide.trailingAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.trailingAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -49,8 +53,10 @@ final class UILayoutGuideLessThanOrEqualToUILayoutGuideConstraintTests: XCTestCa item.leading.lessThanOrEqual(to: layoutMarginsGuide.trailingAnchor, plus: 8) } let expectedConstraints = [ - layoutGuide.leadingAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.trailingAnchor, - constant: 8) + layoutGuide.leadingAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.trailingAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -66,8 +72,10 @@ final class UILayoutGuideLessThanOrEqualToUILayoutGuideConstraintTests: XCTestCa } let expectedConstraints = [ layoutGuide.topAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.topAnchor), - layoutGuide.bottomAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.bottomAnchor, - constant: 8) + layoutGuide.bottomAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.bottomAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -78,8 +86,10 @@ final class UILayoutGuideLessThanOrEqualToUILayoutGuideConstraintTests: XCTestCa item.top.lessThanOrEqual(to: layoutMarginsGuide.bottomAnchor, plus: 8) } let expectedConstraints = [ - layoutGuide.topAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.bottomAnchor, - constant: 8) + layoutGuide.topAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.bottomAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -95,17 +105,32 @@ final class UILayoutGuideLessThanOrEqualToUILayoutGuideConstraintTests: XCTestCa let constraints = layoutGuide.autoLayout { item in item.top.lessThanOrEqual(toSystemSpacingBelow: layoutMarginsGuide.topAnchor) item.leading.lessThanOrEqual(toSystemSpacingAfter: layoutMarginsGuide.leadingAnchor) - item.trailing.lessThanOrEqual(toSystemSpacingAfter: layoutMarginsGuide.trailingAnchor, multipliedBy: -1) - item.bottom.lessThanOrEqual(toSystemSpacingBelow: layoutMarginsGuide.bottomAnchor, multipliedBy: -1) + item.trailing.lessThanOrEqual( + toSystemSpacingAfter: layoutMarginsGuide.trailingAnchor, + multipliedBy: -1 + ) + item.bottom.lessThanOrEqual( + toSystemSpacingBelow: layoutMarginsGuide.bottomAnchor, + multipliedBy: -1 + ) } let expectedConstraints = [ - layoutGuide.topAnchor.constraint(lessThanOrEqualToSystemSpacingBelow: layoutMarginsGuide.topAnchor, multiplier: 1), - layoutGuide.leadingAnchor.constraint(lessThanOrEqualToSystemSpacingAfter: layoutMarginsGuide.leadingAnchor, - multiplier: 1), - layoutGuide.trailingAnchor.constraint(lessThanOrEqualToSystemSpacingAfter: layoutMarginsGuide.trailingAnchor, - multiplier: -1), - layoutGuide.bottomAnchor.constraint(lessThanOrEqualToSystemSpacingBelow: layoutMarginsGuide.bottomAnchor, - multiplier: -1) + layoutGuide.topAnchor.constraint( + lessThanOrEqualToSystemSpacingBelow: layoutMarginsGuide.topAnchor, + multiplier: 1 + ), + layoutGuide.leadingAnchor.constraint( + lessThanOrEqualToSystemSpacingAfter: layoutMarginsGuide.leadingAnchor, + multiplier: 1 + ), + layoutGuide.trailingAnchor.constraint( + lessThanOrEqualToSystemSpacingAfter: layoutMarginsGuide.trailingAnchor, + multiplier: -1 + ), + layoutGuide.bottomAnchor.constraint( + lessThanOrEqualToSystemSpacingBelow: layoutMarginsGuide.bottomAnchor, + multiplier: -1 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -121,11 +146,17 @@ final class UILayoutGuideLessThanOrEqualToUILayoutGuideConstraintTests: XCTestCa item.height.lessThanOrEqual(to: layoutMarginsGuide, multipliedBy: 2) } let expectedConstraints = [ - layoutGuide.widthAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.widthAnchor), - layoutGuide.heightAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.heightAnchor, - constant: 8), - layoutGuide.heightAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.heightAnchor, - multiplier: 2) + layoutGuide.widthAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.widthAnchor + ), + layoutGuide.heightAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.heightAnchor, + constant: 8 + ), + layoutGuide.heightAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.heightAnchor, + multiplier: 2 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -137,10 +168,14 @@ final class UILayoutGuideLessThanOrEqualToUILayoutGuideConstraintTests: XCTestCa item.width.lessThanOrEqual(to: layoutMarginsGuide.heightAnchor, multipliedBy: 2) } let expectedConstraints = [ - layoutGuide.widthAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.heightAnchor, - constant: 8), - layoutGuide.widthAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.heightAnchor, - multiplier: 2) + layoutGuide.widthAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.heightAnchor, + constant: 8 + ), + layoutGuide.widthAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.heightAnchor, + multiplier: 2 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -156,12 +191,20 @@ final class UILayoutGuideLessThanOrEqualToUILayoutGuideConstraintTests: XCTestCa item.topLeading.lessThanOrEqual(to: layoutMarginsGuide, shiftedBy: offset) } let expectedConstraints = [ - layoutGuide.centerXAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.centerXAnchor), - layoutGuide.centerYAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.centerYAnchor), - layoutGuide.leadingAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.leadingAnchor, - constant: 10), - layoutGuide.topAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.topAnchor, - constant: 20) + layoutGuide.centerXAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.centerXAnchor + ), + layoutGuide.centerYAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.centerYAnchor + ), + layoutGuide.leadingAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.leadingAnchor, + constant: 10 + ), + layoutGuide.topAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.topAnchor, + constant: 20 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -176,12 +219,20 @@ final class UILayoutGuideLessThanOrEqualToUILayoutGuideConstraintTests: XCTestCa item.size.lessThanOrEqual(to: layoutMarginsGuide, multipliedBy: 2) } let expectedConstraints = [ - layoutGuide.widthAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.widthAnchor), - layoutGuide.heightAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.heightAnchor), - layoutGuide.widthAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.widthAnchor, - multiplier: 2), - layoutGuide.heightAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.heightAnchor, - multiplier: 2) + layoutGuide.widthAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.widthAnchor + ), + layoutGuide.heightAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.heightAnchor + ), + layoutGuide.widthAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.widthAnchor, + multiplier: 2 + ), + layoutGuide.heightAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.heightAnchor, + multiplier: 2 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) diff --git a/Tests/AceLayoutTests/LayoutTests/LessThanOrEqualTests/UILayoutGuideLessThanOrEqualToUIViewConstraintTests.swift b/Tests/AceLayoutTests/LayoutTests/LessThanOrEqualTests/UILayoutGuideLessThanOrEqualToUIViewConstraintTests.swift index 1e824c2..646660c 100644 --- a/Tests/AceLayoutTests/LayoutTests/LessThanOrEqualTests/UILayoutGuideLessThanOrEqualToUIViewConstraintTests.swift +++ b/Tests/AceLayoutTests/LayoutTests/LessThanOrEqualTests/UILayoutGuideLessThanOrEqualToUIViewConstraintTests.swift @@ -36,8 +36,10 @@ final class UILayoutGuideLessThanOrEqualToUIViewConstraintTests: XCTestCase { } let expectedConstraints = [ layoutGuide.leadingAnchor.constraint(lessThanOrEqualTo: superview.leadingAnchor), - layoutGuide.trailingAnchor.constraint(lessThanOrEqualTo: superview.trailingAnchor, - constant: 8) + layoutGuide.trailingAnchor.constraint( + lessThanOrEqualTo: superview.trailingAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -47,8 +49,10 @@ final class UILayoutGuideLessThanOrEqualToUIViewConstraintTests: XCTestCase { item.leading.lessThanOrEqual(to: superview.trailingAnchor, plus: 8) } let expectedConstraints = [ - layoutGuide.leadingAnchor.constraint(lessThanOrEqualTo: superview.trailingAnchor, - constant: 8) + layoutGuide.leadingAnchor.constraint( + lessThanOrEqualTo: superview.trailingAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -58,8 +62,10 @@ final class UILayoutGuideLessThanOrEqualToUIViewConstraintTests: XCTestCase { item.leading.lessThanOrEqualToSuperview(plus: 8) } let expectedConstraints = [ - layoutGuide.leadingAnchor.constraint(lessThanOrEqualTo: superview.leadingAnchor, - constant: 8) + layoutGuide.leadingAnchor.constraint( + lessThanOrEqualTo: superview.leadingAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -74,8 +80,10 @@ final class UILayoutGuideLessThanOrEqualToUIViewConstraintTests: XCTestCase { } let expectedConstraints = [ layoutGuide.topAnchor.constraint(lessThanOrEqualTo: superview.topAnchor), - layoutGuide.bottomAnchor.constraint(lessThanOrEqualTo: superview.bottomAnchor, - constant: 8) + layoutGuide.bottomAnchor.constraint( + lessThanOrEqualTo: superview.bottomAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -85,8 +93,10 @@ final class UILayoutGuideLessThanOrEqualToUIViewConstraintTests: XCTestCase { item.top.lessThanOrEqual(to: superview.bottomAnchor, plus: 8) } let expectedConstraints = [ - layoutGuide.topAnchor.constraint(lessThanOrEqualTo: superview.bottomAnchor, - constant: 8) + layoutGuide.topAnchor.constraint( + lessThanOrEqualTo: superview.bottomAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -96,7 +106,10 @@ final class UILayoutGuideLessThanOrEqualToUIViewConstraintTests: XCTestCase { item.top.lessThanOrEqualToSuperview(plus: 8) } let expectedConstraints = [ - layoutGuide.topAnchor.constraint(lessThanOrEqualTo: superview.topAnchor, constant: 8) + layoutGuide.topAnchor.constraint( + lessThanOrEqualTo: superview.topAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -111,20 +124,32 @@ final class UILayoutGuideLessThanOrEqualToUIViewConstraintTests: XCTestCase { let constraints = layoutGuide.autoLayout { item in item.top.lessThanOrEqual(toSystemSpacingBelow: superview.topAnchor) item.leading.lessThanOrEqual(toSystemSpacingAfter: superview.leadingAnchor) - item.trailing.lessThanOrEqual(toSystemSpacingAfter: superview.trailingAnchor, - multipliedBy: -1) - item.bottom.lessThanOrEqual(toSystemSpacingBelow: superview.bottomAnchor, - multipliedBy: -1) + item.trailing.lessThanOrEqual( + toSystemSpacingAfter: superview.trailingAnchor, + multipliedBy: -1 + ) + item.bottom.lessThanOrEqual( + toSystemSpacingBelow: superview.bottomAnchor, + multipliedBy: -1 + ) } let expectedConstraints = [ - layoutGuide.topAnchor.constraint(lessThanOrEqualToSystemSpacingBelow: superview.topAnchor, - multiplier: 1), - layoutGuide.leadingAnchor.constraint(lessThanOrEqualToSystemSpacingAfter: superview.leadingAnchor, - multiplier: 1), - layoutGuide.trailingAnchor.constraint(lessThanOrEqualToSystemSpacingAfter: superview.trailingAnchor, - multiplier: -1), - layoutGuide.bottomAnchor.constraint(lessThanOrEqualToSystemSpacingBelow: superview.bottomAnchor, - multiplier: -1) + layoutGuide.topAnchor.constraint( + lessThanOrEqualToSystemSpacingBelow: superview.topAnchor, + multiplier: 1 + ), + layoutGuide.leadingAnchor.constraint( + lessThanOrEqualToSystemSpacingAfter: superview.leadingAnchor, + multiplier: 1 + ), + layoutGuide.trailingAnchor.constraint( + lessThanOrEqualToSystemSpacingAfter: superview.trailingAnchor, + multiplier: -1 + ), + layoutGuide.bottomAnchor.constraint( + lessThanOrEqualToSystemSpacingBelow: superview.bottomAnchor, + multiplier: -1 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -140,8 +165,14 @@ final class UILayoutGuideLessThanOrEqualToUIViewConstraintTests: XCTestCase { } let expectedConstraints = [ layoutGuide.widthAnchor.constraint(lessThanOrEqualTo: superview.widthAnchor), - layoutGuide.heightAnchor.constraint(lessThanOrEqualTo: superview.heightAnchor, constant: 8), - layoutGuide.heightAnchor.constraint(lessThanOrEqualTo: superview.heightAnchor, multiplier: 2) + layoutGuide.heightAnchor.constraint( + lessThanOrEqualTo: superview.heightAnchor, + constant: 8 + ), + layoutGuide.heightAnchor.constraint( + lessThanOrEqualTo: superview.heightAnchor, + multiplier: 2 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -152,8 +183,14 @@ final class UILayoutGuideLessThanOrEqualToUIViewConstraintTests: XCTestCase { item.width.lessThanOrEqual(to: superview.heightAnchor, multipliedBy: 2) } let expectedConstraints = [ - layoutGuide.widthAnchor.constraint(lessThanOrEqualTo: superview.heightAnchor, constant: 8), - layoutGuide.widthAnchor.constraint(lessThanOrEqualTo: superview.heightAnchor, multiplier: 2) + layoutGuide.widthAnchor.constraint( + lessThanOrEqualTo: superview.heightAnchor, + constant: 8 + ), + layoutGuide.widthAnchor.constraint( + lessThanOrEqualTo: superview.heightAnchor, + multiplier: 2 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -164,10 +201,14 @@ final class UILayoutGuideLessThanOrEqualToUIViewConstraintTests: XCTestCase { item.width.lessThanOrEqual(to: item.height, multipliedBy: 2) } let expectedConstraints = [ - layoutGuide.widthAnchor.constraint(lessThanOrEqualTo: layoutGuide.heightAnchor, - constant: 8), - layoutGuide.widthAnchor.constraint(lessThanOrEqualTo: layoutGuide.heightAnchor, - multiplier: 2) + layoutGuide.widthAnchor.constraint( + lessThanOrEqualTo: layoutGuide.heightAnchor, + constant: 8 + ), + layoutGuide.widthAnchor.constraint( + lessThanOrEqualTo: layoutGuide.heightAnchor, + multiplier: 2 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -188,8 +229,14 @@ final class UILayoutGuideLessThanOrEqualToUIViewConstraintTests: XCTestCase { item.height.lessThanOrEqualToSuperview(multipliedBy: 2) } let expectedConstraints = [ - layoutGuide.widthAnchor.constraint(lessThanOrEqualTo: superview.widthAnchor, constant: 8), - layoutGuide.heightAnchor.constraint(lessThanOrEqualTo: superview.heightAnchor, multiplier: 2) + layoutGuide.widthAnchor.constraint( + lessThanOrEqualTo: superview.widthAnchor, + constant: 8 + ), + layoutGuide.heightAnchor.constraint( + lessThanOrEqualTo: superview.heightAnchor, + multiplier: 2 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -206,10 +253,14 @@ final class UILayoutGuideLessThanOrEqualToUIViewConstraintTests: XCTestCase { let expectedConstraints = [ layoutGuide.centerXAnchor.constraint(lessThanOrEqualTo: superview.centerXAnchor), layoutGuide.centerYAnchor.constraint(lessThanOrEqualTo: superview.centerYAnchor), - layoutGuide.leadingAnchor.constraint(lessThanOrEqualTo: superview.leadingAnchor, - constant: 10), - layoutGuide.topAnchor.constraint(lessThanOrEqualTo: superview.topAnchor, - constant: 20) + layoutGuide.leadingAnchor.constraint( + lessThanOrEqualTo: superview.leadingAnchor, + constant: 10 + ), + layoutGuide.topAnchor.constraint( + lessThanOrEqualTo: superview.topAnchor, + constant: 20 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -222,10 +273,14 @@ final class UILayoutGuideLessThanOrEqualToUIViewConstraintTests: XCTestCase { let expectedConstraints = [ layoutGuide.leftAnchor.constraint(lessThanOrEqualTo: superview.leftAnchor), layoutGuide.topAnchor.constraint(lessThanOrEqualTo: superview.topAnchor), - layoutGuide.rightAnchor.constraint(lessThanOrEqualTo: superview.rightAnchor, - constant: 10), - layoutGuide.bottomAnchor.constraint(lessThanOrEqualTo: superview.bottomAnchor, - constant: 20) + layoutGuide.rightAnchor.constraint( + lessThanOrEqualTo: superview.rightAnchor, + constant: 10 + ), + layoutGuide.bottomAnchor.constraint( + lessThanOrEqualTo: superview.bottomAnchor, + constant: 20 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -241,8 +296,14 @@ final class UILayoutGuideLessThanOrEqualToUIViewConstraintTests: XCTestCase { let expectedConstraints = [ layoutGuide.widthAnchor.constraint(lessThanOrEqualTo: superview.widthAnchor), layoutGuide.heightAnchor.constraint(lessThanOrEqualTo: superview.heightAnchor), - layoutGuide.widthAnchor.constraint(lessThanOrEqualTo: superview.widthAnchor, multiplier: 2), - layoutGuide.heightAnchor.constraint(lessThanOrEqualTo: superview.heightAnchor, multiplier: 2) + layoutGuide.widthAnchor.constraint( + lessThanOrEqualTo: superview.widthAnchor, + multiplier: 2 + ), + layoutGuide.heightAnchor.constraint( + lessThanOrEqualTo: superview.heightAnchor, + multiplier: 2 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -277,8 +338,14 @@ final class UILayoutGuideLessThanOrEqualToUIViewConstraintTests: XCTestCase { let expectedConstraints = [ layoutGuide.widthAnchor.constraint(lessThanOrEqualTo: superview.widthAnchor), layoutGuide.heightAnchor.constraint(lessThanOrEqualTo: superview.heightAnchor), - layoutGuide.widthAnchor.constraint(lessThanOrEqualTo: superview.widthAnchor, multiplier: 2), - layoutGuide.heightAnchor.constraint(lessThanOrEqualTo: superview.heightAnchor, multiplier: 2) + layoutGuide.widthAnchor.constraint( + lessThanOrEqualTo: superview.widthAnchor, + multiplier: 2 + ), + layoutGuide.heightAnchor.constraint( + lessThanOrEqualTo: superview.heightAnchor, + multiplier: 2 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) diff --git a/Tests/AceLayoutTests/LayoutTests/LessThanOrEqualTests/UIViewLessThanOrEqualToUILayoutGuideConstraintTests.swift b/Tests/AceLayoutTests/LayoutTests/LessThanOrEqualTests/UIViewLessThanOrEqualToUILayoutGuideConstraintTests.swift index a307a7d..7cb587b 100644 --- a/Tests/AceLayoutTests/LayoutTests/LessThanOrEqualTests/UIViewLessThanOrEqualToUILayoutGuideConstraintTests.swift +++ b/Tests/AceLayoutTests/LayoutTests/LessThanOrEqualTests/UIViewLessThanOrEqualToUILayoutGuideConstraintTests.swift @@ -37,9 +37,13 @@ final class UIViewLessThanOrEqualToUILayoutGuideConstraintTests: XCTestCase { item.trailing.lessThanOrEqual(to: layoutMarginsGuide, plus: 8) } let expectedConstraints = [ - subview.leadingAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.leadingAnchor), - subview.trailingAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.trailingAnchor, - constant: 8) + subview.leadingAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.leadingAnchor + ), + subview.trailingAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.trailingAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -50,8 +54,10 @@ final class UIViewLessThanOrEqualToUILayoutGuideConstraintTests: XCTestCase { item.leading.lessThanOrEqual(to: layoutMarginsGuide.trailingAnchor, plus: 8) } let expectedConstraints = [ - subview.leadingAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.trailingAnchor, - constant: 8) + subview.leadingAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.trailingAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -67,8 +73,10 @@ final class UIViewLessThanOrEqualToUILayoutGuideConstraintTests: XCTestCase { } let expectedConstraints = [ subview.topAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.topAnchor), - subview.bottomAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.bottomAnchor, - constant: 8) + subview.bottomAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.bottomAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -79,8 +87,10 @@ final class UIViewLessThanOrEqualToUILayoutGuideConstraintTests: XCTestCase { item.top.lessThanOrEqual(to: layoutMarginsGuide.bottomAnchor, plus: 8) } let expectedConstraints = [ - subview.topAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.bottomAnchor, - constant: 8) + subview.topAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.bottomAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -96,20 +106,32 @@ final class UIViewLessThanOrEqualToUILayoutGuideConstraintTests: XCTestCase { let constraints = subview.autoLayout { item in item.top.lessThanOrEqual(toSystemSpacingBelow: layoutMarginsGuide.topAnchor) item.leading.lessThanOrEqual(toSystemSpacingAfter: layoutMarginsGuide.leadingAnchor) - item.trailing.lessThanOrEqual(toSystemSpacingAfter: layoutMarginsGuide.trailingAnchor, - multipliedBy: -1) - item.bottom.lessThanOrEqual(toSystemSpacingBelow: layoutMarginsGuide.bottomAnchor, - multipliedBy: -1) + item.trailing.lessThanOrEqual( + toSystemSpacingAfter: layoutMarginsGuide.trailingAnchor, + multipliedBy: -1 + ) + item.bottom.lessThanOrEqual( + toSystemSpacingBelow: layoutMarginsGuide.bottomAnchor, + multipliedBy: -1 + ) } let expectedConstraints = [ - subview.topAnchor.constraint(lessThanOrEqualToSystemSpacingBelow: layoutMarginsGuide.topAnchor, - multiplier: 1), - subview.leadingAnchor.constraint(lessThanOrEqualToSystemSpacingAfter: layoutMarginsGuide.leadingAnchor, - multiplier: 1), - subview.trailingAnchor.constraint(lessThanOrEqualToSystemSpacingAfter: layoutMarginsGuide.trailingAnchor, - multiplier: -1), - subview.bottomAnchor.constraint(lessThanOrEqualToSystemSpacingBelow: layoutMarginsGuide.bottomAnchor, - multiplier: -1) + subview.topAnchor.constraint( + lessThanOrEqualToSystemSpacingBelow: layoutMarginsGuide.topAnchor, + multiplier: 1 + ), + subview.leadingAnchor.constraint( + lessThanOrEqualToSystemSpacingAfter: layoutMarginsGuide.leadingAnchor, + multiplier: 1 + ), + subview.trailingAnchor.constraint( + lessThanOrEqualToSystemSpacingAfter: layoutMarginsGuide.trailingAnchor, + multiplier: -1 + ), + subview.bottomAnchor.constraint( + lessThanOrEqualToSystemSpacingBelow: layoutMarginsGuide.bottomAnchor, + multiplier: -1 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -126,10 +148,14 @@ final class UIViewLessThanOrEqualToUILayoutGuideConstraintTests: XCTestCase { } let expectedConstraints = [ subview.widthAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.widthAnchor), - subview.heightAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.heightAnchor, - constant: 8), - subview.heightAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.heightAnchor, - multiplier: 2) + subview.heightAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.heightAnchor, + constant: 8 + ), + subview.heightAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.heightAnchor, + multiplier: 2 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -141,10 +167,14 @@ final class UIViewLessThanOrEqualToUILayoutGuideConstraintTests: XCTestCase { item.width.lessThanOrEqual(to: layoutMarginsGuide.heightAnchor, multipliedBy: 2) } let expectedConstraints = [ - subview.widthAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.heightAnchor, - constant: 8), - subview.widthAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.heightAnchor, - multiplier: 2) + subview.widthAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.heightAnchor, + constant: 8 + ), + subview.widthAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.heightAnchor, + multiplier: 2 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -159,9 +189,13 @@ final class UIViewLessThanOrEqualToUILayoutGuideConstraintTests: XCTestCase { item.firstBaseline.lessThanOrEqual(to: layoutMarginsGuide.bottomAnchor, plus: 8) } let expectedConstraints = [ - subview.firstBaselineAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.topAnchor), - subview.firstBaselineAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.bottomAnchor, - constant: 8) + subview.firstBaselineAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.topAnchor + ), + subview.firstBaselineAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.bottomAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -177,12 +211,20 @@ final class UIViewLessThanOrEqualToUILayoutGuideConstraintTests: XCTestCase { item.topLeading.lessThanOrEqual(to: layoutMarginsGuide, shiftedBy: offset) } let expectedConstraints = [ - subview.centerXAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.centerXAnchor), - subview.centerYAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.centerYAnchor), - subview.leadingAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.leadingAnchor, - constant: 10), - subview.topAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.topAnchor, - constant: 20) + subview.centerXAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.centerXAnchor + ), + subview.centerYAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.centerYAnchor + ), + subview.leadingAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.leadingAnchor, + constant: 10 + ), + subview.topAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.topAnchor, + constant: 20 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -199,10 +241,14 @@ final class UIViewLessThanOrEqualToUILayoutGuideConstraintTests: XCTestCase { let expectedConstraints = [ subview.widthAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.widthAnchor), subview.heightAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.heightAnchor), - subview.widthAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.widthAnchor, - multiplier: 2), - subview.heightAnchor.constraint(lessThanOrEqualTo: layoutMarginsGuide.heightAnchor, - multiplier: 2) + subview.widthAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.widthAnchor, + multiplier: 2 + ), + subview.heightAnchor.constraint( + lessThanOrEqualTo: layoutMarginsGuide.heightAnchor, + multiplier: 2 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) diff --git a/Tests/AceLayoutTests/LayoutTests/LessThanOrEqualTests/UIViewLessThanOrEqualToUIViewConstraintTests.swift b/Tests/AceLayoutTests/LayoutTests/LessThanOrEqualTests/UIViewLessThanOrEqualToUIViewConstraintTests.swift index a5f4d7e..cd0f580 100644 --- a/Tests/AceLayoutTests/LayoutTests/LessThanOrEqualTests/UIViewLessThanOrEqualToUIViewConstraintTests.swift +++ b/Tests/AceLayoutTests/LayoutTests/LessThanOrEqualTests/UIViewLessThanOrEqualToUIViewConstraintTests.swift @@ -37,7 +37,10 @@ final class UIViewLessThanOrEqualToUIViewConstraintTests: XCTestCase { } let expectedConstraints = [ subview.leadingAnchor.constraint(lessThanOrEqualTo: superview.leadingAnchor), - subview.trailingAnchor.constraint(lessThanOrEqualTo: superview.trailingAnchor, constant: 8) + subview.trailingAnchor.constraint( + lessThanOrEqualTo: superview.trailingAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -47,7 +50,10 @@ final class UIViewLessThanOrEqualToUIViewConstraintTests: XCTestCase { item.leading.lessThanOrEqual(to: superview.trailingAnchor, plus: 8) } let expectedConstraints = [ - subview.leadingAnchor.constraint(lessThanOrEqualTo: superview.trailingAnchor, constant: 8) + subview.leadingAnchor.constraint( + lessThanOrEqualTo: superview.trailingAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -57,7 +63,10 @@ final class UIViewLessThanOrEqualToUIViewConstraintTests: XCTestCase { item.leading.lessThanOrEqualToSuperview(plus: 8) } let expectedConstraints = [ - subview.leadingAnchor.constraint(lessThanOrEqualTo: superview.leadingAnchor, constant: 8) + subview.leadingAnchor.constraint( + lessThanOrEqualTo: superview.leadingAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -72,7 +81,10 @@ final class UIViewLessThanOrEqualToUIViewConstraintTests: XCTestCase { } let expectedConstraints = [ subview.topAnchor.constraint(lessThanOrEqualTo: superview.topAnchor), - subview.bottomAnchor.constraint(lessThanOrEqualTo: superview.bottomAnchor, constant: 8) + subview.bottomAnchor.constraint( + lessThanOrEqualTo: superview.bottomAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -107,20 +119,32 @@ final class UIViewLessThanOrEqualToUIViewConstraintTests: XCTestCase { let constraints = subview.autoLayout { item in item.top.lessThanOrEqual(toSystemSpacingBelow: superview.topAnchor) item.leading.lessThanOrEqual(toSystemSpacingAfter: superview.leadingAnchor) - item.trailing.lessThanOrEqual(toSystemSpacingAfter: superview.trailingAnchor, - multipliedBy: -1) - item.bottom.lessThanOrEqual(toSystemSpacingBelow: superview.bottomAnchor, - multipliedBy: -1) + item.trailing.lessThanOrEqual( + toSystemSpacingAfter: superview.trailingAnchor, + multipliedBy: -1 + ) + item.bottom.lessThanOrEqual( + toSystemSpacingBelow: superview.bottomAnchor, + multipliedBy: -1 + ) } let expectedConstraints = [ - subview.topAnchor.constraint(lessThanOrEqualToSystemSpacingBelow: superview.topAnchor, - multiplier: 1), - subview.leadingAnchor.constraint(lessThanOrEqualToSystemSpacingAfter: superview.leadingAnchor, - multiplier: 1), - subview.trailingAnchor.constraint(lessThanOrEqualToSystemSpacingAfter: superview.trailingAnchor, - multiplier: -1), - subview.bottomAnchor.constraint(lessThanOrEqualToSystemSpacingBelow: superview.bottomAnchor, - multiplier: -1) + subview.topAnchor.constraint( + lessThanOrEqualToSystemSpacingBelow: superview.topAnchor, + multiplier: 1 + ), + subview.leadingAnchor.constraint( + lessThanOrEqualToSystemSpacingAfter: superview.leadingAnchor, + multiplier: 1 + ), + subview.trailingAnchor.constraint( + lessThanOrEqualToSystemSpacingAfter: superview.trailingAnchor, + multiplier: -1 + ), + subview.bottomAnchor.constraint( + lessThanOrEqualToSystemSpacingBelow: superview.bottomAnchor, + multiplier: -1 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -136,8 +160,14 @@ final class UIViewLessThanOrEqualToUIViewConstraintTests: XCTestCase { } let expectedConstraints = [ subview.widthAnchor.constraint(lessThanOrEqualTo: superview.widthAnchor), - subview.heightAnchor.constraint(lessThanOrEqualTo: superview.heightAnchor, constant: 8), - subview.heightAnchor.constraint(lessThanOrEqualTo: superview.heightAnchor, multiplier: 2) + subview.heightAnchor.constraint( + lessThanOrEqualTo: superview.heightAnchor, + constant: 8 + ), + subview.heightAnchor.constraint( + lessThanOrEqualTo: superview.heightAnchor, + multiplier: 2 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -148,8 +178,14 @@ final class UIViewLessThanOrEqualToUIViewConstraintTests: XCTestCase { item.width.lessThanOrEqual(to: superview.heightAnchor, multipliedBy: 2) } let expectedConstraints = [ - subview.widthAnchor.constraint(lessThanOrEqualTo: superview.heightAnchor, constant: 8), - subview.widthAnchor.constraint(lessThanOrEqualTo: superview.heightAnchor, multiplier: 2) + subview.widthAnchor.constraint( + lessThanOrEqualTo: superview.heightAnchor, + constant: 8 + ), + subview.widthAnchor.constraint( + lessThanOrEqualTo: superview.heightAnchor, + multiplier: 2 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -160,8 +196,14 @@ final class UIViewLessThanOrEqualToUIViewConstraintTests: XCTestCase { item.width.lessThanOrEqual(to: item.height, multipliedBy: 2) } let expectedConstraints = [ - subview.widthAnchor.constraint(lessThanOrEqualTo: subview.heightAnchor, constant: 8), - subview.widthAnchor.constraint(lessThanOrEqualTo: subview.heightAnchor, multiplier: 2) + subview.widthAnchor.constraint( + lessThanOrEqualTo: subview.heightAnchor, + constant: 8 + ), + subview.widthAnchor.constraint( + lessThanOrEqualTo: subview.heightAnchor, + multiplier: 2 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -182,8 +224,14 @@ final class UIViewLessThanOrEqualToUIViewConstraintTests: XCTestCase { item.height.lessThanOrEqualToSuperview(multipliedBy: 2) } let expectedConstraints = [ - subview.widthAnchor.constraint(lessThanOrEqualTo: superview.widthAnchor, constant: 8), - subview.heightAnchor.constraint(lessThanOrEqualTo: superview.heightAnchor, multiplier: 2) + subview.widthAnchor.constraint( + lessThanOrEqualTo: superview.widthAnchor, + constant: 8 + ), + subview.heightAnchor.constraint( + lessThanOrEqualTo: superview.heightAnchor, + multiplier: 2 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -197,9 +245,13 @@ final class UIViewLessThanOrEqualToUIViewConstraintTests: XCTestCase { item.lastBaseline.lessThanOrEqual(to: superview, plus: 8) } let expectedConstraints = [ - subview.firstBaselineAnchor.constraint(lessThanOrEqualTo: superview.firstBaselineAnchor), - subview.lastBaselineAnchor.constraint(lessThanOrEqualTo: superview.lastBaselineAnchor, - constant: 8) + subview.firstBaselineAnchor.constraint( + lessThanOrEqualTo: superview.firstBaselineAnchor + ), + subview.lastBaselineAnchor.constraint( + lessThanOrEqualTo: superview.lastBaselineAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -209,8 +261,10 @@ final class UIViewLessThanOrEqualToUIViewConstraintTests: XCTestCase { item.firstBaseline.lessThanOrEqual(to: superview.bottomAnchor, plus: 8) } let expectedConstraints = [ - subview.firstBaselineAnchor.constraint(lessThanOrEqualTo: superview.bottomAnchor, - constant: 8) + subview.firstBaselineAnchor.constraint( + lessThanOrEqualTo: superview.bottomAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -220,8 +274,10 @@ final class UIViewLessThanOrEqualToUIViewConstraintTests: XCTestCase { item.firstBaseline.lessThanOrEqualToSuperview(plus: 8) } let expectedConstraints = [ - subview.firstBaselineAnchor.constraint(lessThanOrEqualTo: superview.firstBaselineAnchor, - constant: 8) + subview.firstBaselineAnchor.constraint( + lessThanOrEqualTo: superview.firstBaselineAnchor, + constant: 8 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -238,7 +294,10 @@ final class UIViewLessThanOrEqualToUIViewConstraintTests: XCTestCase { let expectedConstraints = [ subview.centerXAnchor.constraint(lessThanOrEqualTo: superview.centerXAnchor), subview.centerYAnchor.constraint(lessThanOrEqualTo: superview.centerYAnchor), - subview.leadingAnchor.constraint(lessThanOrEqualTo: superview.leadingAnchor, constant: 10), + subview.leadingAnchor.constraint( + lessThanOrEqualTo: superview.leadingAnchor, + constant: 10 + ), subview.topAnchor.constraint(lessThanOrEqualTo: superview.topAnchor, constant: 20) ] NSLayoutConstraint.activate(expectedConstraints) @@ -252,8 +311,14 @@ final class UIViewLessThanOrEqualToUIViewConstraintTests: XCTestCase { let expectedConstraints = [ subview.leftAnchor.constraint(lessThanOrEqualTo: superview.leftAnchor), subview.topAnchor.constraint(lessThanOrEqualTo: superview.topAnchor), - subview.rightAnchor.constraint(lessThanOrEqualTo: superview.rightAnchor, constant: 10), - subview.bottomAnchor.constraint(lessThanOrEqualTo: superview.bottomAnchor, constant: 20) + subview.rightAnchor.constraint( + lessThanOrEqualTo: superview.rightAnchor, + constant: 10 + ), + subview.bottomAnchor.constraint( + lessThanOrEqualTo: superview.bottomAnchor, + constant: 20 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -269,8 +334,14 @@ final class UIViewLessThanOrEqualToUIViewConstraintTests: XCTestCase { let expectedConstraints = [ subview.widthAnchor.constraint(lessThanOrEqualTo: superview.widthAnchor), subview.heightAnchor.constraint(lessThanOrEqualTo: superview.heightAnchor), - subview.widthAnchor.constraint(lessThanOrEqualTo: superview.widthAnchor, multiplier: 2), - subview.heightAnchor.constraint(lessThanOrEqualTo: superview.heightAnchor, multiplier: 2) + subview.widthAnchor.constraint( + lessThanOrEqualTo: superview.widthAnchor, + multiplier: 2 + ), + subview.heightAnchor.constraint( + lessThanOrEqualTo: superview.heightAnchor, + multiplier: 2 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) @@ -305,8 +376,14 @@ final class UIViewLessThanOrEqualToUIViewConstraintTests: XCTestCase { let expectedConstraints = [ subview.widthAnchor.constraint(lessThanOrEqualTo: superview.widthAnchor), subview.heightAnchor.constraint(lessThanOrEqualTo: superview.heightAnchor), - subview.widthAnchor.constraint(lessThanOrEqualTo: superview.widthAnchor, multiplier: 2), - subview.heightAnchor.constraint(lessThanOrEqualTo: superview.heightAnchor, multiplier: 2) + subview.widthAnchor.constraint( + lessThanOrEqualTo: superview.widthAnchor, + multiplier: 2 + ), + subview.heightAnchor.constraint( + lessThanOrEqualTo: superview.heightAnchor, + multiplier: 2 + ) ] NSLayoutConstraint.activate(expectedConstraints) assertEqual(constraints, expectedConstraints) diff --git a/Tests/AceLayoutTests/NSLayoutConstraintExtensionTests.swift b/Tests/AceLayoutTests/NSLayoutConstraintExtensionTests.swift index 54ab9e3..024fe4c 100644 --- a/Tests/AceLayoutTests/NSLayoutConstraintExtensionTests.swift +++ b/Tests/AceLayoutTests/NSLayoutConstraintExtensionTests.swift @@ -35,7 +35,9 @@ final class NSLayoutConstraintExtensionTests: XCTestCase { item.height.equal(to: 100).priority(.defaultLow) item.center.equal(to: superview).priority(.defaultHigh) } - XCTAssertEqual(constraints.map { $0.priority }, - [.required, .defaultLow, .defaultHigh, .defaultHigh]) + XCTAssertEqual( + constraints.map { $0.priority }, + [.required, .defaultLow, .defaultHigh, .defaultHigh] + ) } } diff --git a/codecov.yml b/codecov.yml new file mode 100644 index 0000000..9b13b6b --- /dev/null +++ b/codecov.yml @@ -0,0 +1,8 @@ +coverage: + status: + patch: + default: + informational: true + project: + default: + threshold: 10%