1

在此处输入图像描述

它有我不想显示的第一行和第三行。我发现了同样的问题,但他(她)和我没有同样的问题,我无法解决问题。使用 iPad(ios 6)它工作正常,但这个错误发生在 iPad(ios7)上。这里是我的代码:

 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return (calEnabled.boolValue ? 2 : 1);
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    if (section == 0)
        return 1;

    if (calEnabled.boolValue) {
        return (reminderEnabled.boolValue ? 2 : 1);
    }

    return 0;
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (indexPath.section == 0 || indexPath.row == 0) {
        return 44;
    }

    return 200;
}

// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tabView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    CallSettingsTableViewCell* sourceCell = [tabView dequeueReusableCellWithIdentifier:@"VMSettingsTabCell_ID"];
    if (sourceCell == nil) {
        sourceCell = [[CallSettingsTableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"VMSettingsTableCell_ID"];
    }

if (indexPath.section == 0)
{
    sourceCell.textLabel.text = calEnabled.title;
    sourceCell.accessoryView = calEnabled.ui_switch;
}
else if (indexPath.row == 0)
{
    sourceCell.textLabel.text = reminderEnabled.title;
    sourceCell.accessoryView = reminderEnabled.ui_switch;
}
else
{
    [sourceCell disableRightSwipe];
    sourceCell.textLabel.text = calReminder.title;
    sourceCell.accessoryView = calReminder.ui_picker;
}

sourceCell.accessoryType = UITableViewCellAccessoryNone;
sourceCell.selectionStyle = UITableViewCellSelectionStyleNone;

return sourceCell;
}

很高兴帮我解决它。预先感谢。

4

2 回答 2

2

尝试添加下面的代码以删除部分之间的空间,或者您可以简单地尝试使用 UITableViewStylePlain 而不是 UITableViewStyleGrouped。

-(CGFloat)tableView:(UITableView*)tableView heightForHeaderInSection:(NSInteger)section
{
    return 0.001;
}


-(CGFloat)tableView:(UITableView*)tableView heightForFooterInSection:(NSInteger)section
{
    return 0.001;
}

-(UIView*)tableView:(UITableView*)tableView viewForHeaderInSection:(NSInteger)section
{
    return [[[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, 0)] autorelease];
}

-(UIView*)tableView:(UITableView*)tableView viewForFooterInSection:(NSInteger)section
{
    return [[[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, 0)] autorelease];
}
于 2013-10-23T09:26:33.227 回答
0

改变这个

  - (UITableViewCell *)tableView:(UITableView *)tabView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        CallSettingsTableViewCell* sourceCell = [tabView dequeueReusableCellWithIdentifier:@"VMSettingsTabCell_ID"];
        if (sourceCell == nil) {
            sourceCell = [[CallSettingsTableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"VMSettingsTableCell_ID"];
        }

    if (indexPath.row == 0)
    {
        sourceCell.textLabel.text = calEnabled.title;
        sourceCell.accessoryView = calEnabled.ui_switch;
    }
    else if (indexPath.row == 1)
    {
        sourceCell.textLabel.text = reminderEnabled.title;
        sourceCell.accessoryView = reminderEnabled.ui_switch;
    }
    else
    {
        [sourceCell disableRightSwipe];
        sourceCell.textLabel.text = calReminder.title;
        sourceCell.accessoryView = calReminder.ui_picker;
    }

    sourceCell.accessoryType = UITableViewCellAccessoryNone;
    sourceCell.selectionStyle = UITableViewCellSelectionStyleNone;

    return sourceCell;
    }
于 2013-10-23T08:53:01.560 回答