UITableViewCellAccessoryCheckmark涵盖iOS 7上的单元格分隔符

前端之家收集整理的这篇文章主要介绍了UITableViewCellAccessoryCheckmark涵盖iOS 7上的单元格分隔符前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在iOS 7上使用此代码会导致分隔符视图被覆盖或缩短:
cell.accessoryType = UITableViewCellAccessoryCheckmark;

如何修复分隔符视图?

我正在使用原型单元格,但我不是它们的子类.

[编辑]

以下是cellForRowAtIndexPath的相关代码

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier forIndexPath:indexPath];

if (indexPath.section == kDefaultViewSection){
    NSArray *defaultViewNames = @[LQSettingsSentenceView,LQSettingsFullTextView,LQSettingsFlashcardsView];
    NSString *preferredViewName = [LQSettings valueForKey:LQSettingsPreferredLessonView];
    if ([defaultViewNames[indexPath.row] isEqualToString:preferredViewName]){
        cell.accessoryType = UITableViewCellAccessoryCheckmark;
    } else {
        cell.accessoryType = UITableViewCellAccessoryNone;
    }
}



- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    [tableView deselectRowAtIndexPath:indexPath animated:YES];
    if (indexPath.section != kDefaultViewSection){
        return;
    }

    // Just turn all checks off for a minute
    for (int x=0; x<3; x++) {
        NSIndexPath *ip = [NSIndexPath indexPathForRow:x inSection:kDefaultViewSection];
        UITableViewCell *cell = [tableView cellForRowAtIndexPath:ip];
        cell.accessoryType = UITableViewCellAccessoryNone;
    }

    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    cell.accessoryType = UITableViewCellAccessoryCheckmark;    
}

解决方法

在我的情况下,我已经禁用了系统提供的分隔线,并在单元格的xib中添加了我的自定义分隔线.有时正确的选中标记覆盖了底部分隔线的部分.我为解决问题所做的是我已经更改了尾随约束到单元格而不是contentView. [不是超级视图]

猜你在找的iOS相关文章