我正在尝试在tableview中显示plist数据。
我的问题是,在向下滚动后,我丢失了之前获取的数据。 实际上我正在使用自定义单元格,所以我认为这是发生的。
表的来源和代表的代码如下。
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [tableData count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *kCellID = @"Cell";
OffersCustomCell *cell = (OffersCustomCell *)[mytableView dequeueReusableCellWithIdentifier:kCellID];
if (cell == nil)
{
NSString *path = [[NSBundle mainBundle] pathForResource:@"OffersList" ofType:@"plist"];
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"OffersCustomCell" owner:self options:nil];
cell = [nib objectAtIndex:0];
cell.titleLabel.font = [UIFont fontWithName:@"Formata-Regular" size:13.0f];
cell.saveLabel.font = [UIFont fontWithName:@"Formata-Bold" size:14.0f];
cell.nowLabel.font = cell.titleLabel.font;
cell.selectionStyle = UITableViewCellSelectionStyleNone;
}
NSDictionary *dict = [tableData objectAtIndex:indexPath.row];
NSLog(@"%@",dict);
cell.titleLabel.text = [dict objectForKey:@"title"];
cell.nowLabel.text = [dict objectForKey:@"price"];
cell.saveLabel.text = [dict objectForKey:@"rondel"];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[mytableView deselectRowAtIndexPath:indexPath animated:YES];
}
答案 0 :(得分:0)
您是否为每个单元格设置了高度
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
CGFloat height = 0;
//calculate height for each cell
return height;
}
使用此UITableView委托方法设置单元格的高度。
答案 1 :(得分:0)
您可以使用另一个存储数据的类,并重新加载您使用该类的时间并正确有效地恢复数据。
答案 2 :(得分:0)
我解决了。 :)
唯一的问题是没有为UItableview保留内存。
tableData = [[NSArray arrayWithObjects:[dic objectForKey:@"Response"], nil] retain];