我想在滚动时禁用重新加载表视图。现在,当我的应用程序用户滚动uitableview时,cellForRowAtIndexPath
已被召回。如何在srcolling时禁用它?请给我一些建议。提前谢谢。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *CellIdentifier = [NSString stringWithFormat:@"%d,%d",indexPath.section,indexPath.row];
UITableViewCell *cell = [_tableView dequeueReusableCellWithIdentifier:CellIdentifier];
UILabel *FileNameLabel;
UILabel *UploadTimeLabel;
if (cell == nil)
{
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
CFileNameLabel = [[UILabel alloc] initWithFrame:CGRectMake(40, 0, 130, 30)];
UploadTimeLabel = [[UILabel alloc] initWithFrame:CGRectMake(40, 20, 130, 25)];
FileNameLabel.tag = 1000;
FileNameLabel.backgroundColor = [UIColor clearColor];
FileNameLabel.font = [UIFont fontWithName:@"Helvetica" size:14];
FileNameLabel.font = [UIFont boldSystemFontOfSize:14];
FileNameLabel.textColor = [UIColor blackColor];
// FileNameLabel.text =[temp objectAtIndex:indexPath.row];
[cell.contentView addSubview: FileNameLabel];
[FileNameLabel release];
UploadTimeLabel.tag = 2000;
UploadTimeLabel.backgroundColor = [UIColor clearColor];
UploadTimeLabel.font = [UIFont fontWithName:@"Helvetica" size:12];
UploadTimeLabel.textColor = [UIColor grayColor];
// UploadTimeLabel.text = [UploadTimeArray objectAtIndex:indexPath.row];
[cell.contentView addSubview: UploadTimeLabel];
[UploadTimeLabel release];
}
if( [OriginalArray count] > 0)
{
UILabel *fileNameLbl = (UILabel*)[cell.contentView viewWithTag:1000];
//fileNameLbl.text =[temp objectAtIndex:indexPath.row];
fileNameLbl.text =[[OriginalArray valueForKey:@"FILENAME"] objectAtIndex:indexPath.row];
UILabel *uploadlbl = (UILabel*)[cell.contentView viewWithTag:2000];
uploadlbl.text =[[OriginalArray valueForKey:@"UPLOADTIME"] objectAtIndex:indexPath.row];
}
_tableView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0);
return cell;
}
答案 0 :(得分:3)
滚动桌面视图时,无法阻止cellForRowAtIndexPath:
调用。如果每次都不需要发生某些事情,你可以在条件允许的情况下保持这种状态。
if (cell == nil)
{
//Functionality goes here when it not needed to happen every time.
}
答案 1 :(得分:1)
不要实施方法UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"yourID"];
或UITableViewCell *cell = [tableView dequeueCellWithReuseIdentifier:nil];
它将阻止表视图重用单元格。但是如果你的tableview将包含大量的单元格,这不是一个好主意。希望这可以帮助。 :)
答案 2 :(得分:1)
可能您可以使用数据源,而不是试图避免重新加载,因此数据不会发生变化。我希望你明白我的意思。
答案 3 :(得分:1)
使用dequecellforrowatindex方法避免细胞重新加载。