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. [不是超级视图]

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...