NumberOfRowsInSection中的UITableView为零 - 不显示任何表

时间:2013-07-09 22:38:46

标签: ios objective-c uitableview uistoryboard xcode4.6

我已经通过Storyboard在“Form Sheet”视图控制器中添加了一个UITableView。我已将此UITableView连接到头文件中的IBOutlet。我还控制+单击将UITableView连接到dataSource并委托视图控制器的出口(以前是文件所有者预演示板)。

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

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

CODE:

头文件

@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;
}

1 个答案:

答案 0 :(得分:0)

  

看起来通过调整原型UITableView的高度,它使得代码认为它太小而无法添加单元格,即使它很容易适合必要的2个原型单元格。我添加了一个默认高度的新UITableView,一切正常。我想你无法调整UITableViews的大小。

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

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

  1. 您的视图控制器在故事板中的模拟指标高于设备(或模拟器设备设置)。例如,如果故事板模拟4“iPhone并且您正在测试3.5”iPhone。
  2. 你的桌面视图的支柱&amp;弹簧是固定的上边距,固定的下边距,灵活的高度(或等效的自动布局约束)。这是默认的故事板行为。
  3. 表格视图的高度小于视图控制器的模拟高度和实际高度的差异。
  4. 如果满足以上所有条件,则表格视图将调整为零高度以尝试保留顶部和底部边距。只需调整您的支柱和保持高度的弹簧(或约束)将解决它。例如,尝试关闭弹性高度。