假设我有一个带有两个部分的UITableView。如果该部分的数据源为空,我想显示一个带有文本“Section Name is empty”的占位符单元格。

我怎样才能做到这一点?


- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
    if(section == 1)
    {
        return @"Section One";
    }
    if(section == 0)
    {
        return @"Section Two";
    }
    return @"";
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    if (section == 1)
    {
        return self.sectionOne.count;
    }
    else
    {
        return self.sectionTwo.count;
    }
}

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

    NSArray *theSource =[[NSArray alloc] init];

    if(indexPath.section == 1)
    {
        theSource = self.sectionOne;
    }
    else
    {
        theSource = self.sectionTwo;
    }

    // See if there's an existing cell we can reuse
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"CellIdentifier"];
if (cell == nil)
    {
        // No cell to reuse => create a new one
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"CellIdentifier"];
        cell.backgroundView = [[UIImageView alloc] init];
        // Continue creating cell
        }
  }

最佳答案

在UITableViewDataSource(伪代码)中实现以下功能:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    if (datasource == empty)
        return 1;
    else
        return [datasource count];
}

和:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (datasource == empty)
         return stub cell;
    else
         return regular cell;
}

关于ios - UITableView中的占位符单元格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10340376/

10-10 22:36