From 418d80db10e1886db27b587fba09e7ab0f3ab1ca Mon Sep 17 00:00:00 2001 From: Luc Dion Date: Mon, 27 Mar 2017 19:23:24 -0400 Subject: [PATCH] Changes: * Add width(percent: CGFloat), height(percent: CGFloat) * Fix context strings * Removed commented functions * Update sample app --- Keynote Layout presentation.key | Bin 732458 -> 721098 bytes .../Extensions/UIView+PinLayout.swift | 54 +++-- MCSwiftLayout/Layout.swift | 223 +++++++----------- .../project.pbxproj | 25 +- .../UI/Main/MenuView.swift | 1 - .../UI/Main/MenuViewController.swift | 50 ++-- .../BothEdgesSnappedView.swift | 13 +- .../ChainedLayoutView/ChainedLayoutView.swift | 3 +- .../MarginsAndInsetsView.swift | 1 - .../Tests/PinScrolling/PinScrollingView.swift | 67 ++++++ .../PinScrollingViewController.swift | 26 ++ .../UI/Tests/RelativeView/RelativeView.swift | 3 +- .../ValidateConflictsView.swift | 3 +- .../ViewExtensionsPositionningView.swift | 6 +- MCSwiftLayoutTests/AdjustSizeSpec.swift | 53 ++++- MCSwiftLayoutTests/MCSwiftLayoutTests.swift | 3 + 16 files changed, 311 insertions(+), 220 deletions(-) create mode 100644 MCSwiftLayoutSample/MCSwiftLayoutSample/UI/Tests/PinScrolling/PinScrollingView.swift create mode 100644 MCSwiftLayoutSample/MCSwiftLayoutSample/UI/Tests/PinScrolling/PinScrollingViewController.swift diff --git a/Keynote Layout presentation.key b/Keynote Layout presentation.key index 8d9492a93ee8750aafb127a23facc3cf45b59e0f..0efc5fdfc2bbc089687f8c787aea5a46569e1cac 100644 GIT binary patch delta 95918 zcmZ5|2|QHa`~SVOaA%BZOfw8-uCZmwI(8vcLPe=mL?x6YYf0NEt+ERxBqiEZlzq)k zc2Sfids3E!NdGfF-_Q5^d;M#k^PGF0voFu{e$LGGq)VypqLTRbEm#~4;{A)gf5uWj z@rw0YDg^O}8b?_zK$n8#s8Gwg8gT@siU7jG5T0SHNNQu>kZfnaXScFjB5iEBtB^J} zm5B7f1V0kA3TcNaxQ{pj#aRehg`~sCUSt=7A`*xZ8`_J!XH$0~7y^4TxEfa6ob!>` z+#(&B%=$Afn8^s7r_ID-KHQ*Od4+^!@V~mvKba>!UM<$i?i&>ENu@7@U}qQ5ymsLa z?5FJFFlKryX0}qOnR^#U#Uh<-u^^a=LqL5X1O-6|@_-PO0U@XYgrF&2N~I78LH!_X z2BmTEiM=2S8V4b05QLyD5T>`n)JaRwBM=9@10m=JXzVE)L_se>nDa5(3zp^bCXr^m z505Y)$oMpL5yq3$*dfNjFc!&VM8FUOzYRx4luZt*D`MY#Byuo$`k*j~u^}}`7cz!y z;KQf!8|e^Kv%w3x1d8S9gJQ`rln%o$VJH`d8M26qC8XBaBF(}4HU_0Z%+(UY{WdnW z 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 NDhMWIgZQpr{|~PYb58&O diff --git a/MCSwiftLayout/Extensions/UIView+PinLayout.swift b/MCSwiftLayout/Extensions/UIView+PinLayout.swift index 27889298..76d36bf3 100644 --- a/MCSwiftLayout/Extensions/UIView+PinLayout.swift +++ b/MCSwiftLayout/Extensions/UIView+PinLayout.swift @@ -17,6 +17,10 @@ public extension UIView { return PinList(view: self) } +// public var pin: Layout { +// return Layout(view: self) +// } + public var edge: EdgeList { return EdgeList(view: self) } @@ -26,26 +30,26 @@ public extension UIView { // } } -// Could be part of another GitHub repo -//public extension UIView { - /*public var top: CGFloat { +// Could be part of another GitHub repo? +public extension UIView { + public var top: CGFloat { get { return frame.origin.y } - set { frame = CGRect(x: left, y: roundFloatToDisplayScale(newValue), width: width, height: height) } + set { frame = CGRect(x: left, y: Coordinates.roundFloatToDisplayScale(newValue), width: width, height: height) } } public var left: CGFloat { get { return frame.origin.x } - set { frame = CGRect(x: roundFloatToDisplayScale(newValue), y: top, width: width, height: height) } + set { frame = CGRect(x: Coordinates.roundFloatToDisplayScale(newValue), y: top, width: width, height: height) } } public var bottom: CGFloat { get { return frame.maxY } - set { height = roundFloatToDisplayScale(newValue - top) } + set { height = Coordinates.roundFloatToDisplayScale(newValue - top) } } public var right: CGFloat { get { return frame.maxX } - set { width = roundFloatToDisplayScale(newValue - left) } + set { width = Coordinates.roundFloatToDisplayScale(newValue - left) } } public var hCenter: CGFloat { @@ -56,7 +60,7 @@ public extension UIView { public var vCenter: CGFloat { get { return top + (height / 2) } set { top = newValue - (height / 2) } - }*/ + } /* public var topLeft: CGPoint { get { return CGPoint(x: left, y: top) } @@ -130,18 +134,22 @@ public extension UIView { } } */ -// public var size: CGSize { -// get { return CGSize(width: width, height: height) } -// set { frame = CGRect(x: left, y: top, width: ceilFloatToDisplayScale(newValue.width), height: ceilFloatToDisplayScale(newValue.height)) } -// } -// -// public var width: CGFloat { -// get { return frame.size.width } -// set { frame = CGRect(x: left, y: top, width: ceilFloatToDisplayScale(newValue), height: height) } -// } -// -// public var height: CGFloat { -// get { return frame.size.height } -// set { frame = CGRect(x: left, y: top, width: width, height: ceilFloatToDisplayScale(newValue)) } -// } -//} + public var size: CGSize { + get { return CGSize(width: frame.size.width, height: frame.size.height) } + set { frame = CGRect(x: frame.origin.x, y: frame.origin.y, + width: Coordinates.ceilFloatToDisplayScale(newValue.width), + height: Coordinates.ceilFloatToDisplayScale(newValue.height)) } + } + + public var width: CGFloat { + get { return frame.size.width } + set { frame = CGRect(x: frame.origin.x, y: frame.origin.y, + width: Coordinates.ceilFloatToDisplayScale(newValue), height: height) } + } + + public var height: CGFloat { + get { return frame.size.height } + set { frame = CGRect(x: frame.origin.x, y: frame.origin.y, + width: width, height: Coordinates.ceilFloatToDisplayScale(newValue)) } + } +} diff --git a/MCSwiftLayout/Layout.swift b/MCSwiftLayout/Layout.swift index 9e9bcf6a..9281320b 100644 --- a/MCSwiftLayout/Layout.swift +++ b/MCSwiftLayout/Layout.swift @@ -7,6 +7,12 @@ // import UIKit + +//constrain(button1, button2) { button1, button2 in +// button1.right == button2.left - 12 +//} + + /* =============================================== QUESTIONS: @@ -71,12 +77,23 @@ import UIKit =============================================== TODO: =============================================== + - Verifier ce qui se passe avec UIView lorsque width/height sont négatif. Est-ce que ça devient 0? Appliquer la même + règle et enlever le guard du code dans setWidth et setHeight. + + - frame(of: UIView) + - frame() + + - right(percent: CGFloat), left(percent: CGFloat), ... + - In CSS + - negative width and height is not applied, alson for percentages + - right/bottom: negative value and percentage is applyed + right: -20px increase the width by an extra 20 pixels + right: -50% increase the width by an extra 50% (width = parent's width * 1.50) + + - Faire sample avec un scrollview qui contient une viewA et: 1- pin une view ne faisant pas parti de la scrollview à viewA 2- pin une view à un coin de viewA et un autre coin de cette view à un coin qui ne bouge pas. - - Faire un sample avec A pinner à droite avec une largeur de 30. Et pinner viewB.left à gauche de la superview - et viewB.right à la viewA. Comme ça lorsque la taille de l'écran change uniquement viewB va changer de taille. - - sizeToFit() devrait prendre un parametre indiquant si on doit caster les nouvelles valeur de width et de height (forceSize, castSize, ...?) @@ -86,20 +103,10 @@ import UIKit - Support hCenter + left or right - Support vCenter + top or bottom - - implement sizeThatFits - - Insets should be applied to width and height before calling view.sizeThatFits() - - Est-ce que aView.layout.pinTopLeft(superview.pin.center) fonctionne? - peut-être enlever tous les UIView.topLeft, UIView.topCenter, ....? - - Implement this: ?? - - view.layout.left(backgroundView.edge.left) - - view.layout.top(backgroundView.edge.bottom) - - - Implement Layout + Layout operator - - - width(percentage: CGFloat, of view: UIView) - maxWidth(), minWidth(), maxHeight(), minHeight() - inset(t:? = nil l:? = nil b:? = nil r:? = nil ) ?? @@ -119,12 +126,29 @@ import UIKit .strokeWidth(1), .baselineOffset(5.2) ]) + + - Inspired by https://github.com/robb/Cartography + // Other possible syntax + layout(viewA) { viewA in { + viewA.pinTopLeft(to: viewB.pin.topLeft).margin(20) + viewA.width(20).height(20) + } */ fileprivate typealias Context = () -> String fileprivate typealias Size = (width: CGFloat?, height: CGFloat?) + +public func pin(_ view: UIView) -> Layout { + return Layout(view: view) +} + public class Layout { - static var logConflicts = true + #if DEBUG + public static var logConflicts = true + #else + public static var logConflicts = false + #endif + // static var useBottomRightCssStyle = false fileprivate let view: UIView @@ -235,7 +259,7 @@ public class Layout { // @discardableResult public func pinTopLeft(to point: CGPoint) -> Layout { - return setTopLeft(point, context: { return "topLeft(CGPoint(x: \(point.x), y: \(point.y)))" }) + return setTopLeft(point, context: { return "pinTopLeft(to: CGPoint(x: \(point.x), y: \(point.y)))" }) } /// Position the topLeft on the specified view's pin. @@ -248,20 +272,10 @@ public class Layout { return self } - /// Position on the topLeft corner of the specified view. -// @discardableResult -// public func pinTopLeft(to relativeView: UIView) -> Layout { -// func context() -> String { return "topLeft(of: \(view))" } -// if let coordinates = computeCoordinates(forPin: .topLeft, of: relativeView, context: context) { -// setTopLeft(coordinates, context: context) -// } -// return self -// } - /// Position on the topLeft corner of its parent. @discardableResult public func pinTopLeft() -> Layout { - func context() -> String { return "topLeft()" } + func context() -> String { return "pinTopLeft()" } if let layoutSuperview = validateLayoutSuperview(context: context) { if let coordinates = computeCoordinates(forPin: .topLeft, of: layoutSuperview, context: context) { setTopLeft(coordinates, context: context) @@ -272,7 +286,7 @@ public class Layout { @discardableResult public func pinTopCenter(to point: CGPoint) -> Layout { - return setTopCenter(point, context: { return "topCenter(CGPoint(x: \(point.x), y: \(point.y)))" }) + return setTopCenter(point, context: { return "pinTopCenter(to: CGPoint(x: \(point.x), y: \(point.y)))" }) } /// Position the topCenter on the specified view's pin. @@ -284,21 +298,11 @@ public class Layout { } return self } - - /// Position on the topCenter corner of the specified view. -// @discardableResult -// public func pinTopCenter(to relativeView: UIView) -> Layout { -// func context() -> String { return "topCenter(of: \(view))" } -// if let coordinates = computeCoordinates(forPin: .topCenter, of: relativeView, context: context) { -// setTopCenter(coordinates, context: context) -// } -// return self -// } /// Position on the topCenter corner of its parent. @discardableResult public func pinTopCenter() -> Layout { - func context() -> String { return "topCenter()" } + func context() -> String { return "pinTopCenter()" } if let layoutSuperview = validateLayoutSuperview(context: context) { if let coordinates = computeCoordinates(forPin: .topCenter, of: layoutSuperview, context: context) { setTopCenter(coordinates, context: context) @@ -309,7 +313,7 @@ public class Layout { @discardableResult public func pinTopRight(to point: CGPoint) -> Layout { - return setTopRight(point, context: { return "topRight(CGPoint(x: \(point.x), y: \(point.y)))" }) + return setTopRight(point, context: { return "pinTopRight(to: CGPoint(x: \(point.x), y: \(point.y)))" }) } /// Position the topRight on the specified view's pin. @@ -321,21 +325,11 @@ public class Layout { } return self } - - /// Position on the topRight corner of the specified view. -// @discardableResult -// public func pinTopRight(to relativeView: UIView) -> Layout { -// func context() -> String { return "topRight(of: \(view))" } -// if let coordinates = computeCoordinates(forPin: .topRight, of: relativeView, context: context) { -// setTopRight(coordinates, context: context) -// } -// return self -// } /// Position on the topRight corner of its parent. @discardableResult public func pinTopRight() -> Layout { - func context() -> String { return "topRight()" } + func context() -> String { return "pinTopRight()" } if let layoutSuperview = validateLayoutSuperview(context: context) { if let coordinates = computeCoordinates(forPin: .topRight, of: layoutSuperview, context: context) { setTopRight(coordinates, context: context) @@ -346,7 +340,7 @@ public class Layout { @discardableResult public func pinLeftCenter(to point: CGPoint) -> Layout { - return setLeftCenter(point, context: { return "leftCenter(CGPoint(x: \(point.x), y: \(point.y)))" }) + return setLeftCenter(point, context: { return "pinLeftCenter(to: CGPoint(x: \(point.x), y: \(point.y)))" }) } /// Position the leftCenter on the specified view's pin. @@ -359,20 +353,10 @@ public class Layout { return self } - /// Position on the leftCenter corner of the specified view. -// @discardableResult -// public func pinLeftCenter(to relativeView: UIView) -> Layout { -// func context() -> String { return "leftCenter(of: \(view))" } -// if let coordinates = computeCoordinates(forPin: .leftCenter, of: relativeView, context: context) { -// setLeftCenter(coordinates, context: context) -// } -// return self -// } - /// Position on the leftCenter corner of its parent. @discardableResult public func pinLeftCenter() -> Layout { - func context() -> String { return "leftCenter()" } + func context() -> String { return "pinLeftCenter()" } if let layoutSuperview = validateLayoutSuperview(context: context) { if let coordinates = computeCoordinates(forPin: .leftCenter, of: layoutSuperview, context: context) { setLeftCenter(coordinates, context: context) @@ -383,7 +367,7 @@ public class Layout { @discardableResult public func pinCenter(to point: CGPoint) -> Layout { - return setCenter(point, context: { return "centers(CGPoint(x: \(point.x), y: \(point.y)))" }) + return setCenter(point, context: { return "pinCenter(to: CGPoint(x: \(point.x), y: \(point.y)))" }) } /// Position the centers on the specified view's pin. @@ -396,18 +380,9 @@ public class Layout { return self } -// @discardableResult -// public func pinCenter(to relativeView: UIView) -> Layout { -// func context() -> String { return "centers(of: \(view))" } -// if let coordinates = computeCoordinates(forPin: PinType.center, of: relativeView, context: context) { -// setCenter(coordinates, context: context) -// } -// return self -// } - @discardableResult public func pinCenter() -> Layout { - func context() -> String { return "center()" } + func context() -> String { return "pinCenter()" } if let layoutSuperview = validateLayoutSuperview(context: context) { if let coordinates = computeCoordinates(forPin: .center, of: layoutSuperview, context: context) { setCenter(coordinates, context: context) @@ -418,7 +393,7 @@ public class Layout { @discardableResult public func pinRightCenter(to point: CGPoint) -> Layout { - return setRightCenter(point, context: { return "rightCenter(CGPoint(x: \(point.x), y: \(point.y)))" }) + return setRightCenter(point, context: { return "pinRightCenter(to: CGPoint(x: \(point.x), y: \(point.y)))" }) } /// Position the rightCenter on the specified view's pin. @@ -431,20 +406,10 @@ public class Layout { return self } - /// Position on the rightCenter corner of the specified view. -// @discardableResult -// public func pinRightCenter(to relativeView: UIView) -> Layout { -// func context() -> String { return "rightCenter(of: \(view))" } -// if let coordinates = computeCoordinates(forPin: .rightCenter, of: relativeView, context: context) { -// setRightCenter(coordinates, context: context) -// } -// return self -// } - /// Position on the rightCenter corner of its parent. @discardableResult public func pinRightCenter() -> Layout { - func context() -> String { return "rightCenter()" } + func context() -> String { return "pinRightCenter()" } if let layoutSuperview = validateLayoutSuperview(context: context) { if let coordinates = computeCoordinates(forPin: .rightCenter, of: layoutSuperview, context: context) { setRightCenter(coordinates, context: context) @@ -455,7 +420,7 @@ public class Layout { @discardableResult public func pinBottomLeft(to point: CGPoint) -> Layout { - return setBottomLeft(point, context: { return "bottomLeft(CGPoint(x: \(point.x), y: \(point.y)))" }) + return setBottomLeft(point, context: { return "pinBottomLeft(to: CGPoint(x: \(point.x), y: \(point.y)))" }) } /// Position the bottomLeft on the specified view's pin. @@ -467,21 +432,11 @@ public class Layout { } return self } - - /// Position on the bottomLeft corner of the specified view. -// @discardableResult -// public func pinBottomLeft(to relativeView: UIView) -> Layout { -// func context() -> String { return "bottomLeft(of: \(view))" } -// if let coordinates = computeCoordinates(forPin: .bottomLeft, of: relativeView, context: context) { -// setBottomLeft(coordinates, context: context) -// } -// return self -// } /// Position on the bottomLeft corner of its parent. @discardableResult public func pinBottomLeft() -> Layout { - func context() -> String { return "bottomLeft()" } + func context() -> String { return "pinBottomLeft()" } if let layoutSuperview = validateLayoutSuperview(context: context) { if let coordinates = computeCoordinates(forPin: .bottomLeft, of: layoutSuperview, context: context) { setBottomLeft(coordinates, context: context) @@ -492,7 +447,7 @@ public class Layout { @discardableResult public func pinBottomCenter(to point: CGPoint) -> Layout { - return setBottomCenter(point, context: { return "bottomCenter(CGPoint(x: \(point.x), y: \(point.y)))" }) + return setBottomCenter(point, context: { return "pinBottomCenter(to: CGPoint(x: \(point.x), y: \(point.y)))" }) } /// Position the bottomCenter on the specified view's pin. @@ -504,21 +459,11 @@ public class Layout { } return self } - - /// Position on the bottomCenter corner of the specified view. -// @discardableResult -// public func pinBottomCenter(to relativeView: UIView) -> Layout { -// func context() -> String { return "bottomCenter(of: \(view))" } -// if let coordinates = computeCoordinates(forPin: .bottomCenter, of: relativeView, context: context) { -// setBottomCenter(coordinates, context: context) -// } -// return self -// } - + /// Position on the bottomCenter corner of its parent. @discardableResult public func pinBottomCenter() -> Layout { - func context() -> String { return "bottomCenter()" } + func context() -> String { return "pinBottomCenter()" } if let layoutSuperview = validateLayoutSuperview(context: context) { if let coordinates = computeCoordinates(forPin: .bottomCenter, of: layoutSuperview, context: context) { setBottomCenter(coordinates, context: context) @@ -529,7 +474,7 @@ public class Layout { @discardableResult public func pinBottomRight(to point: CGPoint) -> Layout { - return setBottomRight(point, context: { return "bottomRight(CGPoint(x: \(point.x), y: \(point.y)))" }) + return setBottomRight(point, context: { return "pinBottomRight(to: CGPoint(x: \(point.x), y: \(point.y)))" }) } /// Position the bottomRight on the specified view's pin. @@ -541,21 +486,11 @@ public class Layout { } return self } - - /// Position on the bottomRight corner of the specified view. -// @discardableResult -// public func pinBottomRight(to relativeView: UIView) -> Layout { -// func context() -> String { return "bottomRight(of: \(view))" } -// if let coordinates = computeCoordinates(forPin: .bottomRight, of: relativeView, context: context) { -// setBottomRight(coordinates, context: context) -// } -// return self -// } /// Position on the bottomRight corner of its parent. @discardableResult public func pinBottomRight() -> Layout { - func context() -> String { return "bottomRight()" } + func context() -> String { return "pinBottomRight()" } if let layoutSuperview = validateLayoutSuperview(context: context) { if let coordinates = computeCoordinates(forPin: .bottomRight, of: layoutSuperview, context: context) { setBottomRight(coordinates, context: context) @@ -709,16 +644,30 @@ public class Layout { return setWidth(width, context: { return "width(\(width))" }) } + @discardableResult + public func width(percent: CGFloat) -> Layout { + func context() -> String { return "width(percent: \(percent)%)" } + guard let layoutSuperview = validateLayoutSuperview(context: context) else { return self } + return setWidth(layoutSuperview.frame.width * percent / 100, context: context) + } + @discardableResult public func width(of view: UIView) -> Layout { return setWidth(view.frame.size.width, context: { return "width(of: \(view))" }) } - + @discardableResult public func height(_ height: CGFloat) -> Layout { return setHeight(height, context: { return "height(\(height))" }) } + @discardableResult + public func height(percent: CGFloat) -> Layout { + func context() -> String { return "height(percent: \(percent)%)" } + guard let layoutSuperview = validateLayoutSuperview(context: context) else { return self } + return setHeight(layoutSuperview.frame.height * percent / 100, context: context) + } + @discardableResult public func height(of view: UIView) -> Layout { return setHeight(view.frame.size.height, context: { return "height(of: \(view))" }) @@ -864,7 +813,7 @@ extension Layout { warnConflict(context, ["bottom": bottom!, "height": height!]) } else if vCenter != nil { warnConflict(context, ["Vertical Center": vCenter!]) - } else if top != nil { + } else if top != nil && top! != value { warnPropertyAlreadySet("top", propertyValue: top!, context: context) } else { top = value @@ -876,7 +825,7 @@ extension Layout { warnConflict(context, ["right": right!, "width": width!]) } else if hCenter != nil { warnConflict(context, ["Horizontal Center": hCenter!]) - } else if left != nil { + } else if left != nil && left! != value { warnPropertyAlreadySet("left", propertyValue: left!, context: context) } else { left = value @@ -888,7 +837,7 @@ extension Layout { warnConflict(context, ["left": left!, "width": width!]) } else if hCenter != nil { warnConflict(context, ["Horizontal Center": hCenter!]) - } else if right != nil { + } else if right != nil && right! != value { warnPropertyAlreadySet("right", propertyValue: right!, context: context) } else { right = value @@ -900,7 +849,7 @@ extension Layout { warnConflict(context, ["top": top!, "height": height!]) } else if vCenter != nil { warnConflict(context, ["Vertical Center": vCenter!]) - } else if bottom != nil { + } else if bottom != nil && bottom! != value { warnPropertyAlreadySet("bottom", propertyValue: bottom!, context: context) } else { bottom = value @@ -912,8 +861,8 @@ extension Layout { warnConflict(context, ["left": left!]) } else if right != nil { warnConflict(context, ["right": right!]) - } else if hCenter != nil { - warnPropertyAlreadySet("hCenter", propertyValue: hCenter!, context: context) + } else if hCenter != nil && hCenter! != value { + warnPropertyAlreadySet("Horizontal Center", propertyValue: hCenter!, context: context) } else { hCenter = value } @@ -924,8 +873,8 @@ extension Layout { warnConflict(context, ["top": top!]) } else if bottom != nil { warnConflict(context, ["bottom": bottom!]) - } else if vCenter != nil { - warnPropertyAlreadySet("vCenter", propertyValue: vCenter!, context: context) + } else if vCenter != nil && vCenter! != value { + warnPropertyAlreadySet("Vertical Center", propertyValue: vCenter!, context: context) } else { vCenter = value } @@ -1058,7 +1007,7 @@ extension Layout { fileprivate func computeCoordinates(forEdge edge: EdgeType, of relativeView: UIView, context: Context) -> CGPoint? { guard let layoutSuperview = validateLayoutSuperview(context: context) else { return nil } - guard let relativeSuperview = relativeView.superview else { warn("relative view's superview is nil", context: context); return nil } + guard let relativeSuperview = relativeView.superview else { warn("The view must be added to a UIView before being used as a reference.", context: context); return nil } return computeCoordinates(edge.point(for: relativeView), layoutSuperview, relativeView, relativeSuperview) } @@ -1067,7 +1016,7 @@ extension Layout { if let parentView = view.superview { return parentView } else { - warn("Layout's view must be added to a UIView before being layouted using this method.", context: context) + warn("The view must be added to a UIView before being layouted using this method.", context: context) return nil } } @@ -1224,21 +1173,21 @@ extension Layout { fileprivate func warn(_ text: String, context: Context) { guard Layout.logConflicts else { return } - print("\n👉 \(text) (\(context()))\n") + print("\n👉 Layout Warning: \(context()). \(text)\n") } fileprivate func warnPropertyAlreadySet(_ propertyName: String, propertyValue: CGFloat, context: Context) { guard Layout.logConflicts else { return } - print("\n👉 The \(propertyName) property has already been set to \(propertyValue). (\(context()))\n") + print("\n👉 Layout Conflict: \(context()) won't be applied since it value has already been set to \(propertyValue).\n") } fileprivate func warnPropertyAlreadySet(_ propertyName: String, propertyValue: CGSize, context: Context) { - print("\n👉 The \(propertyName) property has already been set to CGSize(width: \(propertyValue.width), height: \(propertyValue.height)). (\(context()))\n") + print("\n👉 Layout Conflict: \(context()) won't be applied since it value has already been set to CGSize(width: \(propertyValue.width), height: \(propertyValue.height)).\n") } fileprivate func warnConflict(_ context: Context, _ properties: [String: CGFloat]) { guard Layout.logConflicts else { return } - var warning = "\n👉 Layout Conflict: '\(context())' won't be applied since it conflicts with the following already set properties:\n" + var warning = "\n👉 Layout Conflict: \(context()) won't be applied since it conflicts with the following already set properties:\n" properties.forEach { (key, value) in warning += " \(key): \(value)\n" } diff --git a/MCSwiftLayoutSample/MCSwiftLayoutSample.xcodeproj/project.pbxproj b/MCSwiftLayoutSample/MCSwiftLayoutSample.xcodeproj/project.pbxproj index 5625c74e..e1e61b11 100644 --- a/MCSwiftLayoutSample/MCSwiftLayoutSample.xcodeproj/project.pbxproj +++ b/MCSwiftLayoutSample/MCSwiftLayoutSample.xcodeproj/project.pbxproj @@ -7,8 +7,8 @@ objects = { /* Begin PBXBuildFile section */ - 2439CC281E6658C3003326FB /* ReferenceProxy in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 2439CC241E665858003326FB /* MCSwiftLayout.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 2439CC2B1E6658CC003326FB /* ReferenceProxy in Frameworks */ = {isa = PBXBuildFile; fileRef = 2439CC241E665858003326FB /* MCSwiftLayout.framework */; }; + 2439CC281E6658C3003326FB /* MCSwiftLayout.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 2439CC241E665858003326FB /* MCSwiftLayout.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 2439CC2B1E6658CC003326FB /* MCSwiftLayout.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2439CC241E665858003326FB /* MCSwiftLayout.framework */; }; 2439CC351E665BF6003326FB /* MenuView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2439CC331E665BF6003326FB /* MenuView.swift */; }; 2439CC361E665BF6003326FB /* MenuViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2439CC341E665BF6003326FB /* MenuViewController.swift */; }; 2439CC4B1E665C6B003326FB /* BasicView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2439CC381E665C6B003326FB /* BasicView.swift */; }; @@ -35,6 +35,8 @@ 24E6547B1E68F27D00A72A8B /* BothEdgesSnappedViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24E654791E68F27D00A72A8B /* BothEdgesSnappedViewController.swift */; }; 24E654821E69041B00A72A8B /* Expect.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24E654811E69041B00A72A8B /* Expect.swift */; }; DE6C3D736B571B80E207DF6A /* Pods_MCSwiftLayoutSample.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAD69688AA2A3F0994F3074E /* Pods_MCSwiftLayoutSample.framework */; }; + DF66F9DA1E8493E000ADB8D5 /* PinScrollingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF66F9D81E8493E000ADB8D5 /* PinScrollingView.swift */; }; + DF66F9DB1E8493E000ADB8D5 /* PinScrollingViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF66F9D91E8493E000ADB8D5 /* PinScrollingViewController.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -68,7 +70,7 @@ dstPath = ""; dstSubfolderSpec = 10; files = ( - 2439CC281E6658C3003326FB /* ReferenceProxy in Embed Frameworks */, + 2439CC281E6658C3003326FB /* MCSwiftLayout.framework in Embed Frameworks */, ); name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; @@ -105,6 +107,8 @@ 24E654791E68F27D00A72A8B /* BothEdgesSnappedViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BothEdgesSnappedViewController.swift; sourceTree = ""; }; 24E654811E69041B00A72A8B /* Expect.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Expect.swift; sourceTree = ""; }; AAD69688AA2A3F0994F3074E /* Pods_MCSwiftLayoutSample.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_MCSwiftLayoutSample.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + DF66F9D81E8493E000ADB8D5 /* PinScrollingView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = PinScrollingView.swift; path = PinScrolling/PinScrollingView.swift; sourceTree = ""; }; + DF66F9D91E8493E000ADB8D5 /* PinScrollingViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = PinScrollingViewController.swift; path = PinScrolling/PinScrollingViewController.swift; sourceTree = ""; }; F121E291CADD796B007C04BB /* Pods-MCSwiftLayoutSample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MCSwiftLayoutSample.release.xcconfig"; path = "Pods/Target Support Files/Pods-MCSwiftLayoutSample/Pods-MCSwiftLayoutSample.release.xcconfig"; sourceTree = ""; }; F1ACB0EACBD84B57B50D472D /* Pods-MCSwiftLayoutSample.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MCSwiftLayoutSample.debug.xcconfig"; path = "Pods/Target Support Files/Pods-MCSwiftLayoutSample/Pods-MCSwiftLayoutSample.debug.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ @@ -114,7 +118,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 2439CC2B1E6658CC003326FB /* ReferenceProxy in Frameworks */, + 2439CC2B1E6658CC003326FB /* MCSwiftLayout.framework in Frameworks */, DE6C3D736B571B80E207DF6A /* Pods_MCSwiftLayoutSample.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -152,6 +156,7 @@ 2439CC371E665C5E003326FB /* Tests */ = { isa = PBXGroup; children = ( + DF66F9D61E8493D400ADB8D5 /* PinScrolling */, 24E654761E68F20400A72A8B /* BothEdgesSnapped */, 2439CC601E665FDE003326FB /* ChainedLayoutView */, 244C6E161E776ACC0074FC74 /* MarginsAndInsets */, @@ -162,7 +167,6 @@ 2439CC651E66610F003326FB /* ValidateConflictsView */, 2439CC641E6660E6003326FB /* ViewExtensionsPositionningView */, ); - name = Tests; path = Tests; sourceTree = ""; }; @@ -312,6 +316,15 @@ path = Domain; sourceTree = ""; }; + DF66F9D61E8493D400ADB8D5 /* PinScrolling */ = { + isa = PBXGroup; + children = ( + DF66F9D81E8493E000ADB8D5 /* PinScrollingView.swift */, + DF66F9D91E8493E000ADB8D5 /* PinScrollingViewController.swift */, + ); + name = PinScrolling; + sourceTree = ""; + }; F143180314A617EFD07C5709 /* Pods */ = { isa = PBXGroup; children = ( @@ -484,6 +497,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + DF66F9DA1E8493E000ADB8D5 /* PinScrollingView.swift in Sources */, 2439CC591E665C6B003326FB /* ValidateConflictsViewController.swift in Sources */, 2439CC571E665C6B003326FB /* ViewExtensionsPositionningViewController.swift in Sources */, 244C6E1A1E776ADB0074FC74 /* MarginsAndInsetsView.swift in Sources */, @@ -506,6 +520,7 @@ 2439CC4D1E665C6B003326FB /* ChainedLayoutViewController.swift in Sources */, 244C6E1B1E776ADB0074FC74 /* MarginsAndInsetsViewController.swift in Sources */, 2439CC511E665C6B003326FB /* MarginsAndPaddingsLeftWidthViewController.swift in Sources */, + DF66F9DB1E8493E000ADB8D5 /* PinScrollingViewController.swift in Sources */, 2439CC521E665C6B003326FB /* MultiRelativeView.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/MCSwiftLayoutSample/MCSwiftLayoutSample/UI/Main/MenuView.swift b/MCSwiftLayoutSample/MCSwiftLayoutSample/UI/Main/MenuView.swift index 30948e54..90b603cb 100644 --- a/MCSwiftLayoutSample/MCSwiftLayoutSample/UI/Main/MenuView.swift +++ b/MCSwiftLayoutSample/MCSwiftLayoutSample/UI/Main/MenuView.swift @@ -36,7 +36,6 @@ class MenuView: UIView { super.layoutSubviews() tableView.layout.size(size) -// tableView.layoutOld.matchView(self) } } diff --git a/MCSwiftLayoutSample/MCSwiftLayoutSample/UI/Main/MenuViewController.swift b/MCSwiftLayoutSample/MCSwiftLayoutSample/UI/Main/MenuViewController.swift index 8615dac7..6032af70 100644 --- a/MCSwiftLayoutSample/MCSwiftLayoutSample/UI/Main/MenuViewController.swift +++ b/MCSwiftLayoutSample/MCSwiftLayoutSample/UI/Main/MenuViewController.swift @@ -39,7 +39,23 @@ enum Page: Int { case .validateConflicts: return "Validate properties conflicts" case .marginsAndInsets: return "Margins and Insets" case .scrollingPin: return "Pin to UIScrollView" - case .count: return "Unknown" + case .count: return "Unknown" + } + } + + var viewController: UIViewController { + switch self { + case .viewExtensionsPositionning: return ViewExtensionsPositionningViewController() + case .relativePositions: return RelativeViewController() + case .multiRelativePositions: return MultiRelativeViewController() + case .chainedLayout: return ChainedLayoutViewController() + case .bothEdgesSnapped: return BothEdgesSnappedViewController() + case .marginsAndPaddingLeftWidth: return MarginsAndPaddingsLeftWidthViewController() + case .marginsAndPaddingLeftRight: return MarginsAndPaddingsLeftRightViewController() + case .validateConflicts: return ValidateConflictsViewController() + case .marginsAndInsets: return MarginsAndInsetsViewController() + case .scrollingPin: return PinScrollingViewController() + case .count: return UIViewController() } } } @@ -71,36 +87,6 @@ class MenuViewController: UIViewController { // MARK: MenuViewDelegate extension MenuViewController: MenuViewDelegate { func didSelect(page: Page) { - var controller: UIViewController? - - switch page { - case .viewExtensionsPositionning: - controller = ViewExtensionsPositionningViewController() - case .relativePositions: - controller = RelativeViewController() - case .multiRelativePositions: - controller = MultiRelativeViewController() - case .chainedLayout: - controller = ChainedLayoutViewController() - case .bothEdgesSnapped: - controller = BothEdgesSnappedViewController() - case .marginsAndPaddingLeftWidth: - controller = MarginsAndPaddingsLeftWidthViewController() - case .marginsAndPaddingLeftRight: - controller = MarginsAndPaddingsLeftRightViewController() - case .validateConflicts: - controller = ValidateConflictsViewController() - case .marginsAndInsets: - controller = MarginsAndInsetsViewController() -// case .scrollingPin: -// controller = - default: - assert(false) - break - } - - if let controller = controller { - navigationController?.pushViewController(controller, animated: true) - } + navigationController?.pushViewController(page.viewController, animated: true) } } diff --git a/MCSwiftLayoutSample/MCSwiftLayoutSample/UI/Tests/BothEdgesSnapped/BothEdgesSnappedView.swift b/MCSwiftLayoutSample/MCSwiftLayoutSample/UI/Tests/BothEdgesSnapped/BothEdgesSnappedView.swift index a0c97de5..2df74df7 100644 --- a/MCSwiftLayoutSample/MCSwiftLayoutSample/UI/Tests/BothEdgesSnapped/BothEdgesSnappedView.swift +++ b/MCSwiftLayoutSample/MCSwiftLayoutSample/UI/Tests/BothEdgesSnapped/BothEdgesSnappedView.swift @@ -95,11 +95,11 @@ class BothEdgesSnappedView: UIView { // addView(leftRightMarginsLeftRightInsetView) } - fileprivate func addView(_ view: BasicView) { - view.layout.height(30).width(70) - contentScrollView.addSubview(view) - } - +// fileprivate func addView(_ view: BasicView) { +// view.layout.height(30).width(70) +// contentScrollView.addSubview(view) +// } + required init?(coder aDecoder: NSCoder) { super.init(coder: aDecoder) } @@ -129,7 +129,6 @@ class BothEdgesSnappedView: UIView { // bView.layout.above(of: aViewChild, aligned: .right) // expect(bView.frame).to(equal(CGRect(x: 185.0, y: 110.0, width: 40.0, height: 40.0))) - // bView.layout.right(of: aView, aligned: .top) // expect(bView.frame).to(equal(CGRect(x: 300.0, y: 100.0, width: 40.0, height: 40.0))) // bView.layout.right(of: aViewChild, aligned: .top) @@ -145,7 +144,6 @@ class BothEdgesSnappedView: UIView { // bView.layout.right(of: aViewChild, aligned: .bottom) // expect(bView.frame).to(equal(CGRect(x: 225.0, y: 190.0, width: 40.0, height: 40.0))) - // bView.layout.below(of: aView, aligned: .left) // expect(bView.frame).to(equal(CGRect(x: 100.0, y: 260.0, width: 40.0, height: 40.0))) // bView.layout.below(of: aViewChild, aligned: .left) @@ -161,7 +159,6 @@ class BothEdgesSnappedView: UIView { // bView.layout.below(of: aViewChild, aligned: .right) // expect(bView.frame).to(equal(CGRect(x: 185.0, y: 230.0, width: 40.0, height: 40.0))) - // bView.layout.left(of: aView, aligned: .top) // expect(bView.frame).to(equal(CGRect(x: 60.0, y: 100.0, width: 40.0, height: 40.0))) // bView.layout.left(of: aViewChild, aligned: .top) diff --git a/MCSwiftLayoutSample/MCSwiftLayoutSample/UI/Tests/ChainedLayoutView/ChainedLayoutView.swift b/MCSwiftLayoutSample/MCSwiftLayoutSample/UI/Tests/ChainedLayoutView/ChainedLayoutView.swift index 62cee225..b52747d9 100644 --- a/MCSwiftLayoutSample/MCSwiftLayoutSample/UI/Tests/ChainedLayoutView/ChainedLayoutView.swift +++ b/MCSwiftLayoutSample/MCSwiftLayoutSample/UI/Tests/ChainedLayoutView/ChainedLayoutView.swift @@ -64,8 +64,7 @@ class ChainedLayoutView: UIView { override func layoutSubviews() { super.layoutSubviews() - centerView.width = 200 - centerView.height = 200 + centerView.layout.width(200).height(200) centerView.center = CGPoint(x: 200, y: 300) print("topCenterView: \(topCenterView.frame)") diff --git a/MCSwiftLayoutSample/MCSwiftLayoutSample/UI/Tests/MarginsAndInsets/MarginsAndInsetsView.swift b/MCSwiftLayoutSample/MCSwiftLayoutSample/UI/Tests/MarginsAndInsets/MarginsAndInsetsView.swift index 856502c1..0551f207 100644 --- a/MCSwiftLayoutSample/MCSwiftLayoutSample/UI/Tests/MarginsAndInsets/MarginsAndInsetsView.swift +++ b/MCSwiftLayoutSample/MCSwiftLayoutSample/UI/Tests/MarginsAndInsets/MarginsAndInsetsView.swift @@ -98,7 +98,6 @@ class MarginsAndInsetsView: UIView { // TODO: Test using sizeThatFits - // // sizeThatFits // diff --git a/MCSwiftLayoutSample/MCSwiftLayoutSample/UI/Tests/PinScrolling/PinScrollingView.swift b/MCSwiftLayoutSample/MCSwiftLayoutSample/UI/Tests/PinScrolling/PinScrollingView.swift new file mode 100644 index 00000000..dab1a7a3 --- /dev/null +++ b/MCSwiftLayoutSample/MCSwiftLayoutSample/UI/Tests/PinScrolling/PinScrollingView.swift @@ -0,0 +1,67 @@ +// +// PinScrollingView.swift +// MCSwiftLayoutSample +// +// Created by Luc Dion on 2017-03-23. +// Copyright (c) 2017 mcswiftlayyout.mirego.com. All rights reserved. +// +import UIKit + +class PinScrollingView: UIView { + + private let contentScrollView = UIScrollView() + + var aView: BasicView! + var bView: BasicView! + var cView: BasicView! + var dView: BasicView! + + init() { + super.init(frame: .zero) + + backgroundColor = .black + + contentScrollView.backgroundColor = .white + contentScrollView.delegate = self + addSubview(contentScrollView) + + aView = BasicView(text: "View A", color: UIColor.red.withAlphaComponent(0.5)) + contentScrollView.addSubview(aView) + + bView = BasicView(text: "View B", color: UIColor.blue.withAlphaComponent(0.5)) + addSubview(bView) + + cView = BasicView(text: "View C", color: UIColor.red.withAlphaComponent(0.5)) + contentScrollView.addSubview(cView) + + dView = BasicView(text: "View D", color: UIColor.red.withAlphaComponent(0.5)) + contentScrollView.addSubview(dView) + } + + required init?(coder aDecoder: NSCoder) { + super.init(coder: aDecoder) + } + + override func layoutSubviews() { + super.layoutSubviews() + + contentScrollView.layout.pinTopLeft().width(width).height(height).insetTop(64) + contentScrollView.contentSize = CGSize(width: width, height: height * 4) + + aView.layout.top(20).left(0).right(width).height(40).margin(10) + layoutBView() + + cView.layout.below(of: aView, aligned: .right).width(100).height(50).marginTop(10) + dView.layout.below(of: aView, aligned: .left).left(of: cView).height(of: cView).marginTop(10).marginRight(10) + } + + fileprivate func layoutBView() { + bView.layout.pinTopLeft(to: aView.pin.topLeft).pinBottomRight(to: aView.pin.bottomCenter) + } +} + +extension PinScrollingView: UIScrollViewDelegate { + func scrollViewDidScroll(_ scrollView: UIScrollView) { + layoutBView() + } +} diff --git a/MCSwiftLayoutSample/MCSwiftLayoutSample/UI/Tests/PinScrolling/PinScrollingViewController.swift b/MCSwiftLayoutSample/MCSwiftLayoutSample/UI/Tests/PinScrolling/PinScrollingViewController.swift new file mode 100644 index 00000000..057817d6 --- /dev/null +++ b/MCSwiftLayoutSample/MCSwiftLayoutSample/UI/Tests/PinScrolling/PinScrollingViewController.swift @@ -0,0 +1,26 @@ +// +// PinScrollingViewController.swift +// MCSwiftLayoutSample +// +// Created by Luc Dion on 2017-03-23. +// Copyright (c) 2017 mcswiftlayyout.mirego.com. All rights reserved. +// +import UIKit + +class PinScrollingViewController: UIViewController { + fileprivate var mainView: PinScrollingView { + return self.view as! PinScrollingView + } + + init() { + super.init(nibName: nil, bundle: nil) + } + + required init?(coder aDecoder: NSCoder) { + super.init(coder: aDecoder) + } + + override func loadView() { + view = PinScrollingView() + } +} diff --git a/MCSwiftLayoutSample/MCSwiftLayoutSample/UI/Tests/RelativeView/RelativeView.swift b/MCSwiftLayoutSample/MCSwiftLayoutSample/UI/Tests/RelativeView/RelativeView.swift index 2dad13ce..94a27e4b 100644 --- a/MCSwiftLayoutSample/MCSwiftLayoutSample/UI/Tests/RelativeView/RelativeView.swift +++ b/MCSwiftLayoutSample/MCSwiftLayoutSample/UI/Tests/RelativeView/RelativeView.swift @@ -62,8 +62,7 @@ class RelativeView: UIView { fileprivate func addSquare(_ view: UIView, color: UIColor) { view.backgroundColor = color - view.width = 50 - view.height = 50 + view.layout.width(50).height(50) addSubview(view) } diff --git a/MCSwiftLayoutSample/MCSwiftLayoutSample/UI/Tests/ValidateConflictsView/ValidateConflictsView.swift b/MCSwiftLayoutSample/MCSwiftLayoutSample/UI/Tests/ValidateConflictsView/ValidateConflictsView.swift index 3f38be5e..7d7604a2 100644 --- a/MCSwiftLayoutSample/MCSwiftLayoutSample/UI/Tests/ValidateConflictsView/ValidateConflictsView.swift +++ b/MCSwiftLayoutSample/MCSwiftLayoutSample/UI/Tests/ValidateConflictsView/ValidateConflictsView.swift @@ -24,8 +24,7 @@ class ValidateConflictsView: UIView { fileprivate func addSquare(_ view: UIView, color: UIColor) { view.backgroundColor = color - view.width = 50 - view.height = 50 + view.layout.width(50).height(50) addSubview(view) } diff --git a/MCSwiftLayoutSample/MCSwiftLayoutSample/UI/Tests/ViewExtensionsPositionningView/ViewExtensionsPositionningView.swift b/MCSwiftLayoutSample/MCSwiftLayoutSample/UI/Tests/ViewExtensionsPositionningView/ViewExtensionsPositionningView.swift index 99377b5a..796fa6c7 100644 --- a/MCSwiftLayoutSample/MCSwiftLayoutSample/UI/Tests/ViewExtensionsPositionningView/ViewExtensionsPositionningView.swift +++ b/MCSwiftLayoutSample/MCSwiftLayoutSample/UI/Tests/ViewExtensionsPositionningView/ViewExtensionsPositionningView.swift @@ -53,8 +53,7 @@ class ViewExtensionsPositionningView: UIView { fileprivate func addSquare(_ view: UIView, color: UIColor) { view.backgroundColor = color - view.width = 50 - view.height = 50 + view.layout.width(50).height(50) addSubview(view) } @@ -65,8 +64,7 @@ class ViewExtensionsPositionningView: UIView { override func layoutSubviews() { super.layoutSubviews() - centerView.width = 200 - centerView.height = 200 + centerView.layout.width(200).height(200) centerView.center = CGPoint(x: 200, y: 300) print("topCenterView: \(topCenterView.frame)") diff --git a/MCSwiftLayoutTests/AdjustSizeSpec.swift b/MCSwiftLayoutTests/AdjustSizeSpec.swift index 7ee03ee8..25ae6db4 100644 --- a/MCSwiftLayoutTests/AdjustSizeSpec.swift +++ b/MCSwiftLayoutTests/AdjustSizeSpec.swift @@ -62,7 +62,33 @@ class AdjustSizeSpec: QuickSpec { aView.layout.width(35) expect(aView.frame).to(equal(CGRect(x: 140.0, y: 100.0, width: 35, height: 60.0))) } - + + it("should not ajust the width of aView") { + aView.layout.width(-20) + expect(aView.frame).to(equal(CGRect(x: 140.0, y: 100.0, width: 100, height: 60.0))) + } + + it("should ajust the width(percent: CGFloat) of aView") { + aView.layout.width(percent: 50) + expect(aView.frame).to(equal(CGRect(x: 140, y: 100, width: 200, height: 60))) + } + + it("should ajust the width(percent: CGFloat) of aView") { + aView.layout.width(percent: 200) + expect(aView.frame).to(equal(CGRect(x: 140, y: 100, width: 800, height: 60))) + } + + it("should not adjust the width(percent: CGFloat) of aView") { + aView.layout.width(percent: -20) + expect(aView.frame).to(equal(CGRect(x: 140, y: 100, width: 100, height: 60))) + } + + it("should ajust the width(percent: CGFloat) of aView") { + let unAttachedView = UIView(frame: CGRect(x: 10, y: 10, width: 20, height: 30)) + unAttachedView.layout.width(percent: 50) + expect(unAttachedView.frame).to(equal(CGRect(x: 10, y: 10, width: 20, height: 30))) + } + it("should ajust the width of aView") { aView.layout.width(of: aViewChild) expect(aView.frame).to(equal(CGRect(x: 140.0, y: 100.0, width: 50.0, height: 60.0))) @@ -74,7 +100,28 @@ class AdjustSizeSpec: QuickSpec { aView.layout.height(35) expect(aView.frame).to(equal(CGRect(x: 140.0, y: 100.0, width: 100.0, height: 35.0))) } - + + it("should not ajust the height of aView") { + aView.layout.height(-20) + expect(aView.frame).to(equal(CGRect(x: 140.0, y: 100.0, width: 100.0, height: 60.0))) + } + + it("should ajust the width(percent: CGFloat) of aView") { + aView.layout.height(percent: 50) + expect(aView.frame).to(equal(CGRect(x: 140, y: 100, width: 100, height: 200))) + } + + it("should ajust the width(percent: CGFloat) of aView") { + aView.layout.height(percent: 200) + expect(aView.frame).to(equal(CGRect(x: 140, y: 100, width: 100, height: 800))) + } + + it("should ajust the width(percent: CGFloat) of aView") { + let unAttachedView = UIView(frame: CGRect(x: 10, y: 10, width: 20, height: 30)) + unAttachedView.layout.height(percent: 50) + expect(unAttachedView.frame).to(equal(CGRect(x: 10, y: 10, width: 20, height: 30))) + } + it("should ajust the height of aView") { aView.layout.height(of: aViewChild) expect(aView.frame).to(equal(CGRect(x: 140.0, y: 100.0, width: 100.0, height: 30.0))) @@ -103,7 +150,7 @@ class AdjustSizeSpec: QuickSpec { expect(aView.frame).to(equal(CGRect(x: 140.0, y: 100.0, width: 90.0, height: 60.0))) } } - + // // sizeToFit // diff --git a/MCSwiftLayoutTests/MCSwiftLayoutTests.swift b/MCSwiftLayoutTests/MCSwiftLayoutTests.swift index 340761b2..d63472ce 100644 --- a/MCSwiftLayoutTests/MCSwiftLayoutTests.swift +++ b/MCSwiftLayoutTests/MCSwiftLayoutTests.swift @@ -26,6 +26,9 @@ class MCSwiftLayoutTests: XCTestCase { func testExample() { let child1 = UIView() rootView.addSubview(child1) + +// pin(rootView).topLeft(to: child1.pin.center) +// rootView.pin.topLeft(to: child1.pin.center) // child1.layout.pinCenter(of: rootView) // print("child1.frame: \(child1.frame)")