增加底部布局长度/插入/填充

时间:2017-11-10 22:55:01

标签: swift uiscrollview ios-autolayout

  1. 子类UITabBarController
  2. 隐藏/删除原始标签栏
  3. 将自定义视图放在UITabBarController视图的底部
  4. UITabBarController - > UIViewController - > UIScrollView(固定到superview所有边缘,而不是布局,并设置将vc上的滚动视图插入调整为true)
  5. 预期:当我滚动到滚动视图的底部时,UIScrollView的内容完全可见

    实际:未应用插件,并且scrollview的内容位于我的自定义视图下。

    对于iOS 11,additionalSafeAreaInsets正在根据需要运行。但是我能为iOS 10& 9?

    覆盖bottomLayoutGuide从未调用过。 设置view.layoutMargins没有帮助

1 个答案:

答案 0 :(得分:0)

根据我的理解你的问题,你想为你的scrollView

添加下边距
class CustomTabBarController: UITabBarController {

    var customView: UIView!

    override func viewDidLoad() {
        super.viewDidLoad()
        self.viewControllers?.forEach { controller in
            if let controller = controller as? CustomProtocol {
                controller.setBottomMargin(customView.frame.height)
            }
        }
    }
}

protocol CustomProtocol {
    func setBottomMargin(_ margin: CGFloat)
}

class ViewController: UIViewController, CustomProtocol {
    @IBOutlet weak var scrollView: UIScrollView!
    @IBOutlet weak var bottomMargin: NSLayoutConstraint!

    func setBottomMargin(_ margin: CGFloat) {
        self.bottomMargin.constant = margin
    }
}