【问题标题】:UITableViewCell has extra spacing on left and right in iOS 7UITableViewCell 在 iOS 7 中左右有额外的间距
【发布时间】:2013-10-25 03:06:21
【问题描述】:

我已经使用以下代码修复了分隔符问题:

if([tableView respondsToSelector:@selector(setSeparatorInset:)]) {
      [tableView setSeparatorInset:UIEdgeInsetsZero];
}

但在iOS7中UITableViewcell.textLabeldetailTextLabel的左右边缘之间仍有较大的差距

我有自定义 UITableViewCells,我在其中指定文本标签的位置,因此这会导致标签与 iOS 6 和 7 中的标准单元格不对齐。

有什么想法吗?

【问题讨论】:

  • 能否提供截图?
  • 如何创建自己的自定义单元格?恕我直言,工作量不大。
  • 如果您通过 xcode 4.X 使用它,它将正常工作。它与 Xcode 5 的问题。而且没有出路。您必须使用自定义单元有条件地分别为 ios6 和 ios7 编译代码。

标签: ios objective-c uitableview 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

        【讨论】:

          猜你喜欢
          • 2016-12-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-01-17
          • 2018-02-10
          • 2019-11-24
          • 1970-01-01
          • 2014-10-31
          相关资源
          最近更新 更多