【问题标题】:Static cells: Content does not appear静态单元格:内容不出现
【发布时间】:2012-06-29 15:10:40
【问题描述】:

我只是想要一个包含项目的静态表视图。我使用带有情节提要的 Xcode 4.2 来完成这项任务。所以我用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"];
}

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

左:在故事板中,右:在模拟器中。

【问题讨论】:

  • 你有没有在单元格中输入任何信息?
  • 是的,至少对于标签和图片而言。 (见上文,我编辑了我的问题!)但是虽然我不会在单元格中放置任何信息,但它至少应该向我显示分段控件?
  • 肯定是tableviewcontroller有问题。我意识到当我没有控制器时会查看我的标签。所以也许tableviewcontroller中的内容必须有一个隐式声明。

标签: ios xcode xcode4.2 storyboard


【解决方案1】:

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

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

此外,在调用[super viewWillAppear:animated] 之前 之前,不会设置静态表格视图中的任何内容出口。它们在 viewDidLoad 处仍为 nil,您从那里调用它们,因为此时表视图尚未要求任何内容。

【讨论】:

  • 好的,所以我必须在- (void)viewWillAppear:(BOOL)animated 中设置所有网点。像[self setLabel1:nil]; 这样的东西?但不是设置为零。如果那是正确的,我要写什么而不是nil?对不起,我真是个该死的初学者。
  • 问题中的代码没问题,只是放错地方了!
  • 很高兴听到。我现在把self.Label1.text = @"This is a title"; etc. 放在每一个可能的部分......在- (void)viewDidLoad , in - (void)viewWillAppear:(BOOL)animated,在- (void)viewDidAppear:(BOOL)animated 但它仍然不想被查看:( 我没有足够的知识来判断它应该放在哪里。这也许就是我将代码随机放置在每个可能的地方的原因。
  • 如果您仍然看到单元格轮廓但没有内容,则您的视图控制器子类或连接出现问题。确保表的委托和数据源链接到视图控制器,检查调试器以查看实际调用了哪些方法,如果所有其他方法都失败,请将代码发布到 pastebin 或 GitHub 并在其中添加链接这个问题。我见过人们做静态表格,其中 nothing 出现,但只是为了获得没有内容的单元格轮廓是一个新表格。
  • 就像我在原始答案中所说的那样。对于静态单元格,您不得实现任何数据源方法,否则会覆盖情节提要中的内容。删除你的 numberOfRows、numberOfSections 和 cellForRow 方法。对于静态单元格,这些单元格由 UITableViewController 中的基本实现填充。
猜你喜欢
  • 1970-01-01
  • 2012-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-09
  • 1970-01-01
相关资源
最近更新 更多