当TableView滚动比值改变

我创build了一个表格视图,显示来自数组的数据。但现在当我滚动表视图比我的数据更改不可接受。

那么我怎样才能防止tableview刷新每次滚动和设置所有的数据时,第一次创build表视图。

这里是我的代码:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { ExampleAppDataObject* theDataObject = [self theAppDataObject]; // Return the number of sections. return theDataObject.vendorTableAry.count; //this is return value of array and it will be more than 2 which help to create section } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { // Return the number of rows in the section. return 4; // i want only 4 row in each section } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { ExampleAppDataObject* theDataObject = [self theAppDataObject]; static NSString *SimpleTableIdentifier = @"SimpleTableIdentifier"; UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier: SimpleTableIdentifier]; if(cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:SimpleTableIdentifier]; /*cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:SimpleTableIdentifier] autorelease]; */ if (indexPath.row==0) { UILabel * vendorLbl = [[UILabel alloc] initWithFrame:CGRectMake(10, 2, 60, 39)]; [[vendorLbl layer] setCornerRadius:5.0f]; //[vendorLbl setFont:[UIFont fontWithName:@"Helvetica-Bold" size:13.0]]; vendorLbl.backgroundColor = [UIColor clearColor]; [vendorLbl setText:@"vender"]; [cell.contentView addSubview:vendorLbl]; UILabel * columnLbl = [[UILabel alloc] initWithFrame:CGRectMake(80, 2, 10, 39)]; columnLbl.backgroundColor = [UIColor clearColor]; [columnLbl setText:@":"]; [cell.contentView addSubview:columnLbl]; UILabel * vendorValueLbl = [[UILabel alloc] initWithFrame:CGRectMake(98, 2, 195, 39)]; [[vendorValueLbl layer] setCornerRadius:5.0f]; //[vendorLbl setFont:[UIFont fontWithName:@"Helvetica-Bold" size:13.0]]; vendorValueLbl.backgroundColor = [UIColor clearColor]; [vendorValueLbl setText:[theDataObject.vendorTableAry objectAtIndex:indexPath.section]]; [cell.contentView addSubview:vendorValueLbl]; } if (indexPath.row==1) { UILabel * vendorLbl = [[UILabel alloc] initWithFrame:CGRectMake(10, 2, 60, 39)]; [[vendorLbl layer] setCornerRadius:5.0f]; //[vendorLbl setFont:[UIFont fontWithName:@"Helvetica-Bold" size:13.0]]; vendorLbl.backgroundColor = [UIColor clearColor]; [vendorLbl setText:@"Gallons"]; [cell.contentView addSubview:vendorLbl]; UILabel * columnLbl = [[UILabel alloc] initWithFrame:CGRectMake(80, 2, 10, 39)]; columnLbl.backgroundColor = [UIColor clearColor]; [columnLbl setText:@":"]; [cell.contentView addSubview:columnLbl]; UILabel * vendorValueLbl = [[UILabel alloc] initWithFrame:CGRectMake(98, 2, 195, 39)]; [[vendorValueLbl layer] setCornerRadius:5.0f]; //[vendorLbl setFont:[UIFont fontWithName:@"Helvetica-Bold" size:13.0]]; vendorValueLbl.backgroundColor = [UIColor clearColor]; [vendorValueLbl setText:[theDataObject.gallonsTableAry objectAtIndex:indexPath.section]]; [cell.contentView addSubview:vendorValueLbl]; } if (indexPath.row==2) { UILabel * vendorLbl = [[UILabel alloc] initWithFrame:CGRectMake(10, 2, 60, 39)]; [[vendorLbl layer] setCornerRadius:5.0f]; //[vendorLbl setFont:[UIFont fontWithName:@"Helvetica-Bold" size:13.0]]; vendorLbl.backgroundColor = [UIColor clearColor]; [vendorLbl setText:@"Route"]; [cell.contentView addSubview:vendorLbl]; UILabel * columnLbl = [[UILabel alloc] initWithFrame:CGRectMake(80, 2, 10, 39)]; columnLbl.backgroundColor = [UIColor clearColor]; [columnLbl setText:@":"]; [cell.contentView addSubview:columnLbl]; UILabel * vendorValueLbl = [[UILabel alloc] initWithFrame:CGRectMake(98, 2, 195, 39)]; [[vendorValueLbl layer] setCornerRadius:5.0f]; //[vendorLbl setFont:[UIFont fontWithName:@"Helvetica-Bold" size:13.0]]; vendorValueLbl.backgroundColor = [UIColor clearColor]; [vendorValueLbl setText:[theDataObject.routeTableAry objectAtIndex:indexPath.section]]; [cell.contentView addSubview:vendorValueLbl]; } if (indexPath.row==3) { UILabel * vendorLbl = [[UILabel alloc] initWithFrame:CGRectMake(10, 2, 60, 39)]; [[vendorLbl layer] setCornerRadius:5.0f]; //[vendorLbl setFont:[UIFont fontWithName:@"Helvetica-Bold" size:13.0]]; vendorLbl.backgroundColor = [UIColor clearColor]; [vendorLbl setText:@"Date"]; [cell.contentView addSubview:vendorLbl]; UILabel * columnLbl = [[UILabel alloc] initWithFrame:CGRectMake(80, 2, 10, 39)]; columnLbl.backgroundColor = [UIColor clearColor]; [columnLbl setText:@":"]; [cell.contentView addSubview:columnLbl]; UILabel * vendorValueLbl = [[UILabel alloc] initWithFrame:CGRectMake(98, 2, 195, 39)]; [[vendorValueLbl layer] setCornerRadius:5.0f]; //[vendorLbl setFont:[UIFont fontWithName:@"Helvetica-Bold" size:13.0]]; vendorValueLbl.backgroundColor = [UIColor clearColor]; [vendorValueLbl setText:[theDataObject.dateTableAry objectAtIndex:indexPath.section]]; [cell.contentView addSubview:vendorValueLbl]; } } return cell; } 

只需将dequeueReusableCellWithIdentifier设置为像下面那样

 UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier: nil];