Skip to content

Commit 676ef4f

Browse files
authored
Merge pull request #251 from OriTheElf/master
Fix issue #234
2 parents f054f61 + abe393b commit 676ef4f

14 files changed

+91
-91
lines changed

Sources/Extensions/CALayer+PinLayout.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import QuartzCore
2121

2222
extension CALayer: Layoutable {
23-
public typealias View = CALayer
23+
public typealias PinView = CALayer
2424

2525
public var superview: CALayer? {
2626
return superlayer
@@ -58,7 +58,7 @@ extension CALayer: Layoutable {
5858
}
5959

6060
public func setRect(_ rect: CGRect, keepTransform: Bool) {
61-
let adjustedRect = Coordinates<View>.adjustRectToDisplayScale(rect)
61+
let adjustedRect = Coordinates<PinView>.adjustRectToDisplayScale(rect)
6262

6363
if keepTransform {
6464
/*

Sources/Extensions/NSView+PinLayout.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import Foundation
2323
import AppKit
2424

2525
extension NSView: Layoutable {
26-
public typealias View = NSView
26+
public typealias PinView = NSView
2727

2828
public var pin: PinLayout<NSView> {
2929
return PinLayout(view: self, keepTransform: true)
@@ -48,7 +48,7 @@ extension NSView: Layoutable {
4848
}
4949

5050
public func setRect(_ rect: CGRect, keepTransform: Bool) {
51-
let adjustedRect = Coordinates<View>.adjustRectToDisplayScale(rect)
51+
let adjustedRect = Coordinates<PinView>.adjustRectToDisplayScale(rect)
5252

5353
if let superview = superview, !superview.isFlipped {
5454
var flippedRect = adjustedRect

Sources/Extensions/UIView+PinLayout.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import Foundation
2323
import UIKit
2424

2525
extension UIView: Layoutable, SizeCalculable {
26-
public typealias View = UIView
26+
public typealias PinView = UIView
2727

2828
public var pin: PinLayout<UIView> {
2929
return PinLayout(view: self, keepTransform: true)
@@ -59,7 +59,7 @@ extension UIView: Layoutable, SizeCalculable {
5959
}
6060

6161
public func setRect(_ rect: CGRect, keepTransform: Bool) {
62-
let adjustedRect = Coordinates<View>.adjustRectToDisplayScale(rect)
62+
let adjustedRect = Coordinates<PinView>.adjustRectToDisplayScale(rect)
6363

6464
if keepTransform {
6565
/*
@@ -118,8 +118,8 @@ extension UIView: AutoSizeCalculable {
118118
}
119119

120120
public func setAutoSizingRect(_ rect: CGRect, margins: PEdgeInsets) {
121-
self.autoSizingRect = Coordinates<View>.adjustRectToDisplayScale(rect)
122-
self.autoSizingRectWithMargins = Coordinates<View>.adjustRectToDisplayScale(rect.inset(by: margins))
121+
self.autoSizingRect = Coordinates<PinView>.adjustRectToDisplayScale(rect)
122+
self.autoSizingRectWithMargins = Coordinates<PinView>.adjustRectToDisplayScale(rect.inset(by: margins))
123123
}
124124

125125
public func autoSizeThatFits(_ size: CGSize, layoutClosure: () -> Void) -> CGSize {

Sources/Impl/Coordinates.swift

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -34,58 +34,58 @@ public func _pinlayoutSetUnitTest(scale: CGFloat?) {
3434
}
3535
}
3636

37-
final class Coordinates<View: Layoutable> {
38-
static func hCenter(_ view: View, keepTransform: Bool) -> CGFloat {
37+
final class Coordinates<PinView: Layoutable> {
38+
static func hCenter(_ view: PinView, keepTransform: Bool) -> CGFloat {
3939
let rect = view.getRect(keepTransform: keepTransform)
4040
return rect.minX + (rect.width / 2)
4141
}
4242

43-
static func vCenter(_ view: View, keepTransform: Bool) -> CGFloat {
43+
static func vCenter(_ view: PinView, keepTransform: Bool) -> CGFloat {
4444
let rect = view.getRect(keepTransform: keepTransform)
4545
return rect.minY + (rect.height / 2)
4646
}
4747

48-
static func topLeft(_ view: View, keepTransform: Bool) -> CGPoint {
48+
static func topLeft(_ view: PinView, keepTransform: Bool) -> CGPoint {
4949
let rect = view.getRect(keepTransform: keepTransform)
5050
return CGPoint(x: rect.minX, y: rect.minY)
5151
}
5252

53-
static func topCenter(_ view: View, keepTransform: Bool) -> CGPoint {
53+
static func topCenter(_ view: PinView, keepTransform: Bool) -> CGPoint {
5454
let rect = view.getRect(keepTransform: keepTransform)
5555
return CGPoint(x: rect.minX + (rect.width / 2), y: rect.minY)
5656
}
5757

58-
static func topRight(_ view: View, keepTransform: Bool) -> CGPoint {
58+
static func topRight(_ view: PinView, keepTransform: Bool) -> CGPoint {
5959
let rect = view.getRect(keepTransform: keepTransform)
6060
return CGPoint(x: rect.minX + rect.width, y: rect.minY)
6161
}
6262

63-
static func centerLeft(_ view: View, keepTransform: Bool) -> CGPoint {
63+
static func centerLeft(_ view: PinView, keepTransform: Bool) -> CGPoint {
6464
let rect = view.getRect(keepTransform: keepTransform)
6565
return CGPoint(x: rect.minX, y: rect.minY + (rect.height / 2))
6666
}
6767

68-
static func center(_ view: View, keepTransform: Bool) -> CGPoint {
68+
static func center(_ view: PinView, keepTransform: Bool) -> CGPoint {
6969
let rect = view.getRect(keepTransform: keepTransform)
7070
return CGPoint(x: rect.minX + (rect.width / 2), y: rect.minY + (rect.height / 2))
7171
}
7272

73-
static func centerRight(_ view: View, keepTransform: Bool) -> CGPoint {
73+
static func centerRight(_ view: PinView, keepTransform: Bool) -> CGPoint {
7474
let rect = view.getRect(keepTransform: keepTransform)
7575
return CGPoint(x: rect.minX + rect.width, y: rect.minY + (rect.height / 2))
7676
}
7777

78-
static func bottomLeft(_ view: View, keepTransform: Bool) -> CGPoint {
78+
static func bottomLeft(_ view: PinView, keepTransform: Bool) -> CGPoint {
7979
let rect = view.getRect(keepTransform: keepTransform)
8080
return CGPoint(x: rect.minX, y: rect.minY + rect.height)
8181
}
8282

83-
static func bottomCenter(_ view: View, keepTransform: Bool) -> CGPoint {
83+
static func bottomCenter(_ view: PinView, keepTransform: Bool) -> CGPoint {
8484
let rect = view.getRect(keepTransform: keepTransform)
8585
return CGPoint(x: rect.minX + (rect.width / 2), y: rect.minY + rect.height)
8686
}
8787

88-
static func bottomRight(_ view: View, keepTransform: Bool) -> CGPoint {
88+
static func bottomRight(_ view: PinView, keepTransform: Bool) -> CGPoint {
8989
let rect = view.getRect(keepTransform: keepTransform)
9090
return CGPoint(x: rect.minX + rect.width, y: rect.minY + rect.height)
9191
}

Sources/Impl/PinLayout+Coordinates.swift

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -361,26 +361,26 @@ extension PinLayout {
361361
}
362362
}
363363

364-
private func computeCoordinates(_ point: CGPoint, _ layoutSuperview: View, _ referenceSuperview: View) -> CGPoint {
364+
private func computeCoordinates(_ point: CGPoint, _ layoutSuperview: PinView, _ referenceSuperview: PinView) -> CGPoint {
365365
if layoutSuperview == referenceSuperview {
366366
return point // same superview => no coordinates conversion required.
367-
} else if referenceSuperview == layoutSuperview.superview as? View {
367+
} else if referenceSuperview == layoutSuperview.superview as? PinView {
368368
let layoutSuperviewRect = layoutSuperview.getRect(keepTransform: keepTransform)
369369
return CGPoint(x: point.x - layoutSuperviewRect.origin.x,
370370
y: point.y - layoutSuperviewRect.origin.y)
371371
// TOOD: Handle all cases. computeCoordinates should compute coordinates using only untransformed
372372
// coordinates, but UIView.convert(...) below use transformed coordinates!
373373
// Currently we only support 1 and 2 levels.
374374
} else {
375-
return referenceSuperview.convert(point, to: layoutSuperview as? View.View)
375+
return referenceSuperview.convert(point, to: layoutSuperview as? PinView.PinView)
376376
}
377377
}
378378

379379
internal func computeCoordinates(forAnchors anchors: [Anchor], _ context: Context) -> [CGPoint]? {
380380
guard let layoutSuperview = layoutSuperview(context) else { return nil }
381381
var results: [CGPoint] = []
382382
anchors.forEach({ (anchor) in
383-
let anchor = anchor as! AnchorImpl<View>
383+
let anchor = anchor as! AnchorImpl<PinView>
384384
if let referenceSuperview = referenceSuperview(anchor.view, context) {
385385
results.append(computeCoordinates(anchor.point(keepTransform: keepTransform),
386386
layoutSuperview, referenceSuperview))
@@ -392,7 +392,7 @@ extension PinLayout {
392392
}
393393

394394
internal func computeCoordinate(forEdge edge: HorizontalEdge, _ context: Context) -> CGFloat? {
395-
let edge = edge as! HorizontalEdgeImpl<View>
395+
let edge = edge as! HorizontalEdgeImpl<PinView>
396396
guard let layoutSuperview = layoutSuperview(context) else { return nil }
397397
guard let referenceSuperview = referenceSuperview(edge.view, context) else { return nil }
398398

@@ -401,7 +401,7 @@ extension PinLayout {
401401
}
402402

403403
internal func computeCoordinate(forEdge edge: VerticalEdge, _ context: Context) -> CGFloat? {
404-
let edge = edge as! VerticalEdgeImpl<View>
404+
let edge = edge as! VerticalEdgeImpl<PinView>
405405
guard let layoutSuperview = layoutSuperview(context) else { return nil }
406406
guard let referenceSuperview = referenceSuperview(edge.view, context) else { return nil }
407407

Sources/Impl/PinLayout+Layouting.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ extension PinLayout {
4545
isLayouted = true
4646
}
4747

48-
private func apply(onView view: View) {
48+
private func apply(onView view: PinView) {
4949
displayLayoutWarnings()
5050

5151
var newRect = view.getRect(keepTransform: keepTransform)

Sources/Impl/PinLayout+Warning.swift

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,17 +36,17 @@ extension PinLayout {
3636
}
3737

3838
internal func relativeEdgeContext(method: String, edge: VerticalEdge) -> String {
39-
let edge = edge as! VerticalEdgeImpl<View>
39+
let edge = edge as! VerticalEdgeImpl<PinView>
4040
return "\(method)(to: .\(edge.type.rawValue), of: \(viewDescription(edge.view)))"
4141
}
4242

4343
internal func relativeEdgeContext(method: String, edge: HorizontalEdge) -> String {
44-
let edge = edge as! HorizontalEdgeImpl<View>
44+
let edge = edge as! HorizontalEdgeImpl<PinView>
4545
return "\(method)(to: .\(edge.type.rawValue), of: \(viewDescription(edge.view))"
4646
}
4747

4848
internal func relativeAnchorContext(method: String, anchor: Anchor) -> String {
49-
let anchor = anchor as! AnchorImpl<View>
49+
let anchor = anchor as! AnchorImpl<PinView>
5050
return "\(method)(to: .\(anchor.type.rawValue), of: \(viewDescription(anchor.view)))"
5151
}
5252

@@ -114,20 +114,20 @@ extension PinLayout {
114114
}
115115
}
116116

117-
internal func viewDescription(_ view: View) -> String {
117+
internal func viewDescription(_ view: PinView) -> String {
118118
let rect = view.getRect(keepTransform: keepTransform)
119119
return "(\(viewName(view)), Frame: \(rect))"
120120
}
121121

122-
internal func viewName(_ view: View) -> String {
122+
internal func viewName(_ view: PinView) -> String {
123123
return "\(type(of: view))"
124124
}
125125

126126
internal func insetsDescription(_ insets: PEdgeInsets) -> String {
127127
return "UIEdgeInsets(top: \(insets.top), left: \(insets.left), bottom: \(insets.bottom), right: \(insets.right))"
128128
}
129129

130-
internal func pinLayoutDisplayConsoleWarning(_ text: String, _ view: View) {
130+
internal func pinLayoutDisplayConsoleWarning(_ text: String, _ view: PinView) {
131131
var displayText = "\n👉 \(text)"
132132

133133
let rect = view.getRect(keepTransform: keepTransform)
@@ -142,7 +142,7 @@ extension PinLayout {
142142
var hierarchy: [String] = []
143143
while let parent = currentView.superview {
144144
hierarchy.insert("\(type(of: parent))", at: 0)
145-
currentView = parent as! View
145+
currentView = parent as! PinView
146146
}
147147
if hierarchy.count > 0 {
148148
#if swift(>=4.1)

Sources/Impl/TypesImpl.swift

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,10 @@ struct Size {
3232
var height: CGFloat?
3333
}
3434

35-
class EdgeListImpl<View: Layoutable>: EdgeList {
36-
internal let view: View
35+
class EdgeListImpl<PinView: Layoutable>: EdgeList {
36+
internal let view: PinView
3737

38-
init(view: View) {
38+
init(view: PinView) {
3939
self.view = view
4040
}
4141

@@ -52,14 +52,14 @@ class EdgeListImpl<View: Layoutable>: EdgeList {
5252
var end: HorizontalEdge { return view.isLTR() ? right : left }
5353
}
5454

55-
class HorizontalEdgeImpl<View: Layoutable>: HorizontalEdge {
55+
class HorizontalEdgeImpl<PinView: Layoutable>: HorizontalEdge {
5656
enum EdgeType: String {
5757
case left
5858
case hCenter
5959
case right
6060
}
6161

62-
let view: View
62+
let view: PinView
6363
let type: EdgeType
6464

6565
func x(keepTransform: Bool) -> CGFloat {
@@ -72,20 +72,20 @@ class HorizontalEdgeImpl<View: Layoutable>: HorizontalEdge {
7272
}
7373
}
7474

75-
internal init(view: View, type: EdgeType) {
75+
internal init(view: PinView, type: EdgeType) {
7676
self.view = view
7777
self.type = type
7878
}
7979
}
8080

81-
class VerticalEdgeImpl<View: Layoutable>: VerticalEdge {
81+
class VerticalEdgeImpl<PinView: Layoutable>: VerticalEdge {
8282
enum EdgeType: String {
8383
case top
8484
case vCenter
8585
case bottom
8686
}
8787

88-
internal let view: View
88+
internal let view: PinView
8989
internal let type: EdgeType
9090

9191
func y(keepTransform: Bool) -> CGFloat {
@@ -99,16 +99,16 @@ class VerticalEdgeImpl<View: Layoutable>: VerticalEdge {
9999
}
100100
}
101101

102-
internal init(view: View, type: EdgeType) {
102+
internal init(view: PinView, type: EdgeType) {
103103
self.view = view
104104
self.type = type
105105
}
106106
}
107107

108-
class AnchorListImpl<View: Layoutable>: AnchorList {
109-
internal let view: View
108+
class AnchorListImpl<PinView: Layoutable>: AnchorList {
109+
internal let view: PinView
110110

111-
internal init(view: View) {
111+
internal init(view: PinView) {
112112
self.view = view
113113
}
114114

@@ -143,8 +143,8 @@ enum AnchorType: String {
143143
case bottomRight
144144
}
145145

146-
class AnchorImpl<View: Layoutable>: Anchor {
147-
let view: View
146+
class AnchorImpl<PinView: Layoutable>: Anchor {
147+
let view: PinView
148148
let type: AnchorType
149149

150150
func point(keepTransform: Bool) -> CGPoint {
@@ -161,7 +161,7 @@ class AnchorImpl<View: Layoutable>: Anchor {
161161
}
162162
}
163163

164-
fileprivate init(view: View, type: AnchorType) {
164+
fileprivate init(view: PinView, type: AnchorType) {
165165
self.view = view
166166
self.type = type
167167
}

Sources/Layoutable+PinLayout.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,10 @@ import Foundation
2121

2222
extension Layoutable {
2323
public var anchor: AnchorList {
24-
return AnchorListImpl(view: self as! View)
24+
return AnchorListImpl(view: self as! PinView)
2525
}
2626

2727
public var edge: EdgeList {
28-
return EdgeListImpl(view: self as! View)
28+
return EdgeListImpl(view: self as! PinView)
2929
}
3030
}

Sources/Layoutable.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,15 @@ import AppKit
2424
#endif
2525

2626
public protocol Layoutable: AnyObject, Equatable, CustomDebugStringConvertible {
27-
associatedtype View: Layoutable
27+
associatedtype PinView: Layoutable
2828

29-
var superview: View? { get }
30-
var subviews: [View] { get }
29+
var superview: PinView? { get }
30+
var subviews: [PinView] { get }
3131

3232
func getRect(keepTransform: Bool) -> CGRect
3333
func setRect(_ rect: CGRect, keepTransform: Bool)
3434

35-
func convert(_ point: CGPoint, to view: View?) -> CGPoint
35+
func convert(_ point: CGPoint, to view: PinView?) -> CGPoint
3636

3737
func isLTR() -> Bool
3838
}

0 commit comments

Comments
 (0)