UITableView 在 TableView 中间加载单元格。为啥?

Posted

技术标签:

【中文标题】UITableView 在 TableView 中间加载单元格。为啥?【英文标题】:UITableView loads with cells in the middle of the TableView. Why?UITableView 在 TableView 中间加载单元格。为什么? 【发布时间】:2013-10-03 04:23:00 【问题描述】:

上下文

ios 7 构建 视图控制器上有两个 UITableView 使用约束使 tableview 调整大小,就像我想要的那样,在 3.5 英寸和 4 英寸的屏幕尺寸之间。

我的尝试

阅读 UITableView 文档 搜索*** 试过这个代码:[self.bottomTableView scrollToRowAtIndexPath:0 atScrollPosition:UITableViewScrollPositionTop animated:NO];

结果

底部tableView中的内容加载到tableview的中间。我可以将这些单元格向上滚动到表格视图的顶部,但它们会“快速”回到中间。我该如何避免这种情况?

更新

这是加载时表格视图的外观。绿色背景显示了底部表格视图上半部分留下的所有空白。

这是代码:

#pragma mark - Table View Methods

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section


    if (tableView == self.topTableView) 
        return [self.array count];
    
    else
        return [self.array count];
    


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

    static NSString *simpleTableIdentifier = @"SimpleTableItem";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];

    if (cell == nil) 
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
    

    if (tableView == self.topTableView) 
        cell.textLabel.text = @"60";

        return cell;
    
    else
        cell.textLabel.text = @"60";

        return cell;
    



-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 


【问题讨论】:

你能用单元格和你的tableview代码显示实际图像吗? 拜托,你能在你提供 tableView (框架,代表......)的地方显示代码吗?谢谢? 我没有看到您提供的代码有问题,但我没有看到您如何在代码或界面构建器中设置表格视图。我也看不到运行时发生了什么。介意压缩项目并分享它,以便我们仔细查看吗? @HelgeBecker 给你:dl.dropboxusercontent.com/u/529504/Example.zip 【参考方案1】:

您的代码一切正常。除非我错过了 WWDC 文档中的某些内容,否则这似乎是 Xcode 和 iOS 7 的错误。

他将导航栏的高度应用于子视图数组中的第一个元素。元素是否真的在栏下并不重要,他只是盲目地应用它。您可以更改情节提要中的顺序,假设您将底部的tableview移到顶部,那么底部的视图就有问题。

我看到两个选项。 如果你禁用 ViewController 上的“Under Top Bars”,一切都很好。或者你将 UILabel 移到顶部。没有什么他可以用静态标签调整的。也许与 Maverics GM 一起发布的 Xcode 5.0.1 会解决这个问题。还在下载那个。将在 DL 完成后立即尝试。

【讨论】:

不,与 XCode 5.0.1 相同。如果类继承 UIView,他似乎会执行此最顶层元素。哦,好吧,错误报告。 你如何“禁用“顶部栏下”? 以编程方式(iOS7 中的 UIViewController 属性)或故事板中。让我在哪里添加一张图片。 你已经用 Apple 记录了这个吗?如果你还没有的话,我想要。 另外,当我关闭“顶部栏下方”属性时,我会在导航栏后面看到这种奇怪的颜色过渡。

以上是关于UITableView 在 TableView 中间加载单元格。为啥?的主要内容,如果未能解决你的问题,请参考以下文章

使用重用标识符调用 super.tableView(tableView: UITableView, cellForRowAtIndexPath...

主 UITableView 在搜索结果 TableView 状态栏中可见

let tableView = UITableView()与let tableView之间的区别:UITableView!这两个语句

UITableView 的子视图与 tableView 的高度不同

UITapGesture在UITableview标题中

如何初始加载 UITableView 然后观察 Firebase 节点以更改在 Swift 中刷新 tableview?