From d15a10857f7cd507c8fd1bdafbb0be6acffc6bd9 Mon Sep 17 00:00:00 2001 From: Madhas Date: Wed, 11 Apr 2018 16:39:03 +0300 Subject: [PATCH 1/3] setToCenter with insets updated --- .../UIKit/UIView/UIView+Layout.swift | 30 +++++++++---------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/Sources/Extensions/UIKit/UIView/UIView+Layout.swift b/Sources/Extensions/UIKit/UIView/UIView+Layout.swift index 359487e8..dee88194 100644 --- a/Sources/Extensions/UIKit/UIView/UIView+Layout.swift +++ b/Sources/Extensions/UIKit/UIView/UIView+Layout.swift @@ -56,31 +56,29 @@ public extension UIView { - parameter insets: desired view insets, by default is zero */ - func setToCenter(wtihInsets insets: UIEdgeInsets = .zero) { + func pinToSuperview(wtihInsets insets: UIEdgeInsets = .zero, excluding edges: UIRectEdge = []) { guard let superview = superview else { return } + let topActive = !edges.contains(.top) + let leadingActive = !edges.contains(.left) + let bottomActive = !edges.contains(.bottom) + let trailingActive = !edges.contains(.right) + translatesAutoresizingMaskIntoConstraints = false - let constraints: [NSLayoutConstraint] if #available(iOS 11, tvOS 11, *) { - constraints = [ - topAnchor.constraint(equalTo: superview.safeAreaLayoutGuide.topAnchor, constant: insets.top), - leadingAnchor.constraint(equalTo: superview.safeAreaLayoutGuide.leadingAnchor, constant: insets.left), - bottomAnchor.constraint(equalTo: superview.safeAreaLayoutGuide.bottomAnchor, constant: -insets.bottom), - trailingAnchor.constraint(equalTo: superview.safeAreaLayoutGuide.trailingAnchor, constant: -insets.right) - ] + topAnchor.constraint(equalTo: superview.safeAreaLayoutGuide.topAnchor, constant: insets.top).isActive = topActive + leadingAnchor.constraint(equalTo: superview.safeAreaLayoutGuide.leadingAnchor, constant: insets.left).isActive = leadingActive + bottomAnchor.constraint(equalTo: superview.safeAreaLayoutGuide.bottomAnchor, constant: -insets.bottom).isActive = bottomActive + trailingAnchor.constraint(equalTo: superview.safeAreaLayoutGuide.trailingAnchor, constant: -insets.right).isActive = trailingActive } else { - constraints = [ - topAnchor.constraint(equalTo: superview.topAnchor, constant: insets.top), - leadingAnchor.constraint(equalTo: superview.leadingAnchor, constant: insets.left), - bottomAnchor.constraint(equalTo: superview.bottomAnchor, constant: -insets.bottom), - trailingAnchor.constraint(equalTo: superview.trailingAnchor, constant: -insets.right) - ] + topAnchor.constraint(equalTo: superview.topAnchor, constant: insets.top).isActive = topActive + leadingAnchor.constraint(equalTo: superview.leadingAnchor, constant: insets.left).isActive = leadingActive + bottomAnchor.constraint(equalTo: superview.bottomAnchor, constant: -insets.bottom).isActive = bottomActive + trailingAnchor.constraint(equalTo: superview.trailingAnchor, constant: -insets.right).isActive = trailingActive } - - NSLayoutConstraint.activate(constraints) } private func scaleToFill() { From 0c27f3b81d11e11f63f89e6e617b2873e701cce1 Mon Sep 17 00:00:00 2001 From: Madhas Date: Wed, 11 Apr 2018 16:45:25 +0300 Subject: [PATCH 2/3] pleasuring swiftlint --- .../Array/Array+SeparatorRowBoxExtensions.swift | 2 +- Sources/Extensions/UIKit/UIView/UIView+Layout.swift | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/Sources/Extensions/Array/Array+SeparatorRowBoxExtensions.swift b/Sources/Extensions/Array/Array+SeparatorRowBoxExtensions.swift index 3a0e8ad3..690b26a0 100644 --- a/Sources/Extensions/Array/Array+SeparatorRowBoxExtensions.swift +++ b/Sources/Extensions/Array/Array+SeparatorRowBoxExtensions.swift @@ -43,7 +43,7 @@ public extension Array where Element == SeparatorRowBox { case 1: first?.set(separatorType: .full(extremeSeparatorConfiguration, extremeSeparatorConfiguration)) default: - forEach { $0.set(separatorType: .bottom(middleSeparatorConfiguration))} + forEach { $0.set(separatorType: .bottom(middleSeparatorConfiguration)) } first?.set(separatorType: .full(extremeSeparatorConfiguration, middleSeparatorConfiguration)) last?.set(separatorType: .bottom(extremeSeparatorConfiguration)) } diff --git a/Sources/Extensions/UIKit/UIView/UIView+Layout.swift b/Sources/Extensions/UIKit/UIView/UIView+Layout.swift index dee88194..1736af93 100644 --- a/Sources/Extensions/UIKit/UIView/UIView+Layout.swift +++ b/Sources/Extensions/UIKit/UIView/UIView+Layout.swift @@ -69,10 +69,14 @@ public extension UIView { translatesAutoresizingMaskIntoConstraints = false if #available(iOS 11, tvOS 11, *) { - topAnchor.constraint(equalTo: superview.safeAreaLayoutGuide.topAnchor, constant: insets.top).isActive = topActive - leadingAnchor.constraint(equalTo: superview.safeAreaLayoutGuide.leadingAnchor, constant: insets.left).isActive = leadingActive - bottomAnchor.constraint(equalTo: superview.safeAreaLayoutGuide.bottomAnchor, constant: -insets.bottom).isActive = bottomActive - trailingAnchor.constraint(equalTo: superview.safeAreaLayoutGuide.trailingAnchor, constant: -insets.right).isActive = trailingActive + topAnchor.constraint(equalTo: superview.safeAreaLayoutGuide.topAnchor, constant: insets.top) + .isActive = topActive + leadingAnchor.constraint(equalTo: superview.safeAreaLayoutGuide.leadingAnchor, constant: insets.left) + .isActive = leadingActive + bottomAnchor.constraint(equalTo: superview.safeAreaLayoutGuide.bottomAnchor, constant: -insets.bottom) + .isActive = bottomActive + trailingAnchor.constraint(equalTo: superview.safeAreaLayoutGuide.trailingAnchor, constant: -insets.right) + .isActive = trailingActive } else { topAnchor.constraint(equalTo: superview.topAnchor, constant: insets.top).isActive = topActive leadingAnchor.constraint(equalTo: superview.leadingAnchor, constant: insets.left).isActive = leadingActive From fc591bba0c304a3c8657aefd4fcbdaa316b97bf0 Mon Sep 17 00:00:00 2001 From: Madhas Date: Wed, 11 Apr 2018 16:51:32 +0300 Subject: [PATCH 3/3] change log + comments --- CHANGELOG.md | 4 ++++ Sources/Extensions/UIKit/UIView/UIView+Layout.swift | 1 + 2 files changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d6549d1a..c2e1af8c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,8 @@ # Changelog +### 0.7.8 +- **Update**: Rename setToCenter(withInsets:) to pintToSuperview(withInsets:excluding:) +- **Update**: Added parameter "edges" with label "excluding" to aforementioned method" + ### 0.7.7 - **Fix**: Fix doubling separator line issue diff --git a/Sources/Extensions/UIKit/UIView/UIView+Layout.swift b/Sources/Extensions/UIKit/UIView/UIView+Layout.swift index 1736af93..a5da986f 100644 --- a/Sources/Extensions/UIKit/UIView/UIView+Layout.swift +++ b/Sources/Extensions/UIKit/UIView/UIView+Layout.swift @@ -55,6 +55,7 @@ public extension UIView { Place and fix view to parent view's center with insets - parameter insets: desired view insets, by default is zero + - parameter edges: edges to which no constraints are needed */ func pinToSuperview(wtihInsets insets: UIEdgeInsets = .zero, excluding edges: UIRectEdge = []) { guard let superview = superview else {