我正在使用带有UITableViewCellStyleSubtitle的UITableViewCell。但是,由于我要在单元格中使用背景图像,所以我不喜欢detailTextLabel的去向。我想移动它并在单元格中调整它的大小,但是我尝试的任何方法似乎都无效。

CGRect currRect = cell.detailTextLabel.frame;
cell.detailTextLabel.frame = CGRectMake(currRect.origin.x + 20, currRect.origin.y, currRect.size.width - 40, currRect.size.height);

我尝试将这段代码放到tableView:cellForRowAtIndexPath和tableView:willDisplayCell:forRowAtIndexPath方法中,但均不起作用。标签只是停留在原处,且尺寸相同。

正确调整标签的其他属性(textAlignment,backgroundColor,当然还有文本本身)。

如何获取detailTextLabel移至需要的位置?

如果这很重要(尽管我不明白为什么要这么做),则此特定单元格还设置了imageView.image和backgroundImage属性。两张图像均正确显示。

最佳答案

您需要一个自定义的UITableViewCell子类,该子类将覆盖layoutSubviews,以完成布局其中所有 subview 的工作。调用super然后调整detailTextLabel.frame可能是最容易的事情。

10-06 06:52