我正在将项目迁移到iOS7。我面临一个与半透明导航栏有关的奇怪问题。
我有一个 View Controller ,它有一个tableview作为 subview (我们称之为ControllerA)。我用controllerA初始化了一个新的uinavigationcontroller,并使用presentviewcontroller模态地展示了它。所显示的 View Controller 的表 View 被导航栏阻止。我将自动设置为AdjustsScrollViewInsets 为是,但结果没有改变。
我知道我可以将 edgeForExtendedLayout 设置为 UIRectEdgeNone ,但这将使导航栏不再透明。
之后,我尝试创建一个新的 View Controller 进行测试。它包含几乎相同的元素。但是结果却大不相同。表格 View 的内容不会被阻止。
结论
最佳答案
我在苹果开发者论坛上找到了答案。
有两种不同的情况。
第一个,添加的 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/