iOS 程序化分组表为空

Posted

技术标签:

【中文标题】iOS 程序化分组表为空【英文标题】:iOS programmatic grouped table empty 【发布时间】:2013-01-30 15:43:21 【问题描述】:

我有一个以编程方式实现的 tableView,采用分组样式。

我得到的只是应该填充的灰色细条纹。所以它正在加载,但不是......什么......

还需要什么? 如果没有,那我还应该去哪里看?

另外,如何使表格的背景颜色与单元格的白色相同?

- (void)loadView 

    [super loadView];

    UITableView *view = [[UITableView alloc] initWithFrame:[UIScreen mainScreen].applicationFrame style:UITableViewStyleGrouped];

    [view setAutoresizingMask:UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth];

    self.view = view;

    [view reloadData];


是否需要 viewDidLoad?

- (void)viewDidLoad

    [super viewDidLoad];
    // Do any additional setup after loading the view.

谢谢你,

莫克罗姆

【问题讨论】:

【参考方案1】:

你必须为你的 tableView 提供数据。

对于声明者,您需要定义一个dataSource。通常只使用您的 viewController 作为数据源。

// in the .h find something similar and add <UITableViewDataSource>
@interface ViewController : UIViewController <UITableViewDataSource>

然后当你制作 tableView 时。

view.datasource = self;

然后您需要自己提供数据。实现这些方法:

#pragma mark - UITableView Datasource

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

    return 3;


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

    return 3;


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

    static NSString *cellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];

    if (!cell) 
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
    

    [cell.textLabel setText:@"A Cell"];

    return cell;

这些方法将创建 3 个部分,每个部分有 3 行。所有的细胞都会说一个细胞。这是所有 tableViews 的基础。只需自定义数据:)

【讨论】:

只是为了好玩,如果数据源是其他类呢? 没问题。只要其他类有&lt;UITableViewDataSource&gt;,您只需要设置您的view.datasource = THATCLASS,它就可以正常工作。【参考方案2】:

您需要为表格视图设置 dataSource 和委托属性,以便它能够从中提取数据:

UITableView *view = ...
view.dataSource = self;
view.delegate = self;

【讨论】:

【参考方案3】:

在 .h 文件中有协议,并将委托和源附加到文件所有者

【讨论】:

以上是关于iOS 程序化分组表为空的主要内容,如果未能解决你的问题,请参考以下文章

gridcontrol从表为空时如何显示

如果表为空,则插入多条记录

线性表练习之Example039-删除循环单链表中的所有最小值节点直至链表为空

Sequelize 检查表为空

Jquery 验证 - 如果表为空

为啥 INSTEAD OF UPDATE 触发器的 INSERTED 表为空?