自定义的UITableViewCell,表格无法滚动到底部。

8 浏览
0 Comments

自定义的UITableViewCell,表格无法滚动到底部。

我需要为显示房地产建立一个类似Airbnb的表格索引,为此我定制了一个原型UITableViewCell,高度为200,并添加了两个自定义标签(使用Storyboard创建)和一个背景图片(以编程方式添加)。所有这些都是覆盖在使用Storyboard添加的TableViewController上的。

数据是从一个JSON文件中获取的,包含10个项目。但在iPhone模拟器(4英寸)上:

a)它无法滚动到第四个项目之后。我只能看到第三个项目的上半部分。如何使它能够滚动到最后一个项目的底部?

b)表格重叠在iPhone顶部的状态栏上(包括电池和网络状态)。Storyboard不允许调整TableView的大小以排除顶部或底部的任何填充。如何在表格的顶部和底部留出一些填充空间?

这是我的MainViewcontroller.m中的cellForRowAtIndexPath:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    RealEstateTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
    RealEstate *estate = [self.allEstate objectAtIndex:indexPath.row];
    [self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleSingleLineEtched];
    
    cell.titleLabel.text = estate.title;
    cell.infoLabel.text = [NSString stringWithFormat:@"%@ | %@", [properties formattedDate], [estate organiser]];
    
    NSURL *url = [NSURL URLWithString:estate.photoURL];
    NSData *data = [NSData dataWithContentsOfURL:url];
    UIImage *img = [UIImage imageWithData:data];
    
    [cell.backgroundView setContentMode:UIViewContentModeScaleAspectFill];
    cell.backgroundView = [[UIImageView alloc] initWithImage:img];
    cell.selectedBackgroundView = [[UIImageView alloc] initWithImage:img];
    
    return cell;
}

0
0 Comments

问题的原因可能是模拟器的问题,导致表格无法滚动到底部。解决方法是在实际的iPhone上运行应用程序,这样就不会出现问题。

解决方法:

1. 在Xcode中选择真机设备,而不是模拟器。

2. 将应用程序安装到实际的iPhone设备上。

3. 运行应用程序并测试表格是否可以滚动到底部。

4. 如果应用程序在实际的iPhone上正常运行,那么可以继续在模拟器上进行进一步的构建和测试。

5. 最后,再次在模拟器上运行应用程序,确保它也可以正常工作。

希望这些解决方法能帮助解决问题。

0
0 Comments

问题原因:没有正确设置UITableView的delegate方法heightForRowAtIndexPath,导致UITableViewCell的高度没有正确设置,从而影响了滚动到底部的功能。

解决方法:添加以下UITableView的delegate方法heightForRowAtIndexPath,并设置正确的行高。如果问题仍然存在,可以尝试根据给出的链接中的方法进行解决。如果问题仍然存在,可以尝试增加UITableView的大小(例如,将大小设置为(320,420)),并检查是否显示了完整的tableView。如果问题仍然存在,可以提供应用程序的屏幕截图以供参考。

文章内容如下:

只需确保您添加了以下UITableView的delegate方法:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

{

return 200;

}

对于第二种情况,您可以尝试使用此链接进行解决。谢谢,这个链接显示了整个表格单元。但是我仍然无法滚动超过3个项目。我还做错了什么吗?(请参阅我添加到原始帖子中的代码)。

然后尝试增加TableView的大小,例如将大小设置为(320,420);也许这样可以解决问题。您是否可以看到完整的tableView,或者您可以发布应用程序的屏幕截图以供参考。

0