ipad 和 iPhone 中的 UITableView “separatorStyle”行为

Posted

技术标签:

【中文标题】ipad 和 iPhone 中的 UITableView “separatorStyle”行为【英文标题】:UITableView "separatorStyle" behavior in ipad and iPhone 【发布时间】:2015-11-09 13:48:57 【问题描述】:
_studentListTableView.separatorStyle =UITableViewCellSeparatorStyleSingleLine;
_studentListTableView.separatorColor = [UIColor redColor];

上面的代码在 iPhone 中运行良好,但在 iPad 中,在下面的屏幕截图中显示的左右边距中显示了更多空间,这是 iPad 中的默认行为吗?也使用 SeparatorInset 为 tableview 是 UIEdgeInsetsZero 虽然左侧显示更多空间。


这里绿色是tableview,红色是分隔符颜色,灰色是单元格颜色

ipad


为什么这种行为会在 iPad 中发生?

注意:在 iPhone 中它可以正常工作。

下面是“cellForRowAtIndexPath”代码

NSString *reuseIdentifier = [NSString stringWithFormat:@"%ld_%ld",(long)indexPath.section,(long)indexPath.row];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:reuseIdentifier];
if(cell == nil)

     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:reuseIdentifier];

cell.backgroundColor = [UIColor grayColor];
cell.textLabel.text =  [NSString stringWithFormat:@"Student %li",(long)indexPath.row];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
return cell;

【问题讨论】:

【参考方案1】:

嗯,你用的是ios9吗? iOS9中的TableView其实是有一些技巧的。

在 iOS 9 中,UITableView 的单元格自动边距为“可读内容”,这可能会导致空间边距。

为避免这种情况,只需设置 tableView.cellLayoutMarginsFollowReadableWidth = NO

【讨论】:

顺便说一下,您可以创建与数据对象一样多的单元格对象。根据 indexpath 制作重用标识符是不好的。重用标识符用于识别 特定种类 Cell。在您的情况下,@"studentCell" 字符串(或任何其他)都可以.

以上是关于ipad 和 iPhone 中的 UITableView “separatorStyle”行为的主要内容,如果未能解决你的问题,请参考以下文章

iPad 和 iPhone 应用程序中的内存泄漏

ARKit 是不是考虑 iPhone 和 iPad 中的镜头失真?

应用程序在所有 iphone 和 ipad 型号中的外观如何相同

SwiftUI:单一目标中的 iPhone、iPad、Mac

使用 iPhone/iPad 中的加速度计进行水平和垂直抖动计数

使用 iPhone 和 iPad 的 Safari 中的传单地图问题