为啥我的 UITableView 在 iOS 7 中被切断了?
Posted
技术标签:
【中文标题】为啥我的 UITableView 在 iOS 7 中被切断了?【英文标题】:Why is my UITableView cut off in iOS 7?为什么我的 UITableView 在 iOS 7 中被切断了? 【发布时间】:2013-10-02 04:15:36 【问题描述】:在 ios 6 中,由两行(用户名和密码)组成的登录表视图完全正确显示。在 iOS 7 中,底行被切断,我不知道为什么或如何更正该问题。除了升级到 Xcode 5 并在 iOS 7 模拟器上运行之外,没有任何变化。
更新:添加更多图片
【问题讨论】:
你是如何创建表格视图的?你是如何定位的?您可能需要显示一些代码。 我已经添加了我的 cellforrowatindexpath 方法,但是添加表格视图和定位是在故事板中完成的 @AdamJohns 那么我认为你应该检查你在故事板中的布局,我敢打赌你的自动布局约束并不像你想象的那样。 @RonLugge 我该怎么做?我对自动布局不太熟悉。 单击对象,进入右侧窗格,然后调出“尺寸”检查器。尽管它的名字,如果你向下滚动你应该看到你定义的布局。可能发生的情况是您没有定义特定的高度和宽度,而是定义了与其他对象的距离——当这些对象移动时,该距离会产生“时髦”的结果。 【参考方案1】:尝试在您的视图控制器中使用navigationBar.translucent
属性。在iOS 6
中默认为NO
,但YES
在iOS 7
中。我有一个类似的问题,这为我解决了。
【讨论】:
这为我解决了这个问题,但是有谁知道为什么这个属性设置为YES
会导致表格视图的底部被切断?我的tableview的frame用view的frame初始化,添加到view的subview,没有其他view了。
一个原因可能是高度受限。在这种情况下,顶部 y 是导航开始的位置,可能会将底部向下推。【参考方案2】:
只需检查您在 iOS7 中的 UITableView
框架,可能是您在 3.5 英寸视图上运行它,它会缩小。
【讨论】:
我在 4 英寸上运行,即使我把框架做得更大,不幸的是它也无济于事。【参考方案3】:查看提供的图像,我认为您可能在导航栏下方。或者换句话说,您的导航栏位于 hte 表的顶部。虽然我不知道为什么会切断登录信息的底部
【讨论】:
不,重叠不是问题,因为我已经使用this成功处理了重叠【参考方案4】:我发现,只需将 GROUPED 表视图样式更改为 PLAIN 表视图样式即可解决 #0 节标题的“underlap”问题,但会修改节标题视图的颜色。我在我的应用程序中设置了 tableview 背景颜色。使用 PLAIN 样式,部分标题背景颜色会混乱。部分标题颜色接近 tableview 背景颜色,但略有修改。如果我简单地切换回 GROUPED,则不会发生这种情况。这听起来像是一个 iOS7 错误或 Xcode 错误。
【讨论】:
【参考方案5】:半透明 = NO 在某些情况下修复了它。在其他情况下,我最终调整了 viewDidLoad 中的 tableView
- (void)viewDidLoad
[super viewDidLoad];
CGRect f = self.tableView.frame;
f.origin.y += self.navigationController.navigationBar.frame.size.height;
f.size.height -= self.navigationController.navigationBar.frame.size.height;
self.tableView.frame = f;
【讨论】:
【参考方案6】:这显然是分组表视图样式的某种问题。我所要做的就是进入故事板场景,选择表格视图,然后在属性检查器中将样式从分组更改为普通。它现在可以按预期工作而不会被切断。
【讨论】:
这并不是真正的解决方案,更多的是一种变通方法。我相信 unspokenblabber 建议的答案是实际答案 很公平,它最终成为我的应用程序的问题。我的观点是,改变表格的样式并不是真正的解决方案。以上是关于为啥我的 UITableView 在 iOS 7 中被切断了?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我的 UITableView 滚动偏移在返回其视图时最终落在 UISearchController 后面?