0

我通过 Storyboard 在“表单”视图控制器中添加了一个 UITableView。我已将此 UITableView 连接到头文件中的 IBOutlet。我还控制+单击将 UITableView 连接到数据源和视图控制器的委托出口(以前是文件所有者预故事板)。

委托方法 numberOfSectionsInTableView、numberOfRowsInSection 和 heightForRowAtIndexPath 都被调用,但是这些方法中的 UITableView 实例为 nil。此外,永远不会调用 cellForRowAtIndexPath。当然,没有表格被填充/显示。

这是我通过 Storyboard 尝试的第一个 UITableView。使用 XIB,我只需将插座连接到 File's Owner,一切都很好。可能出了什么问题?

代码:

头文件

@interface LoginPopupViewController : UIViewController <UITextFieldDelegate, UITableViewDataSource, UITableViewDelegate> {
    IBOutlet UITableView *loginTable;
}

委托实现

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

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{    
    return 44.0;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return 2;
}
4

1 回答 1

0

似乎通过将原型 UITableView 的高度调整为更小,它使代码认为它太小而无法添加单元格,即使它很容易适合必要的 2 个原型单元格。我添加了一个默认高度的新 UITableView 并且一切正常。我猜你不能调整 UITableViews 的大小。

您绝对可以调整表格视图的大小。简而言之,您需要修复支柱和弹簧(如果您使用自动布局,则需要修复约束)。

详细地说,我相当肯定这是以下(易于验证)条件的组合:

  1. 您的视图控制器在情节提要中的模拟指标高于设备(或模拟器设备设置)。例如,如果情节提要正在模拟 4 英寸 iPhone,而您正在 3.5 英寸 iPhone 上进行测试。
  2. 您的表格视图的支柱和弹簧是固定的上边距、固定的下边距、灵活的高度(或等效的自动布局约束)。这是默认的故事板行为。
  3. 表格视图的高度小于视图控制器的模拟高度和实际高度之差。

当以上所有条件都成立时,表格视图将被调整为零高度以尝试保留顶部和底部边距。只需调整支柱和弹簧(或约束)以保持高度即可解决。例如,尝试关闭灵活高度。

于 2013-07-10T17:33:25.457 回答