浏览代码

PageStripViewController: adjust contentInset and scrollarea to not be covered and go edge to edge

Carola Nitz 7 年之前
父节点
当前提交
8da49e4edf

+ 8 - 1
Sources/BaseButtonBarPagerTabStripViewController.swift

@@ -76,11 +76,18 @@ open class BaseButtonBarPagerTabStripViewController<ButtonBarCellType: UICollect
             buttonBarView.leftAnchor.constraint(equalTo: view.leftAnchor),
             buttonBarView.heightAnchor.constraint(equalToConstant: 35)
             ])
+        //make sure that top and bottom are not covered by tabbar and navigationbar
+        let bottomGuide: NSLayoutConstraint
+        if #available(iOS 11.0, *) {
+            bottomGuide = containerView.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor)
+        } else {
+            bottomGuide = containerView.bottomAnchor.constraint(equalTo: bottomLayoutGuide.topAnchor)
+        }
         NSLayoutConstraint.activate([
             containerView.topAnchor.constraint(equalTo: buttonBarView.bottomAnchor),
             containerView.rightAnchor.constraint(equalTo: view.rightAnchor),
             containerView.leftAnchor.constraint(equalTo: view.leftAnchor),
-            containerView.bottomAnchor.constraint(equalTo: view.bottomAnchor)
+            bottomGuide
             ]
         )
 

+ 1 - 1
Sources/ButtonBarView.swift

@@ -18,7 +18,7 @@ open class ButtonBarView: UICollectionView {
     open var separatorView: UIView!
 
     internal let selectedBarHeight: CGFloat = 4
-    internal let separatorHeight: CGFloat = 0.5
+    internal let separatorHeight: CGFloat = 1.5
 
     var selectedIndex = 0
 

+ 5 - 0
Sources/PagerStripViewController.swift

@@ -59,6 +59,11 @@ open class PagerTabStripViewController: UIViewController, UIScrollViewDelegate {
         containerView.showsHorizontalScrollIndicator = false
         containerView.isPagingEnabled = true
         containerView.backgroundColor = PresentationTheme.current.colors.background
+        if #available(iOS 11.0, *) {
+            containerView.contentInsetAdjustmentBehavior = .never
+        } else {
+            automaticallyAdjustsScrollViewInsets = false
+        }
         view.addSubview(containerView)
 
         reloadViewControllers()