静态单元格:不显示内容

Kir*_*iki 3 xcode storyboard ios xcode4.2

我只想要一个包含项目的静态表视图.我使用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
Run Code Online (Sandbox Code Playgroud)

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

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.label1.text = @"This is a title";
    self.label2.text = @"Annika";
    self.imageview.image = [UIImage imageNamed: @"picture.jpg"];
}
Run Code Online (Sandbox Code Playgroud)

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

左:在故事板中,右:在模拟器中. 在此输入图像描述

jrt*_*ton 13

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

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

此外,没有网点的内容在静态表视图将被设置到之后 [super viewWillAppear:animated]被调用.它们仍然是viewDidLoad中的nil,你在那里调用它们,因为表视图在那时没有询问它的任何内容.

  • 这就像我在原始答案中所说的那样.对于静态单元,您不得实现任何数据源方法,否则将覆盖故事板中的内容.删除numberOfRows,numberOfSections和cellForRow方法.对于静态单元,这些由UITableViewController中的基本实现填充. (3认同)