静态单元格的内容没有出现UITableView

时间:2014-08-07 20:32:12

标签: ios objective-c uitableview xcode6

我有一个UITableViewController,它有一个带有静态单元格的表视图。我添加了一些服装单元格,其中包含UIImageViewUILabel。 xcode故事板中的一切看起来都很好:enter image description here

因为单元格是静态的,所以我不在这里实现数据源方法我的代码用于表视图控制器:

    #import "MainTableViewController.h"

    @interface MainTableViewController ()

    @end

    @implementation MainTableViewController

    - (void)viewDidLoad {
        [super viewDidLoad];
    }

    - (void)didReceiveMemoryWarning {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    @end

但是当我在模拟器中运行代码时,单元格'内容不会出现: enter image description here

这里是场景层次结构:

enter image description here

8 个答案:

答案 0 :(得分:19)

UITableView,静态单元格也没有显示给我 - 我试图删除并重新添加segue。一切都设置得很好。诀窍....

诀窍是从UITableViewController子类中删除以下行,单元格和节方法。它们由Xcode自动添加,但如果您使用的是静态单元格,则不需要它们在您的课程中。

– (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

– (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

– (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

删除这些方法后,您的单元格将正确显示。

答案 1 :(得分:5)

我认为你有限制问题!如果您对单元格内的元素有错误的约束,则不会显示元素!

答案 2 :(得分:4)

请确保您已选择" Static Cells"在表格视图的内容选项中

TableView

答案 3 :(得分:2)

  

我有一个带有静态单元格的表格视图的UITableViewController

您确定静态表格单元格位于UITableViewController内,而不是UIViewController中嵌入的UITableView吗? Storyboard将允许您将表格单元格添加到嵌入在标准视图控制器中的表格视图中,但这不会在运行时工作。根据ios的版本,您可能会或可能不会收到错误。如果答案是肯定的,那么您需要将静态表格单元格直接添加到UI **表**查看**控制器**。

答案 4 :(得分:2)

我遇到了同样的问题。如果您有自定义TableViewController但TableViewCell样式未设置为自定义,则会发生这种情况。  我通过将UITableViewController从我的自定义控制器更改为通用控制器来解决这个问题。我的猜测是,如果控制器是自定义的,那么我们就是说我们将以编程方式提供数据,以便不显示故事板数据。必须要离开它,但我对iOS来说太新了,无法进行调查。此外,对于原型设计,通用的UITableViewController工作得很好。 所以: 转到"主表视图控制器" 选择身份检查器。 将类从自定义类更改为UITableViewController

或者使用自定义控制器,但在“属性”检查器中将“TableViewCell.Style”更改为“自定义”

答案 5 :(得分:0)

您是否已将dataSource的{​​{1}}和delegate设置为UITableViewController

答案 6 :(得分:0)

这些天我遇到了同样的问题。正如Aryan所提到的,我必须在UISplitViewController的主视图中为标签添加约束。否则,内容不是“disappear”,而是在tableview单元格的左侧,它不在屏幕边界。设置尾部边距为superview为我工作。

答案 7 :(得分:-3)

在Storyboard中创建原型很好,但是你仍然需要在运行时通知单元格的tableView属性。

为此,您需要使用reuseIdentifier命名每个单元格:

enter image description here

然后在代码中明确命名每个重用标识符:

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];

你的问题在于你没有实现dataSource,它完全符合标题:提供数据。

祝你好运