我是iOS的新手,住在一个非常小的村庄,在iOS上没有任何帮助,我在代码中需要帮助,一旦到达第20行,我就可以增加行数。
我实际上有超过6000行,当试图在tableview中显示它们时,它需要很多时间,所以我想以有效的方式加载所有行,比如像+20,+ 50等增加它
这是我的代码:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return a;
}
我试图像这样增加行:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
if(indexPath.row == 20)
{
[_myTable reloadData];
[self.myTable beginUpdates];
a= a +50;
[self.myTable endUpdates];
}
if (indexPath.row > 60)
{
[self.myTable beginUpdates];
a= a +100;
[self.myTable endUpdates];
}
}
我将myTable声明为属性
我很抱歉,如果我的帖子看起来很愚蠢,我处于非常基本的位置,抱歉我的英语不好。
答案 0 :(得分:2)
tableView中显示的行数取决于可用数据,即要在UITableView
中显示的数据。
让阵列"国家"包含3个国家的名单:
NSArray *countries;
countries = @[@"India",@"USA",@"Germany",nil];
所以,现在UITableView
有3行,所以请使用:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return countries.count;
}
因此,如果国家/地区列表稍后增加,那么它将起作用。
无需手动增加表格中的行数。
如果响应来自服务器,请使用:
NSArray *dataArray = [responseObject objectForKey:@"countriesJson"];
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return dataArray.count;
}
请查看下面的GitHub链接:
https://github.com/k-sathireddy/TableRowCountDynamic
注意:如果达到某个限制,则会加载更多图像。
答案 1 :(得分:-1)
您必须遵循以下算法或逻辑,
1)首先使用20个对象初始化数组,该数组将用于UITableView
中datasource
的显示。
2)然后你需要实现UIScrollView delegate
方法- (void)scrollViewDidScroll:(UIScrollView *)aScrollView
,你可以在其中编写一些代码:
- (Void) scrollViewDidScroll: (UIScrollView *) aScrollView
{
self.tbleSerachResult.frame=self.tbleSerachResult.frame;
if (aScrollView==self.tblOutlet) {
[currentTextfield resignFirstResponder];
CGPoint offset = aScrollView.contentOffset;
CGRect bounds = aScrollView.bounds;
CGSize size = aScrollView.contentSize;
UIEdgeInsets inset = aScrollView.contentInset;
float y = offset.y + bounds.size.height - inset.bottom;
float h = size.height;
float reload_distance = 10;
if(y > h + reload_distance)
{
//add more 20 records to your existing array which used for the UITableView data source and reload the UITableView.
//Put your load more data method here...
}
}
}
3)在此之后,你不需要任何其他东西来维持这一点。只需正常实施UITableView delegate
和datasource
方法即可。它会起作用。
尝试这种方式,如果仍然面临任何问题,请告诉我,我会给你示例代码。
希望它对你有用!!快乐的编码:)