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”行为的主要内容,如果未能解决你的问题,请参考以下文章
ARKit 是不是考虑 iPhone 和 iPad 中的镜头失真?
应用程序在所有 iphone 和 ipad 型号中的外观如何相同
SwiftUI:单一目标中的 iPhone、iPad、Mac