@@ -124,7 +124,6 @@ public final class OrnamentsManager {
124124 private let _indoorSelectorView : IndoorSelectorView
125125
126126 private var constraints = [ NSLayoutConstraint] ( )
127- private var viewsByPosition : [ OrnamentPosition : [ UIView ] ] = [ : ] // Allow to stack views at the same position
128127 private var cancellables = Set < AnyCancelable > ( )
129128
130129 init ( options: OrnamentOptions ,
@@ -207,7 +206,6 @@ public final class OrnamentsManager {
207206 // Remove previously-added constraints
208207 NSLayoutConstraint . deactivate ( constraints)
209208 constraints. removeAll ( )
210- viewsByPosition. removeAll ( )
211209
212210 // Update the position for the ornaments
213211 let logoViewConstraints = constraints ( with: _logoView,
@@ -274,44 +272,39 @@ public final class OrnamentsManager {
274272 guard let layoutGuide = view. superview? . safeAreaLayoutGuide else {
275273 return [ ]
276274 }
277-
278- let stackSpacing : CGFloat = 8.0
279- var viewsAtPosition = viewsByPosition [ position] ?? [ ]
280- let previousView = viewsAtPosition. last
281- viewsAtPosition. append ( view)
282- viewsByPosition [ position] = viewsAtPosition
283-
284- var result : [ NSLayoutConstraint ] = [ ]
285-
286275 switch position {
287- case . topLeft, . bottomLeft:
288- result. append ( view. leftAnchor. constraint ( equalTo: layoutGuide. leftAnchor, constant: margins. x) )
289- case . topRight, . bottomRight:
290- result. append ( view. rightAnchor. constraint ( equalTo: layoutGuide. rightAnchor, constant: - margins. x) )
291- case . topLeading, . bottomLeading:
292- result. append ( view. leadingAnchor. constraint ( equalTo: layoutGuide. leadingAnchor, constant: margins. x) )
293- case . topTrailing, . bottomTrailing:
294- result. append ( view. trailingAnchor. constraint ( equalTo: layoutGuide. trailingAnchor, constant: - margins. x) )
276+ case . topLeft:
277+ return [
278+ view. leftAnchor. constraint ( equalTo: layoutGuide. leftAnchor, constant: margins. x) ,
279+ view. topAnchor. constraint ( equalTo: layoutGuide. topAnchor, constant: margins. y) ]
280+ case . topRight:
281+ return [
282+ view. rightAnchor. constraint ( equalTo: layoutGuide. rightAnchor, constant: - margins. x) ,
283+ view. topAnchor. constraint ( equalTo: layoutGuide. topAnchor, constant: margins. y) ]
284+ case . bottomLeft:
285+ return [
286+ view. leftAnchor. constraint ( equalTo: layoutGuide. leftAnchor, constant: margins. x) ,
287+ view. bottomAnchor. constraint ( equalTo: layoutGuide. bottomAnchor, constant: - margins. y) ]
288+ case . bottomRight:
289+ return [
290+ view. rightAnchor. constraint ( equalTo: layoutGuide. rightAnchor, constant: - margins. x) ,
291+ view. bottomAnchor. constraint ( equalTo: layoutGuide. bottomAnchor, constant: - margins. y) ]
292+ case . topLeading:
293+ return [
294+ view. leadingAnchor. constraint ( equalTo: layoutGuide. leadingAnchor, constant: margins. x) ,
295+ view. topAnchor. constraint ( equalTo: layoutGuide. topAnchor, constant: margins. y) ]
296+ case . topTrailing:
297+ return [
298+ view. trailingAnchor. constraint ( equalTo: layoutGuide. trailingAnchor, constant: - margins. x) ,
299+ view. topAnchor. constraint ( equalTo: layoutGuide. topAnchor, constant: margins. y) ]
300+ case . bottomLeading:
301+ return [
302+ view. leadingAnchor. constraint ( equalTo: layoutGuide. leadingAnchor, constant: margins. x) ,
303+ view. bottomAnchor. constraint ( equalTo: layoutGuide. bottomAnchor, constant: - margins. y) ]
304+ case . bottomTrailing:
305+ return [
306+ view. trailingAnchor. constraint ( equalTo: layoutGuide. trailingAnchor, constant: - margins. x) ,
307+ view. bottomAnchor. constraint ( equalTo: layoutGuide. bottomAnchor, constant: - margins. y) ]
295308 }
296-
297- let isTopPosition = [ . topLeft, . topRight, . topLeading, . topTrailing] . contains ( position)
298- let isBottomPosition = [ . bottomLeft, . bottomRight, . bottomLeading, . bottomTrailing] . contains ( position)
299-
300- if let previousView = previousView {
301- if isTopPosition {
302- result. append ( view. topAnchor. constraint ( equalTo: previousView. bottomAnchor, constant: stackSpacing) )
303- } else if isBottomPosition {
304- result. append ( view. bottomAnchor. constraint ( equalTo: previousView. topAnchor, constant: - stackSpacing) )
305- }
306- } else {
307- // First view at this position - anchor to safe area
308- if isTopPosition {
309- result. append ( view. topAnchor. constraint ( equalTo: layoutGuide. topAnchor, constant: margins. y) )
310- } else if isBottomPosition {
311- result. append ( view. bottomAnchor. constraint ( equalTo: layoutGuide. bottomAnchor, constant: - margins. y) )
312- }
313- }
314-
315- return result
316309 }
317310}
0 commit comments