     }
 
     // MARK: Private helper methods.
-    private func anchor(for anchor: HorizontalAnchor) -> NSLayoutAnchor<NSLayoutXAxisAnchor> {
+    private func anchor(_ view: UIView, for anchor: HorizontalAnchor) -> NSLayoutAnchor<NSLayoutXAxisAnchor> {
         switch anchor {
         case .leading:
-            return leadingAnchor
+            return view.leadingAnchor
         case .trailing:
-            return trailingAnchor
+            return view.trailingAnchor
         case .left:
-            return leftAnchor
+            return view.leftAnchor
         case .right:
-            return rightAnchor
+            return view.rightAnchor
         case .centerX:
-            return centerXAnchor
-        }
-    }
-
-    private func anchor(for anchor: VerticalAnchor) -> NSLayoutAnchor<NSLayoutYAxisAnchor> {
+            return view.centerXAnchor
+        }
+    }
+
+    private func anchor(_ view: UIView, for anchor: VerticalAnchor) -> NSLayoutAnchor<NSLayoutYAxisAnchor> {
         switch anchor {
         case .top:
-            return topAnchor
+            return view.topAnchor
         case .bottom:
-            return bottomAnchor
+            return view.bottomAnchor
         case .centerY:
-            return centerYAnchor
+            return view.centerYAnchor
         case .firstBaseline:
-            return firstBaselineAnchor
+            return view.firstBaselineAnchor
         case .lastBaseline:
-            return lastBaselineAnchor
-        }
-    }
-
-    private func anchor(for anchor: DimensionAnchor) -> NSLayoutDimension {
+            return view.lastBaselineAnchor
+        }
+    }
+
+    private func anchor(_ view: UIView, for anchor: DimensionAnchor) -> NSLayoutDimension {
         switch anchor {
         case .width:
-            return widthAnchor
+            return view.widthAnchor
         case .height:
-            return heightAnchor
+            return view.heightAnchor
         }
     }
 

    /// - Returns: The activated `NSLayoutConstraint` object that was created.
    @discardableResult
    func pin(_ edge: VerticalAnchor, lessThanOrEqualTo anchorAttachment: NSLayoutAnchor<NSLayoutYAxisAnchor>, padding: CGFloat = 0.0) -> NSLayoutConstraint {
        let constraint = anchor(for: edge).constraint(lessThanOrEqualTo: anchorAttachment, constant: padding)

        return disableTranslatesAutoresizingMaskAndActivate(constraint)
    }

    /// - Returns: The activated `NSLayoutConstraint` object that was created.
    @discardableResult
    func pin(_ dimension: DimensionAnchor, greaterThanOrEqualTo anchorAttachment: NSLayoutAnchor<NSLayoutDimension>, padding: CGFloat = 0.0) -> NSLayoutConstraint {
        let constraint = anchor(self, for: dimension).constraint(greaterThanOrEqualTo: anchorAttachment, constant: padding)

        return disableTranslatesAutoresizingMaskAndActivate(constraint)
    }
