在 UITableView 中插入一些行后,它在 ios 7 中没有滚动

Posted

技术标签:

【中文标题】在 UITableView 中插入一些行后,它在 ios 7 中没有滚动【英文标题】:After Inserting some rows in UITableView, it is not scrolling in ios 7 【发布时间】:2013-12-18 06:47:01 【问题描述】:

您好,我已经创建了 UITableView。在 Touch of it 单元格上,我在其中插入更多行。在 UITableView 中插入更多行后,滚动不起作用。这只发生在 ios 7 中。

有人遇到过这个问题吗?

这是插入的代码。

NSArray *rowIndex = [NSArray arrayWithObject:[NSIndexPath indexPathForRow:1 inSection:[self.lastSelectedIndex section]]];
[self.table beginUpdates];
[self.table insertRowsAtIndexPaths:rowIndex withRowAnimation:UITableViewRowAnimationNone];
[self.table endUpdates];

【问题讨论】:

【参考方案1】:

我不确定您的代码发生了什么,但是如果您想在每个添加行之后滚动,只需调用下面的方法(注意:- 根据您的变量名称修改代码)

-(void)goToBottom

     NSInteger lastSectionIndex = MAX(0, [myTableName numberOfSections] - 1);
     NSInteger lastRowIndex = MAX(0, [ myTableName numberOfRowsInSection:lastSectionIndex] - 1);

     NSIndexPath *lastIndexPath = [NSIndexPath indexPathForRow:lastRowIndex inSection:lastSectionIndex];

   if([myArray count] > 0)
    
        [myTableName scrollToRowAtIndexPath:lastIndexPath atScrollPosition:UITableViewScrollPositionBottom animated:YES];
    


【讨论】:

您好,Mits,感谢您的回复。其实我不是在找这个。问题是在 tableview 中再插入几行后,它根本没有滚动。甚至我的内容大小(高度)也超过了表格视图的高度。插入行后的任何方式,我都会将特定的拖曳推到顶部。 [self.table scrollToRowAtIndexPath:self.lastSelectedIndex atScrollPosition:UITableViewScrollPositionTop animated:EXPAND_ANIMATE]; 我并没有明确你想要什么? 我有一个包含 10 个项目的表格视图。它的内容高度大于表格视图高度。因为表格视图是滚动视图的子视图。它应该自动开始滚动。直到这里工作正常。现在假设用户要触摸 2 个单元格。这里我在表格视图中再添加 10 个单元格。 tableview 内容高度将再次增加。在插入 10 多行之后,表格视图不滚动。这只发生在 ios7 与其他操作系统版本一起正常工作的情况下。【参考方案2】:

您是否使用情节提要创建了视图?也许你必须检查你的约束。 如果您的表格视图占据了视图中的所有空间,请选择它然后转到“编辑器>固定>顶部空间到超级视图,底部空间到超级视图”

【讨论】:

嗨,我正在以编程方式创建它。我没有使用 xib 或故事板。这在 ios 6 5 4 中运行良好。只有这仅在 ios 7 中发生。

以上是关于在 UITableView 中插入一些行后,它在 ios 7 中没有滚动的主要内容,如果未能解决你的问题,请参考以下文章

插入行后 UITableViewCell 动态高度中断

在 UITableView 中,如何在隐藏行后关闭行的底部边框?

Iphone:UITableView 标题行在 6 行后重复

以编程方式选择行后未调用 UITableView didSelectRowAtIndexPath

插入行后从 form2 刷新 form1 gridview

UITextfield 使用插入在 UITableView 中显示空行