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