静态单元格:不显示内容

时间:2012-06-28 06:02:55

标签: ios xcode xcode4.2 storyboard

我只想拥有一个包含项目的静态表视图。我使用Xcode 4.2和storyboard来完成这项任务。所以我用tableViewController(子类UITableViewController)创建了一个TableView。我将内容定义为“静态单元格”和样式“分组”。

之后我把一些标签和我想要的所有物品放在那些单元格中。我在tableViewController中创建了Outlets:

#import <UIKit/UIKit.h>

@interface tableviewcontroller : UITableViewController
@property (weak, nonatomic) IBOutlet UILabel *label1;
@property (weak, nonatomic) IBOutlet UILabel *label2;
@property (weak, nonatomic) IBOutlet UISegmentedControl *segmented;
@property (weak, nonatomic) IBOutlet UIImageView *imageview;
@property (weak, nonatomic) IBOutlet UITextView *text;

@end

在细胞标签中加入一些内容:

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.label1.text = @"This is a title";
    self.label2.text = @"Annika";
    self.imageview.image = [UIImage imageNamed: @"picture.jpg"];
}

在构建和运行之后,它没有向我显示任何元素......我做错了什么?

左:在故事板中,右:在模拟器中。 enter image description here

1 个答案:

答案 0 :(得分:13)

对于静态表视图,您不得实现任何数据源方法。 UITableViewController的基本实现有自己的这些方法版本,通过读取storyboard文件返回相应的内容。这些方法是提供表格内容的方法,例如, numberOfRows,numberOfSections,heightForRow,cellForRow等等。

在您的情况下,您实施了tableView:cellForRowAtIndexPath:并且每次都返回空单元格。这意味着你的细胞大小是正确的,但内容已经消失。

此外,在调用 [super viewWillAppear:animated]之前,静态表视图中的内容出口都不会设置。它们在viewDidLoad中仍然是nil,你在那里调用它们,因为表视图在那时没有询问它的任何内容。