Releases: layoutBox/PinLayout
Add `pin.readableMargins` and `pin.layoutmargins` properties
Add properties:
-
pin.readableMargins: UIEdgeInset
:
PinLayout'sUIView.pin.readableMargins
property expose UIKitUIView.readableContentGuide
as an UIEdgeInsets. This is really useful since UIKit only expose the readableContent area to Auto Layout using UILayoutGuide. -
pin.layoutmargins: UIEdgeInset
PinLayout'sUIView.pin.layoutMargins
property expose directly the value of UIKitUIView.layoutMargins
. The property exists only to be consistent with the other areas:pin.safeArea
,pin.readableMargins
andpin.layoutmargins
. So its usage is not necessary.
PinLayout Swift 3 support
Deprecated method `fitSize()` has been removed
BREAKING CHANGE: fitSize()
has been removed after being deprecated for 10 months. sizeToFit(:FitType)
should now be used instead. See Adjusting size.
Plus:
Add Animations documentation and examples + 'private' declarations
-
Add documentation that explains how PinLayout can handle view's animations.
- Show few strategies that can be used to animate views.
-
Add animation examples using PinLayout
-
Convert
fileprivate
toprivate
declarations -
Add an new "Examples" markdown page showing all PinLayout's examples.
Method that position multiple edges now accept an `offset` parameter
Method that position multiple edges now accept an offset
parameter that specifies the distance from their superview's corresponding edges in pixels.
New methods:
-
topLeft(_ offset: CGFloat)
-
topCenter(_ topOffset: CGFloat)
-
topRight(_ offset: CGFloat)
-
centerLeft(_ leftOffset: CGFloat)
-
center(_ offset: CGFloat)
-
centerRight(_ rightOffset offset: CGFloat)
-
bottomLeft(_ offset: CGFloat)
-
bottomCenter(_ bottomOffset: CGFloat)
-
bottomRight(_ offset: CGFloat)
For example, to position a view at the top left corner with a top and left margin of 10 pixels:
view.pin.topLeft(10)
Other change
Cleanup the interface by using default value parameters.
Add `sizeToFit()` method
Add sizeToFit()
method
The method adjust the view's size based on the result of the method UIView.sizeToFit()
. Particularly useful for controls/views that have an intrinsic size (label, button, ...).
Fix a regression
Add support for CALayer layout
PinLayout can now layouts CALayer's. All PinLayout's properties and methods are available, with the following exceptions:
sizeToFit(:FitType)
is not supported. Support forsizeToFit(:FitType)
can be added to your custom CALayer subclasses, just make those layers conform to theSizeCalculable
protocol and implement the two required functions.CALayer.pin.safeArea
property is not available.aspectRatio()
with no parameters
See CALayer Support documentation for more information
- Added by Antoine Lamy in Pull Request #151
Refactoring using generics
Refactoring to avoid having to deal directly with view types, making it easier to extend layouting to other APIs (e.g: CALayer)
- Added by Antoine Lamy in Pull Request #148
PinLayout has moved to the "layoutBox" organization and ...
PinLayout has moved to the layoutBox organization
PinLayout is now part of the same organization as other open source projects related to layout using Swift.