UITableViewCell 在 iOS 7 中左右有额外的间距
Posted
技术标签:
【中文标题】UITableViewCell 在 iOS 7 中左右有额外的间距【英文标题】:UITableViewCell has extra spacing on left and right in iOS 7 【发布时间】:2013-10-25 03:06:21 【问题描述】:我已经使用以下代码修复了分隔符问题:
if([tableView respondsToSelector:@selector(setSeparatorInset:)])
[tableView setSeparatorInset:UIEdgeInsetsZero];
但在ios7中UITableView
和cell.textLabel
或detailTextLabel
的左右边缘之间仍有较大的差距
我有自定义 UITableViewCells,我在其中指定文本标签的位置,因此这会导致标签与 iOS 6 和 7 中的标准单元格不对齐。
有什么想法吗?
【问题讨论】:
能否提供截图? 如何创建自己的自定义单元格?恕我直言,工作量不大。 如果您通过 xcode 4.X 使用它,它将正常工作。它与 Xcode 5 的问题。而且没有出路。您必须使用自定义单元有条件地分别为 ios6 和 ios7 编译代码。 【参考方案1】:尝试以下解决方案,该解决方案将在 ios 6,7 上保持一致
你可以把自定义UILabel
连接到自定义UITableViewCell
类。
您可以通过将 UIImageView 放在单元格的底部边缘来设置分隔符 并将情节提要中的分隔符样式设置为无。
【讨论】:
【参考方案2】:你在使用故事板吗?如果你是,最好从情节提要中做到这一点。从情节提要的 UIViewController 中选择您的 UITableView 对象。在“Attributes Inspector”下,找到“Separator Inset”,选择“Custom”并确保“Left”和“Right”均为0。
屏幕截图:-
【讨论】:
【参考方案3】:对于 UITableViewCell,cell.textLabel 和 detailTextLabel 的框架只能在 UITableViewCell 的子类中修改。试试这个:
- (void)layoutSubviews
[super layoutSubviews];
self.textLabel.frame = self.textLbFrame;
self.detailTextLbFrame = self.detailTextLabel.frame;
【讨论】:
【参考方案4】:在情节提要中配置约束时有一些选项可以使约束相对于边距。在表格视图的情况下,默认情况下似乎选择了该选项。
修复:选择每个水平约束,选择Superview.Leading / Trailing
并取消选中Relative to margin
。
【讨论】:
以上是关于UITableViewCell 在 iOS 7 中左右有额外的间距的主要内容,如果未能解决你的问题,请参考以下文章
如何在iOS 7上的UITableViewCell左侧获得复选标记,就像在设置中一样?
在 iOS 7 中取消 UITableViewCell 滑动删除时收到通知
带有 UITextView 的 iOS 7 UITableViewCell 隐藏在键盘后面
在 iOS 7 上的 UITableViewCell 之间绘制自定义分隔线