0

我有一个UITableview偶尔会在最后一条记录下方加载空白。在下面的屏幕截图示例中,仅返回 9 个结果,表格应在最后一行结束。相反,表格中有相当多的滚动空白。如果我然后重新加载表格,那又可以了。它很少发生,我不知道问题可能是什么。

仅当您通过选择表格行从该视图控制器移动到详细视图时才会发生这种情况。当您返回到第一个带有表格的 vc 时,空白就在那里。

这是它的截图:

有 9 个结果。我滚动到 9 个结果的末尾(底部的黑色矩形是第 9 行),然后滚动到其下方的空白处。您可以从滚动条中看到有多少空白。

在此处输入图像描述

这是我创建单元格的方式:

  - (UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *simpleTableIdentifier = @"SimpleTableCell";

    tableCell *cell = (tableCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
    if (cell == nil)
    {

    NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"tableCell" owner:self options:nil];
    cell = [nib objectAtIndex:0];

    cell.selectedBackgroundView = [[UIView alloc] initWithFrame:CGRectZero];

    cell.selectedBackgroundView.backgroundColor = [UIColor colorWithRed:204.0/255.0 green:56.0/255.0 blue:55.0/255.0 alpha:1];

    cell.accessoryView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"arrowDisclosure.png"]];

    cell.descriptionLabel.numberOfLines = 0;

    [cell.titleLabel setFont:[UIFont fontWithName: @"Asap-Bold" size: 15.0f]];
    [cell.descriptionLabel setFont:[UIFont fontWithName: @"Asap-Regular" size: 10.0f]];
    [cell.priceDealLabel setFont:[UIFont fontWithName: @"Asap-Bold" size: 15.0f]];
    [cell.oldPriceDealLabel setFont:[UIFont fontWithName: @"Asap-Bold" size: 8.0f]];
    [cell.discountDealLabel setFont:[UIFont fontWithName: @"Asap-Bold" size: 12.0f]];

    [cell.ratingsNumberLabel setFont:[UIFont fontWithName: @"Asap-Regular" size: 9.0f]];
    [cell.amountLabel setFont:[UIFont fontWithName: @"Asap-Regular" size: 9.0f]];

}

它发生在执行搜索之后,触摸一行以移动到详细视图,然后在返回到表视图时,空白就在那里。

我有这个。看起来我在两种键盘方法中都有相同的帧代码。会是这样吗?

    -(void) keyboardShown:(NSNotification *)note {

    CGRect keyboardFrame;
    [[[note userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] getValue:&keyboardFrame];
    CGRect tableViewFrame = self.tableView.frame;
    tableViewFrame.size.height -= keyboardFrame.size.height;
    [self.tableView setFrame:tableViewFrame];

    self.tableView.frame = CGRectMake(0, 100,320, 333); // displaying results after keyboard shown.

}
-(void)keyboardHidden:(NSNotification *)note {

    self.tableView.frame = CGRectMake(0, 100,320, 333); // displaying results after keyboard is hidden. 

}
4

0 回答 0