【问题标题】:Height of sub-views being auto-extended beyond the bottom of the super view by the height of the UINavigationBar in ios7子视图的高度在 ios7 中被 UINavigationBar 的高度自动扩展到超级视图的底部之外
【发布时间】:2014-02-24 00:49:55
【问题描述】:

我所有的 UIViewController 都可以在我的 UINavigationController 中正常显示,除了一个。有缺陷的控制器在顶部有一个 UISearchDisplayController,然后是一个段视图,最后是一个 UITableView。问题是 UITableView 的高度,不应该超过其超级视图的高度,被 UINavigationBar 的高度超出了超级视图的底部。如果我添加一大堆约束,我可以修复它,但是由于某种原因,UISearchBar 被向上移动,因此它的一半被 UINavigationBar 剪裁。我到处都在使用 UITableView,这是唯一存在此问题的 UIViewController。任何帮助表示赞赏!

更新(添加照片):

【问题讨论】:

    标签: ios iphone objective-c uitableview ios7


    【解决方案1】:

    您是否将edgesForExtendedLayout 设置为UIRectEdgeAll(默认值)?也许尝试将其调整为仅 UIRectEdgeNone 或适当的值(这是在 View Controller > Interface Builder 中的 Extended Edges 下完成的)

    不是一个很好的答案,因为如果没有更多的视图知识很难调试(也许发布视图层次结构和视图的屏幕截图?)

    更新

    当您提到您添加了一大堆约束时,听起来您的约束正在解决问题,但您没有向搜索栏添加适当的约束。如果您看到搜索栏被推到顶部,那是因为其他约束迫使它在那里,因为它们的优先级更高。

    查看您的约束并确保您在 UITableView 和 UISearchBar 上设置顶部和底部间距约束。这似乎确实是个问题。

    【讨论】:

    • 感谢您的回复!我正在设置 UIRectEdgeLeft | UIRectEdgeRight | UIRectEdgeBottom 目前。我用一张图片更新了我原来的帖子。
    【解决方案2】:

    确保您的UITableView 具有将其固定到其父视图底部的约束。在您的 XIB 中选择表格视图,然后转到:

    Editor > Pin > Bottom Space to Superview
    

    至于你提到的另一个问题,你需要分享更多关于你的观点的安排和你应用的约束。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-30
      • 2013-11-21
      • 2018-09-30
      相关资源
      最近更新 更多