获取更新的x coord of cell item of cell item

时间:2017-06-24 18:57:14

标签: ios swift uitableview

我在设置文字后尝试在x中获得UILabel的{​​{1}}帧。我需要这个用于向单元格添加一些背景颜色的子视图,所以我需要在单元格显示之前知道单元格的x和宽度。

因此,我在UITableViewCell的单元格中为标签设置了新文本,并尝试获取标签框架的x:

cellForRowAtIndexPath

当然,在设置新文字后,我无法正确更正标签的正确x ,所以我想在func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { cell.label.text = "new text" var x = CGRectGetMinX(cell.label.frame) } 中找到它:

willDisplayCell

func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) { var x = CGRectGetMinX(cell.label.frame) } 仍然是错误的。

这也不起作用:

var x

另外,我想要注意所有这些方法在首次显示时不起作用,但是如果我将一些单元格滚动到底部然后滚动回到顶部,则上部单元格会正确显示(我得到正确{{1} })。

如何在显示设置子视图之前获取正确的class MyCell : UITableViewCell{ @IBOutlet weak var label: UILabel! override func layoutSubviews() { super.layoutSubviews() var x = CGRectGetMinX(label.frame) } } x单元格?

1 个答案:

答案 0 :(得分:0)

设置标签文本后,尝试布局标签以获取更新的框架:

cell.label.text = "new text"
cell.label.layoutIfNeeded()  //layout label
var x = CGRectGetMinX(cell.label.frame)