1

通过为主表视图创建自定义单元格,我在表视图的每个单元格中都有一个表视图。问题是我可以看到除第一个索引路径之外的所有索引路径的表视图内容。如果我滚动表格视图以使第一个单元格离开屏幕并向后滚动第一个单元格,则显示第一个单元格中的内容。

请在下面找到我的代码

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

    return [itemArray count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier=@"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
        cell.textLabel.lineBreakMode = UILineBreakModeWordWrap;
        cell.textLabel.numberOfLines = 0;
        cell.textLabel.font = [UIFont fontWithName:@"Helvetica" size:17.0];
    }
    for (int i=0; i<[itemArray count]; i++) {
        ////NSLog(@"row is %d",i);
        if (indexPath.row==i) {
            cell.textLabel.text=[itemArray objectAtIndex:i];
        }
    }
    return cell;
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;
}

谁能告诉我为什么会这样。我也希望在屏幕上看到第一个单元格的内容。

4

2 回答 2

1
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

    return [itemArray count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier=@"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
        cell.textLabel.lineBreakMode = UILineBreakModeWordWrap;
        cell.textLabel.numberOfLines = 0;
        cell.textLabel.font = [UIFont fontWithName:@"Helvetica" size:17.0];
    }
    // why are you using this code in for loop ??
    /*
    for (int i=0; i<[itemArray count]; i++) {
        ////NSLog(@"row is %d",i);
        if (indexPath.row==i) {
            cell.textLabel.text=[itemArray objectAtIndex:i];
        }
    }
    */
    cell.textLabel.text=[itemArray objectAtIndex:indexPath.row];
    return cell;
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;
}
于 2013-08-30T12:14:28.053 回答
0

请按如下方式更新以下方法。它可能会帮助你。并且请确保您在添加对象后重新加载表格视图itemArray

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

static NSString *CellIdentifier = @"Cell";
// add a placeholder cell while waiting on table data
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil] autorelease];
    }
    cell.textLabel.lineBreakMode = UILineBreakModeWordWrap;
    cell.textLabel.numberOfLines = 1;
    cell.textLabel.font = [UIFont fontWithName:@"Helvetica" size:17.0];
    cell.textLabel.text=[[[DataManager GetInstance]getCurrentTableContent] objectAtIndex:indexPath.row];
}

return cell;
于 2013-08-30T07:45:45.923 回答