【问题标题】:ios7 uitableviewcell image left offsetios7 uitableviewcell 图像左偏移
【发布时间】:2013-09-29 15:55:31
【问题描述】:

在 iOS 6 和更早的版本中,uitableviewcell 的 imageView 一直定位到左侧,偏移量为 0。在 iOS 7 中,虽然这已经改变,现在有 15 点空间。我想像在 iOS 6 中一样定位 imageView。我已经使用 AKHighlightableAttributedCell 将 uitableviewcell 子类化,以处理未突出显示的属性文本。因此,基于一些搜索,我添加了:

- (void) layoutSubviews
{
    [super layoutSubviews];
    // Makes imageView get placed in the corner
    self.imageView.frame = CGRectMake( 0, 0, 80, 80 );
}

问题是其他一切仍然没有得到重新定位,所以我认为必须有更好的方法来做到这一点。我读过一些人提到使用负偏移来移动所有内容,但我不确定这将如何处理约束,因为它需要针对每个方向正确缩放。我缺少一个更简单的解决方案吗?谢谢。

【问题讨论】:

  • 如果您想要自定义布局,那么这是正确的方法。你也只需要设置标签的框架。
  • 好吧,也许这个问题会更好。我添加了 // 获取文本标签框架 CGRect textlabelFrame = self.textLabel.frame; textlabelFrame.origin.x = 90; self.textLabel.frame = textlabelFrame;它负责标题位置。但是后来我在想,如果标题足够长,这是否也会转移左侧的内容?此外,还有分隔单元格的边框,我不知道该视图或属性的名称是什么。感谢您的帮助。

标签: ios uitableview


【解决方案1】:

看来我的做法是正确的。关于字段之间分隔符的缺失部分是在 iOS 7 上设置插图。您可以在 viewdidload 或 viewwillload 中执行此操作并设置 self.tableView.separatorInset = UIEdgeInsetsMake(0, 0, 0, 0);

如果运行 iOS 7 或更高版本,您将需要添加检查,因为我相信这是一个新属性。更好的选择可能是在情节提要中设置它,方法是选择表格视图,然后将分隔符插入从默认设置为自定义。

这是重新定位 imageView 和 textLabel 的 layoutSubviews 方法。如果您有描述,也请添加。

- (void) layoutSubviews
{
    [super layoutSubviews];
    // Makes imageView get placed in the corner
    self.imageView.frame = CGRectMake( 0, 0, 80, 80 );

    // Get textlabel frame
    //self.textLabel.backgroundColor = [UIColor blackColor];
    CGRect textlabelFrame = self.textLabel.frame;

    // Figure out new width
    textlabelFrame.size.width = textlabelFrame.size.width + textlabelFrame.origin.x - 90;
    // Change origin to what we want
    textlabelFrame.origin.x = 90;

    // Assign the the new frame to textLabel
    self.textLabel.frame = textlabelFrame;
}

【讨论】:

  • 是阻止 iOS7 在单元格两侧添加填充的唯一方法。imageView 是将单元格子类化并应用上述内容,因为默认行为不会响应将 imageView 框架和插图设置为零?
  • 如果有,我找不到。这有点痛苦,对他们来说公开一个选项会很好。我觉得对于 tableviewcells 的无边界图像,这是一个巨大的痛苦,但至少可以绕过它。到目前为止,我还没有看到我实施它的方式有任何问题。如果它存在,我愿意接受更好的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-09-28
  • 2021-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多