繁体   English   中英

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

[英]Content of static cells not appearing UITableView

我有一个UITableViewController ,它有一个带静态单元格的表视图。 我添加了一些带有UIImageViewUILabel服装单元格。 xcode故事板中的一切看起来都很好: 在此输入图像描述

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

    #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

但是当我在模拟器中运行代码时,单元格的内容将不会出现: 在此输入图像描述

这是场景层次结构:

在此输入图像描述

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

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

– (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

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

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

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

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

请确保您在表格视图的内容选项中选择了“静态单元格”

的TableView

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

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

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

或者使用自定义控制器,但在Attributes Inspector中将TableViewCell.Style更改为Custom

您是否将dataSourceUITableViewControllerdelegateself

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

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

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

在此输入图像描述

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

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

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

祝好运

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM