【问题标题】:UINavigationController adds auto padding to the left of the pushed viewUINavigationController 在推送视图的左侧添加自动填充
【发布时间】:2019-11-21 13:32:54
【问题描述】:

我有两个视图控制器。一个是主页,另一个是详细页面。如果我让它们成为窗口的根视图控制器,它们看起来像这样: 这是我的主页

这是我的详细信息页面

但是当我将主页设为我的根视图控制器并推送我的详细视图控制器以呈现时,它看起来像这样:

这是我的 detailviewController。它有一个scrollview 和uistackview。没有使用故事板。

let scrollView: UIScrollView = {
    let scrollView = UIScrollView()
    scrollView.translatesAutoresizingMaskIntoConstraints = false
    return scrollView
}()

let scrollViewContainer: UIStackView = {
    let view = UIStackView()

    view.axis = .vertical

    view.translatesAutoresizingMaskIntoConstraints = false
    return view
}()

这是约束:

view.addSubview(scrollView)

scrollView.addSubview(scrollViewContainer)

scrollView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
scrollView.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
scrollView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
scrollView.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true

scrollViewContainer.leadingAnchor.constraint(equalTo: scrollView.leadingAnchor).isActive = true
scrollViewContainer.trailingAnchor.constraint(equalTo: scrollView.trailingAnchor).isActive = true
scrollViewContainer.topAnchor.constraint(equalTo: scrollView.topAnchor).isActive = true
scrollViewContainer.bottomAnchor.constraint(equalTo: scrollView.bottomAnchor).isActive = true
// this is important for scrolling
scrollViewContainer.widthAnchor.constraint(equalTo: scrollView.widthAnchor).isActive = true

我认为这是与 iOS 13 相关的问题。

编辑:如果我在推送 detailvc 时将动画设置为 false,则一切正常。

【问题讨论】:

    标签: swift uiviewcontroller uinavigationcontroller ios13


    【解决方案1】:

    如果问题确实在约束中,请尝试将scrollView - widthAnchor 设置为等于view 宽度和centerXAnchor 等于view center X。

    同时设置以下在我看来是错误的:

    scrollViewContainer.leadingAnchor.constraint(equalTo: scrollView.leadingAnchor).isActive = true
    scrollViewContainer.trailingAnchor.constraint(equalTo: scrollView.trailingAnchor).isActive = true
    

    scrollViewContainer.widthAnchor.constraint(equalTo: scrollView.widthAnchor).isActive = true
    

    我建议保留最后一个约束,并将 centerX 中的 scrollViewContainer 相对于视图对齐。

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-23
      • 1970-01-01
      • 1970-01-01
      • 2012-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多