我正在制作一个使用 UITableView 的新 iOS 项目。当我实现 heightForRowAtIndexPath 时,单元格都在彼此之上绘制,如屏幕截图所示。
如果我不实现 heightForRowAtIndexPath 例程,单元格绘制正常(即使它们不是完全正确的高度)。实现 heightForRowAtIndexPath 会触发透支行为。
我之前已经多次实现表格和单元格,但没有看到这个问题。与我之前的项目相比,这个项目对我来说有两件新的事情:
我从 UIView 模板开始,它给了我一个故事板作为根视图。出现问题的视图是非故事板视图控制器。我以前一直有一个 XIB 作为根。我不知道这是否或如何与此相关。
这个项目启用了尺寸类,在此之前我一直只使用 iPhone 或 iPad 目标项目。
即使很无聊,我也会附上我的代码:
-(float) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return 44.0;
}
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *MyIdentifier=@"MyCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:MyIdentifier];
}
cell.textLabel.text = @"Cell title";
return cell;
}
Run Code Online (Sandbox Code Playgroud)
谁有想法?
编辑:下面有人提到这不是给出的代码的屏幕截图,这是真的。我会附上那个屏幕截图——这个截图是在模拟器中截取的,我把桌子拉下来了一些,这条线在桌子的最顶部。以这种方式分配的单元格有点难以捕捉。其他人提到它看起来像单元格高度为 0,我相信这是真的。我只是不知道它是如何从 44 变为 0 的,也不知道如何检查它。当我分配单元格时,单元格的边界/高度是 44(我知道通过我输入的一些调试代码)。
我还编辑了代码以指出我根据建议调用了 initWithStyle - 这没有任何效果。