Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用数据源向UITableView添加一行_Ios_Objective C_Uitableview - Fatal编程技术网

Ios 使用数据源向UITableView添加一行

Ios 使用数据源向UITableView添加一行,ios,objective-c,uitableview,Ios,Objective C,Uitableview,我有一个UITableView,它从远程提要加载某些数据,我想在表的顶部手动添加一行,在从提要加载的所有行的开头 例如,如果从feed中,我将有一个包含行的表 ////////////////////////////////////////// 1(从UITableView数据源加载) ////////////////////////////////////////// 2(从UITableView数据源加载) //////////////////////////////////////////

我有一个
UITableView
,它从远程提要加载某些数据,我想在表的顶部手动添加一行,在从提要加载的所有行的开头

例如,如果从feed中,我将有一个包含行的表

//////////////////////////////////////////

1(从UITableView数据源加载)

//////////////////////////////////////////

2(从UITableView数据源加载)

//////////////////////////////////////////

3(从UITableView数据源加载)

//////////////////////////////////////////


我想手动在上面添加一行,因此我会:


//////////////////////////////////////////

0(手动添加)

//////////////////////////////////////////

1(从UITableView数据源加载)

//////////////////////////////////////////

2(从UITableView数据源加载)

//////////////////////////////////////////

3(从UITableView数据源加载)

//////////////////////////////////////////

这可能吗?如果不可能的话,还有其他方法吗?比如有两个
UITableView
并把它们放在一起或者类似的东西

提前多谢

是的,这是可能的。
在要添加行的函数中,执行以下操作:

NSMutableArray *indexPathsToInsert = [[NSMutableArray alloc] init];
[indexPathsToInsert addObject:[NSIndexPath indexPathForRow:0 inSection:0]];

[self.tableView beginUpdates];
[self.tableView insertRowsAtIndexPaths:indexPathsToInsert withRowAnimation:UITableViewRowAnimationTop];
[self.tableView endUpdates];
您可以根据需要的效果更改行插入动画。

/!\ 数据源和函数
tableView:cellforrowatinexpath:
必须与要显示的内容一致如果要添加的第一行是静态的,我建议您使用UITableViewHeader来显示它,而不是UITableViewCell。如果你真的想把它卖掉,为什么不增加一个部分呢?第一部分将只包含这一个单元格,第二部分将包含显示从提要中获取的数据的所有单元格。您可以跳过标题视图,这样就不会注意到您有两个节而不是一个节。
另一种方法当然是将要在第一个单元格中显示的数据添加到数据源中,并且只有一个部分,但我更喜欢第一种方法,因为那里的代码和逻辑更干净

您必须使用数组从远程加载表视图中的数据。 只需将元素(第一行中所需的任何数据)推送到这些数组的开头

在数组开头插入一个元素,如下所示:

NSMutableArray* array;
[array insertObject:dataInFirstRow atIndex:0];
它可能对你有用

1) 首先将该新元素插入到数据源数组中

2) 通过XPath获取可见行

NSArray *visibleIndexes = [self.tableview indexPathsForVisibleRows];
3) 然后重新加载所有可见行,不带动画:

[self.tableview reloadRowsAtIndexPaths:visibleIndexes withRowAnimation:UITableViewRowAnimationNone]

将新元素添加到包含数据的数组中,例如:

//This is your data:
NSMutableArray *myData;

//Add new row at the beggining:
[myData insertObject:newData atIndex:0];

//Reload your table view
[self.myTableView reloadData];

默认情况下是否需要1行?