自定义的UITableViewCell,表格无法滚动到底部。
自定义的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; }
问题原因:没有正确设置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,或者您可以发布应用程序的屏幕截图以供参考。