任何想法如何解决这个奇怪的uitableview分隔线格式问题

时间:2014-02-27 19:05:40

标签: ios objective-c uitableview ios7

我正在附上一张图片,因为这有点难以解释,我还嘲笑了我真正想要它的样子。我将尝试解释它,以便其他人可以找到问题。

也许你以前遇到过这种情况并且知道修复?

以下是我所拥有的图像以及我想要的模型: enter image description here

在左边,我所拥有的,表格中的项目没有被分隔线分隔,但是空行单元格是分开的。理想情况下,空单元格不会显示,表格只会结束让背景显示,表格中的项目将在其单元格之间有分隔符。

这是相应的代码:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{

    // Return the number of sections.
    return 1;
}

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {

    if (editingStyle == UITableViewCellEditingStyleDelete) {
        // Delete the row from the data source

        NSMutableArray *withoutThing = [NSMutableArray arrayWithArray:self.containerOfLists];
        [withoutThing removeObjectAtIndex:indexPath.row];
        self.containerOfLists = withoutThing;

        [[NSUserDefaults standardUserDefaults] setObject:self.containerOfLists forKey:@"list of lists"];
        [[NSUserDefaults standardUserDefaults] synchronize];
        [self.tableView reloadData];

    }
    else if (editingStyle == UITableViewCellEditingStyleInsert) {
        // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
    }
}

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

    // Return the number of rows in the section.
    return [self.containerOfLists count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"ListCell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

    cell.textLabel.text = self.containerOfLists[indexPath.row];
    return cell;
}

2 个答案:

答案 0 :(得分:1)

确定。 在Storyboard中,选择UITableView,将Separator设置为Single Line,或使用以下代码: [yourTableView setSeparatorStyle:UITableViewCellSeparatorStyleSingleLine];

在你的代码中,做某个地方:
[yourTableView setBackgroundColor:[UIColor lightGrayColor]];
或者你想要的灰色。

将此添加到您的数据源方法(与tableView: cellForRowAtIndexPath相同的级别):

-(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
    return [[UIView alloc] init];
}

答案 1 :(得分:1)

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return 5; //return correct number
}
ViewDidLoad方法调用中

[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleSingleLine];

Init cell:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"ListCell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

if (!cell)
{
    //init the cell!
}

    cell.textLabel.text = self.containerOfLists[indexPath.row];
    return cell;
}