Tag: ios8

objectiv c – iOS 8 UITableView分隔符插入0不起作用

我有一个应用程序,其中UITableView的分隔符插入设置为自定义值 – 右0,左0。这完美地工作iOS 7.x,但在iOS 8.0我看到分隔符插入设置为15右侧的默认值。即使在它设置的xib文件中0,它仍然显示不正确。 如何删除UITableViewCell分隔符边距? iOS 8.0在单元格和表视图上引入了layoutMargins属性。 此属性在iOS 7.0上不可用,因此您需要确保在分配之前进行检查! 此外,Apple已向您的单元格添加了一个属性,以防止它继承您的表格视图的边距设置。设置此属性后,您的单元格可以独立于表视图配置自己的边距。把它想象成一个覆盖。 调用此属性preservesSuperviewLayoutMargins,并将其设置为NO允许单元格的layoutMargin设置覆盖layoutMarginTableView上设置的任何内容。它既节省了时间(您不必修改表视图的设置),而且更简洁。有关详细说明,请参阅Mike Abdullah的回答。 注意:以下是针对单元级边距设置的简洁实现,如Mike Abdullah的回答所述。设置单元格的preserveSuperviewLayoutMargins = NO将确保您的表视图不会覆盖单元格设置。如果您确实希望整个表格视图具有一致的边距,请相应地调整您的代码。 设置细胞边距: -(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { // Remove seperator inset if ([cell respondsToSelector:@selector(setSeparatorInset:)]) { [cell setSeparatorInset:UIEdgeInsetsZero]; } // Prevent the cell from inheriting the Table View's margin settings if ([cell respondsToSelector:@selector(setPreservesSuperviewLayoutMargins:)]) { [cell setPreservesSuperviewLayoutMargins:NO]; } //