iphone - iOS 7 表格 View 无法自动调整内容插入

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

我有一个 View Controller ,它有一个 TableView 作为 subview (我们称之为 ControllerA)。我用 controllerA 初始化了一个新的 uinavigationcontroller,并使用 presentviewcontroller 以模态方式呈现它。呈现的 View Controller 的表格 View 被导航栏挡住了。我将 automaticallyAdjustsScrollViewInsets 设置为 YES 但结果没有改变。 我知道我可以将 edgesForExtendedLayout 设置为 UIRectEdgeNone,但它会使导航栏不再半透明。

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

结论

  1. 两个 View Controller 的自动调整 ScrollView 插入设置为 YES
  2. 项目未使用 Storyboard
  3. 第一个是在 Xcode 4.6 上创建的,第二个是在 Xcode 5 上新创建的
  4. 我对比了xib和code两个类,差别不大

最佳答案

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

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

第二个, View Controller 不是 UITableViewController。 在 View 层次结构中,它包含一个 UITableView。在这种情况下,如果 UITableview(或 ScrollView)是 viewController 的主视图或主视图的第一个 subview ,它将起作用。否则, View Controller 不知道要填充哪个 ScrollView ,就会出现问题。

在我的例子中, View Controller 是第二个。并且有一个背景 ImageView 作为主视图的第一个 subview 。所以,它失败了。

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

https://stackoverflow.com/questions/19091737/

相关文章:

iphone - 什么是-[NSString sizeWithFont :forWidth:line

objective-c - 'pod install' 不会更新现有的 pod

objective-c - 恢复 iOS7 之前的 UINavigationController p

iphone - UITableView/UITableViewCell 点击事件响应?

ios - 将 NSInteger 转换为 NSIndexpath

iphone - 如何使用第一个字符作为部分名称

objective-c - 使用自动布局自定义纵横比

ios - 在objective-c中导入swift类,-Swift.h文件未找

iphone - 将 HEX NSString 转换为 NSData

objective-c - 通过指针运算与 C 中的下标访问数组值