@@ -261,113 +261,163 @@ class PinSafeAreaMoreTestsSpec: QuickSpec {
261261 describe ( " navigationbar + subview " ) {
262262 it ( " transluscent navigationbar 1 " ) {
263263 let mainView = viewController. mainView
264-
264+ let subViewTop = CGFloat ( 10 )
265+
265266 mainView. layoutOffsetViewClosure = { ( _ subView: UIView , _ parent: UIView ) in
266- subView. pin. top ( 10 ) . left ( 10 ) . size ( 100 )
267+ subView. pin. top ( subViewTop ) . left ( 10 ) . size ( 100 )
267268 }
268269
269270 navigationController. navigationBar. isTranslucent = true
270271 setupWindow ( with: navigationController)
272+
273+ let expectedSafeAreaInsets = mainView. safeAreaInsets
274+ let expectedSubViewSafeAreaInsets = UIEdgeInsets (
275+ top: expectedSafeAreaInsets. top - subViewTop,
276+ left: . zero,
277+ bottom: . zero,
278+ right: . zero
279+ )
271280
272281 // MATCH safeAreaInsets!
273282 expect ( mainView. safeAreaInsetsDidChangeCalledCount) > 0
274283 expect ( mainView. subView. safeAreaInsetsDidChangeCalledCount) > 0
275284
276- expect ( mainView. pin. safeArea) . to ( equal ( UIEdgeInsets ( top : 44.0 , left : 0.0 , bottom : 0.0 , right : 0.0 ) ) )
277- expect ( mainView. subView. pin. safeArea) . to ( equal ( UIEdgeInsets ( top : 34.0 , left : 0.0 , bottom : 0.0 , right : 0.0 ) ) )
285+ expect ( mainView. pin. safeArea) . to ( equal ( expectedSafeAreaInsets ) )
286+ expect ( mainView. subView. pin. safeArea) . to ( equal ( expectedSubViewSafeAreaInsets ) )
278287 expect ( mainView. subView. subViewB!. pin. safeArea) . to ( equal ( UIEdgeInsets ( top: 0.0 , left: 0.0 , bottom: 0.0 , right: 0.0 ) ) )
279288
280289 expect ( mainView. subView. frame) . to ( equal ( CGRect ( x: 10 , y: 10 , width: 100 , height: 100 ) ) )
281- expect ( mainView. subView. subViewB!. frame) . to ( equal ( CGRect ( x: 0 , y: 34 , width: 40 , height: 40 ) ) )
290+ expect ( mainView. subView. subViewB!. frame) . to ( equal ( CGRect ( x: 0 , y: expectedSubViewSafeAreaInsets . top , width: 40 , height: 40 ) ) )
282291 }
283292
284293 it ( " transluscent navigationbar 2 " ) {
285294 let mainView = viewController. mainView
295+ let subViewTop = CGFloat ( 10 )
296+ let subViewLeft = CGFloat ( - 10 )
286297
287298 mainView. layoutOffsetViewClosure = { ( _ subView: UIView , _ parent: UIView ) in
288- subView. pin. top ( 10 ) . left ( - 10 ) . size ( 100 )
299+ subView. pin. top ( subViewTop ) . left ( subViewLeft ) . size ( 100 )
289300 }
290301
291302 navigationController. navigationBar. isTranslucent = true
292303 setupWindow ( with: navigationController)
304+
305+ let expectedSafeAreaInsets = mainView. safeAreaInsets
306+ let expectedSubViewSafeAreaInsets = UIEdgeInsets (
307+ top: expectedSafeAreaInsets. top - subViewTop,
308+ left: . zero,
309+ bottom: . zero,
310+ right: . zero
311+ )
293312
294313 // MATCH safeAreaInsets!
295314 expect ( mainView. safeAreaInsetsDidChangeCalledCount) > 0
296315 expect ( mainView. subView. safeAreaInsetsDidChangeCalledCount) > 0
297316
298- expect ( mainView. pin. safeArea) . to ( equal ( UIEdgeInsets ( top : 44.0 , left : 0.0 , bottom : 0.0 , right : 0.0 ) ) )
299- expect ( mainView. subView. pin. safeArea) . to ( equal ( UIEdgeInsets ( top : 34.0 , left : 0.0 , bottom : 0.0 , right : 0.0 ) ) )
317+ expect ( mainView. pin. safeArea) . to ( equal ( expectedSafeAreaInsets ) )
318+ expect ( mainView. subView. pin. safeArea) . to ( equal ( expectedSubViewSafeAreaInsets ) )
300319 expect ( mainView. subView. subViewB!. pin. safeArea) . to ( equal ( UIEdgeInsets ( top: 0.0 , left: 0.0 , bottom: 0.0 , right: 0.0 ) ) )
301320
302- expect ( mainView. subView. frame) . to ( equal ( CGRect ( x: - 10 , y: 10 , width: 100 , height: 100 ) ) )
303- expect ( mainView. subView. subViewB!. frame) . to ( equal ( CGRect ( x: 0 , y: 34 , width: 40 , height: 40 ) ) )
321+ expect ( mainView. subView. frame) . to ( equal ( CGRect ( x: subViewLeft , y: subViewTop , width: 100 , height: 100 ) ) )
322+ expect ( mainView. subView. subViewB!. frame) . to ( equal ( CGRect ( x: 0 , y: expectedSubViewSafeAreaInsets . top , width: 40 , height: 40 ) ) )
304323 }
305324
306325 it ( " transluscent navigationbar 3 " ) {
307326 let mainView = viewController. mainView
327+ let subViewTop = CGFloat ( 10 )
328+ let subViewRight = CGFloat ( 10 )
308329
309330 mainView. layoutOffsetViewClosure = { ( _ subView: UIView , _ parent: UIView ) in
310- subView. pin. top ( 10 ) . right ( 10 ) . size ( 100 )
331+ subView. pin. top ( subViewTop ) . right ( subViewRight ) . size ( 100 )
311332 }
312333
313334 navigationController. navigationBar. isTranslucent = true
314335 setupWindow ( with: navigationController)
336+
337+ let expectedSafeAreaInsets = mainView. safeAreaInsets
338+ let expectedSubViewSafeAreaInsets = UIEdgeInsets (
339+ top: expectedSafeAreaInsets. top - subViewTop,
340+ left: . zero,
341+ bottom: . zero,
342+ right: . zero
343+ )
315344
316345 // MATCH safeAreaInsets!
317346 expect ( mainView. safeAreaInsetsDidChangeCalledCount) > 0
318347 expect ( mainView. subView. safeAreaInsetsDidChangeCalledCount) > 0
319348
320- expect ( mainView. pin. safeArea) . to ( equal ( UIEdgeInsets ( top : 44.0 , left : 0.0 , bottom : 0.0 , right : 0.0 ) ) )
321- expect ( mainView. subView. pin. safeArea) . to ( equal ( UIEdgeInsets ( top : 34.0 , left : 0.0 , bottom : 0.0 , right : 0.0 ) ) )
349+ expect ( mainView. pin. safeArea) . to ( equal ( expectedSafeAreaInsets ) )
350+ expect ( mainView. subView. pin. safeArea) . to ( equal ( expectedSubViewSafeAreaInsets ) )
322351 expect ( mainView. subView. subViewB!. pin. safeArea) . to ( equal ( UIEdgeInsets ( top: 0.0 , left: 0.0 , bottom: 0.0 , right: 0.0 ) ) )
323352
324353 let screenSize = mainView. frame. size
325- expect ( mainView. subView. frame) . to ( equal ( CGRect ( x: screenSize. width - 100 - 10 , y: 10 , width: 100 , height: 100 ) ) )
326- expect ( mainView. subView. subViewB!. frame) . to ( equal ( CGRect ( x: 0 , y: 34 , width: 40 , height: 40 ) ) )
354+ expect ( mainView. subView. frame) . to ( equal ( CGRect ( x: screenSize. width - 100 - subViewRight , y: subViewTop , width: 100 , height: 100 ) ) )
355+ expect ( mainView. subView. subViewB!. frame) . to ( equal ( CGRect ( x: 0 , y: expectedSubViewSafeAreaInsets . top , width: 40 , height: 40 ) ) )
327356 }
328357
329358 it ( " transluscent navigationbar 4 " ) {
330359 let mainView = viewController. mainView
331-
360+ let subViewTop = CGFloat ( 10 )
361+ let subViewRight = CGFloat ( - 10 )
362+
332363 mainView. layoutOffsetViewClosure = { ( _ subView: UIView , _ parent: UIView ) in
333- subView. pin. top ( 10 ) . right ( - 10 ) . size ( 100 )
364+ subView. pin. top ( subViewTop ) . right ( subViewRight ) . size ( 100 )
334365 }
335366
336367 navigationController. navigationBar. isTranslucent = true
337368 setupWindow ( with: navigationController)
369+
370+ let expectedSafeAreaInsets = mainView. safeAreaInsets
371+ let expectedSubViewSafeAreaInsets = UIEdgeInsets (
372+ top: expectedSafeAreaInsets. top - subViewTop,
373+ left: . zero,
374+ bottom: . zero,
375+ right: . zero
376+ )
338377
339378 // MATCH safeAreaInsets!
340379 expect ( mainView. safeAreaInsetsDidChangeCalledCount) > 0
341380 expect ( mainView. subView. safeAreaInsetsDidChangeCalledCount) > 0
342381
343- expect ( mainView. pin. safeArea) . to ( equal ( UIEdgeInsets ( top : 44.0 , left : 0.0 , bottom : 0.0 , right : 0.0 ) ) )
344- expect ( mainView. subView. pin. safeArea) . to ( equal ( UIEdgeInsets ( top : 34.0 , left : 0.0 , bottom : 0.0 , right : 0.0 ) ) )
382+ expect ( mainView. pin. safeArea) . to ( equal ( expectedSafeAreaInsets ) )
383+ expect ( mainView. subView. pin. safeArea) . to ( equal ( expectedSubViewSafeAreaInsets ) )
345384 expect ( mainView. subView. subViewB!. pin. safeArea) . to ( equal ( UIEdgeInsets ( top: 0.0 , left: 0.0 , bottom: 0.0 , right: 0.0 ) ) )
346385
347386 let screenSize = mainView. frame. size
348- expect ( mainView. subView. frame) . to ( equal ( CGRect ( x: screenSize. width - 100 + 10 , y: 10 , width: 100 , height: 100 ) ) )
349- expect ( mainView. subView. subViewB!. frame) . to ( equal ( CGRect ( x: 0 , y: 34 , width: 40 , height: 40 ) ) )
387+ expect ( mainView. subView. frame) . to ( equal ( CGRect ( x: screenSize. width - 100 - subViewRight , y: subViewTop , width: 100 , height: 100 ) ) )
388+ expect ( mainView. subView. subViewB!. frame) . to ( equal ( CGRect ( x: 0 , y: expectedSubViewSafeAreaInsets . top , width: 40 , height: 40 ) ) )
350389 }
351390
352391 it ( " transluscent navigationbar 5 " ) {
353392 let mainView = viewController. mainView
393+ let subViewTop = CGFloat ( - 20 )
394+ let subViewLeft = CGFloat ( - 10 )
395+
354396 mainView. layoutOffsetViewClosure = { ( _ subView: UIView , _ parent: UIView ) in
355- subView. pin. top ( - 20 ) . left ( - 10 ) . size ( 100 )
397+ subView. pin. top ( subViewTop ) . left ( subViewLeft ) . size ( 100 )
356398 }
357399
358400 navigationController. navigationBar. isTranslucent = true
359401 setupWindow ( with: navigationController)
402+
403+ let expectedSafeAreaInsets = mainView. safeAreaInsets
404+ let expectedSubViewSafeAreaInsets = UIEdgeInsets (
405+ top: expectedSafeAreaInsets. top,
406+ left: . zero,
407+ bottom: . zero,
408+ right: . zero
409+ )
360410
361411 // MATCH safeAreaInsets!
362412 expect ( mainView. safeAreaInsetsDidChangeCalledCount) > 0
363413 expect ( mainView. subView. safeAreaInsetsDidChangeCalledCount) > 0
364414
365- expect ( mainView. pin. safeArea) . to ( equal ( UIEdgeInsets ( top : 44.0 , left : 0.0 , bottom : 0.0 , right : 0.0 ) ) )
366- expect ( mainView. subView. pin. safeArea) . to ( equal ( UIEdgeInsets ( top : 44.0 , left : 0.0 , bottom : 0.0 , right : 0.0 ) ) )
415+ expect ( mainView. pin. safeArea) . to ( equal ( expectedSafeAreaInsets ) )
416+ expect ( mainView. subView. pin. safeArea) . to ( equal ( expectedSubViewSafeAreaInsets ) )
367417 expect ( mainView. subView. subViewB!. pin. safeArea) . to ( equal ( UIEdgeInsets ( top: 0.0 , left: 0.0 , bottom: 0.0 , right: 0.0 ) ) )
368418
369- expect ( mainView. subView. frame) . to ( equal ( CGRect ( x: - 10 , y: - 20 , width: 100 , height: 100 ) ) )
370- expect ( mainView. subView. subViewB!. frame) . to ( equal ( CGRect ( x: 0 , y: 44 , width: 40 , height: 40 ) ) )
419+ expect ( mainView. subView. frame) . to ( equal ( CGRect ( x: subViewLeft , y: subViewTop , width: 100 , height: 100 ) ) )
420+ expect ( mainView. subView. subViewB!. frame) . to ( equal ( CGRect ( x: 0 , y: expectedSubViewSafeAreaInsets . top , width: 40 , height: 40 ) ) )
371421 }
372422 }
373423 }
0 commit comments