我正在将项目迁移到iOS7。我面临一个与半透明导航栏有关的奇怪问题。

我有一个 View Controller ,它有一个tableview作为 subview (我们称之为ControllerA)。我用controllerA初始化了一个新的uinavigationcontroller,并使用presentviewcontroller模态地展示了它。所显示的 View Controller 的表 View 被导航栏阻止。我将自动设置为AdjustsScrollViewInsets ,但结果没有改变。
我知道我可以将 edgeForExtendedLayout 设置为 UIRectEdgeNone ,但这将使导航栏不再透明。



之后,我尝试创建一个新的 View Controller 进行测试。它包含几乎相同的元素。但是结果却大不相同。表格 View 的内容不会被阻止。

结论

  • 两个View Controller的autoAdjustsScrollViewInsets设置为YES
  • 该项目未使用 Storyboard
  • 第一个在Xcode 4.6上创建,第二个在Xcode 5上新创建
  • 我比较了两个类xib和代码,
  • 没什么不同

    最佳答案

    我在苹果开发者论坛上找到了答案。
    有两种不同的情况。

    第一个,添加的 View Controller 是UITableViewController。
    而且该问题不应出现,因为苹果会自动填充它。

    第二个, View Controller 不是UITableViewController。
    并且在 View 层次结构中,它包含一个UITableView。在这种情况下,如果UITableview(或ScrollView)是viewController的主 View 或主 View 的第一个 subview ,则它将起作用。否则, View Controller 将不知道要填充的滚动 View ,否则将发生此问题。

    就我而言, View Controller 是第二个。并且有一个背景图像 View 作为主 View 的第一个 subview 。因此,它失败了。

    这是Apple开发者论坛链接(需要访问开发者帐户):
    https://devforums.apple.com/message/900138#900138

    关于iphone - iOS 7表格 View 无法自动调整内容插图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19091737/

    10-12 22:27
    查看更多