当我们滚动到UITableView的最后一个单元格时,我想在UITableview中添加数据或单元格。换句话说,正如我们在许多iPhone应用程序中看到的那样,当我们到达UITableview的最后一个单元格时,在运行时会添加更多单元格。我想在我的项目中实现该功能。
当我们到达之前添加的最后一个单元格时,将更多单元格添加到UITableview。
请告诉我示例代码或任何教程。
答案 0 :(得分:2)
我认为这里有2个问题。 一,如何检测tableVeiw的结尾?二,如何动态添加单元格? 第一个问题,我认为可以通过观察scrollView的内容偏移量或tableView单元格的当前indexPath来完成。可以通过以下UIScrollViewDelegate方法观察scrollView的内容偏移量。内容偏移量是scrollView的属性。
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
CGFloat currentOffset = scrollView.contentOffset;
// Detect scrolling to bottom by this offset value.
....
}
单元格的索引可以通过UITableViewDataSource的方法决定。
- (UITableViewCell *)cellForRowAtIndexPath:(NSIndexPath *)indexPath
UITableView
的方法可能会使第二个问题不堪重负。
我记得this official document中的示例代码将教授如何使用上述方法。它们不会重新加载所有单元格,但不小心操作会导致崩溃。
答案 1 :(得分:1)
如果您的数据存储在数组中,那么您肯定会有计数您想要多少个单元格。 使用以下代码获取帮助
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ return [array count];}
我相信这会对你有所帮助。
答案 2 :(得分:0)
使用数组填充tableView(您应该这样做)。当委托方法cellForRowAtIndexPath
询问您最后一个单元格时,请使用新的(更多)数据重新填充数组并生成[tableView reloadData]
。
答案 3 :(得分:0)
你只想在表格中添加数据?
然后,首先您可能需要再添加一个视图,模态视图。您应该在此视图中编写一些关于要添加的内容的规范。
接下来,您将消息发送到现有数据阵列(假设您使用数组)
[ExistingArrayData addObject:TemporalilyNewObject];
您可以使用NSSortDescriptor
对数据进行排序。
NSSortDescriptor *nameSorter = [[NSSortDescriptor alloc] initWithKey:KEY_VALUE ascending:YES selector:@selector(caseInsensitiveCompare:)];
[ExistingArrayData sortUsingDescriptors:[NSArray arrayWithObject:nameSorter]];
在这种情况下,此方法按KEY_VALUE(升序)对数据进行排序。
最后,您需要在RootView的viewWillAppear方法中添加此代码。
[self.tableView reloadData];
此代码通知应用程序数据更改。
答案 4 :(得分:0)
-(void) tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{
int i=0;
i=indexPath.row;
int count=[urTablearray count];
if (count == (++i)) {
//do ur stuff here
here add object to urTablearray
[urTablearray addObject:@"vijay"];
}
}
注意:urTablearray是NSMutableArray类型而不是NSArray