Iphone 通过实例调用cellforrowatinexpath

Iphone 通过实例调用cellforrowatinexpath,iphone,uitableview,Iphone,Uitableview,我想知道下面的场景是否可能。 我有一个UITableViewController类,它包含十行显示一些数据。现在,我想在一个tableview中显示前五行,在另一个tableview中显示最后五行。因为我不想再次获取数据,所以我希望创建一个原始表类的实例,并调用其cellforrowatinexpath:(nsindepath*)indepath,以返回表单元格并将其添加到其他两个表视图中。是否可以通过实例调用委托方法?如果是这样,我如何创建一个NSIndexPath对象,指向表的任何部分中的特

我想知道下面的场景是否可能。
我有一个UITableViewController类,它包含十行显示一些数据。现在,我想在一个tableview中显示前五行,在另一个tableview中显示最后五行。因为我不想再次获取数据,所以我希望创建一个原始表类的实例,并调用其
cellforrowatinexpath:(nsindepath*)indepath
,以返回表单元格并将其添加到其他两个表视图中。是否可以通过实例调用委托方法?如果是这样,我如何创建一个NSIndexPath对象,指向表的任何部分中的特定行…

如果不想再次获取,为什么不将获取结果添加到数组中

这样做的好处是,填充tableview不需要“实时抓取”——在某些情况下,根据需要抓取数据可能会使滚动tableview变慢或出现口吃


但是,您也可以尝试将tableviewcells添加到一个或多个数组中,以便在第一次使用tableview时保留对它们的引用。

如果不想再次获取,为什么不将获取结果添加到数组中

这样做的好处是,填充tableview不需要“实时抓取”——在某些情况下,根据需要抓取数据可能会使滚动tableview变慢或出现口吃


但是,您也可以尝试将tableviewcells添加到一个或多个数组中,以便在第一次使用tableview时保留对它们的引用。

我认为您不需要任何详细说明。

使所有表使用相同的数据源。根据该表元素的标记值,选择要在哪个表中显示的项目。如果有任何更改,请在所有表上调用reloadData。

我认为您不需要任何详细说明。

使所有表使用相同的数据源。根据该表元素的标记值,选择要在哪个表中显示的项目。当有任何更改时,对所有表调用reloadData。

我的猜测是,在2个或更多表中使用相同的UITableViewCell将不起作用。
如果您正在重用单元格,那么这些重复的单元格很可能最终会被其他内容刷新。
为了防止出现这种情况,您需要克隆这些单元格,在这种情况下,在UITableViewCell级别上工作是不可行的。
最好以数组(或其他存储方式)存储数据(由单元格显示),并跨多个表共享该数据

另外,您还可以在共享相同内容的同时独立自定义这些表的外观

要回答上一个问题,可以创建指向任何单元格的NSIndexPath。 第一个索引是sectio,第二个索引是该节中的行。 例如,指向第2节第5单元,您可以这样写:

NSIndexPath* myIndexPath = [[NSIndexPath indexPathWithIndex:2] indexPathByAddingIndex:5]; 

//Or, with another method:

NSIndexPath* myIndexPath = [NSIndexPath indexPathWithIndexes:indexes_array length:count];

我的猜测是,在两个或多个表中使用相同的UITableViewCell将不起作用。
如果您正在重用单元格,那么这些重复的单元格很可能最终会被其他内容刷新。
为了防止出现这种情况,您需要克隆这些单元格,在这种情况下,在UITableViewCell级别上工作是不可行的。
最好以数组(或其他存储方式)存储数据(由单元格显示),并跨多个表共享该数据

另外,您还可以在共享相同内容的同时独立自定义这些表的外观

要回答上一个问题,可以创建指向任何单元格的NSIndexPath。 第一个索引是sectio,第二个索引是该节中的行。 例如,指向第2节第5单元,您可以这样写:

NSIndexPath* myIndexPath = [[NSIndexPath indexPathWithIndex:2] indexPathByAddingIndex:5]; 

//Or, with another method:

NSIndexPath* myIndexPath = [NSIndexPath indexPathWithIndexes:indexes_array length:count];

谢谢你的回复。我尝试调用
cellforrowatinexpath:(nsindepath*)indepath
,但它总是显示以下警告

'RootViewController' may not respond to '-cellForRowAtIndexPath:'
应用程序也会因消息而崩溃

 ***Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[RootViewController cellForRowAtIndexPath:]: unrecognized selector sent to instance 0x4bad30'
如Andrei所述,已初始化NSIndexPath。
我猜调用这个函数是不可能的

谢谢你的回复。我尝试调用
cellforrowatinexpath:(nsindepath*)indepath
,但它总是显示以下警告

'RootViewController' may not respond to '-cellForRowAtIndexPath:'
应用程序也会因消息而崩溃

 ***Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[RootViewController cellForRowAtIndexPath:]: unrecognized selector sent to instance 0x4bad30'
如Andrei所述,已初始化NSIndexPath。
我猜调用这个函数是不可能的

请记住,
cellforrowatinexpath:
不是UITableViewController的方法。这是一种方法。考虑到这一点,您实际上可以这样调用该方法:

UITableViewCell *cell;
cell = [yourTableView cellForRowAtIndexPath: indexPath];

这样做应该返回位于
indepath

的单元格,请记住
cellforrowatinexpath:
不是UITableViewController的方法。这是一种方法。考虑到这一点,您实际上可以这样调用该方法:

UITableViewCell *cell;
cell = [yourTableView cellForRowAtIndexPath: indexPath];

这样做应该返回位于
indepath

的单元格,谢谢。我已经考虑过了,但只是想知道是否可以直接获取细胞。谢谢。我已经考虑过了,但只是想知道是否可以直接获取单元格。CellForRowatineXpath的签名实际上是-
(UITableViewCell*)tableView:(UITableView*)tableView CellForRowatineXpath:(NSIndexPath*)indexPath
(注意tableView参数)@Andreastanescu这是用于设置新单元格的
UITableViewDataSource
方法的签名。在
UITableView
中,签名是
-(UITableViewCell*)cellforrowatinexpath:(NSIndexPath*)indexPath
。cellforrowatinexpath的签名实际上是-
(UITableViewCell*)tableView:(UITableView*)tableView cellforrowatinexpath:(NSIndexPath*)indexPath
(注意tableView参数)@Andreastanescu这是用于设置新单元格的
UITableViewDataSource
方法的签名。在
UITableView
中,签名为
-(UITableViewCel