何时实现代码以在显示表视图的子视图中获取全局坐标点?

时间:2016-07-02 02:52:43

标签: ios swift uiview subview superview

以下是我正在使用的视频:

image of view hierarchy *

我希望在最外面的视图中添加标签titleLabel" UIView"保持位于表格视图单元格中的子视图上方(在图像中,它将是UIButton)。我的方法是约束IB中titleLabel的Y值,并将titleLabel的中心x值设置为UIButton的中心x值(使用convertPoint)。

所以只是为了澄清:

//    ->  UIView
//    ->->  titleLabel-------- This matches center.x's with...
//    ->->  tableView
//    ->->->  tableViewCell
//    ->->->->  UIButton------ ...this

我可以通过将代码放在这里来实现它,但它只在需要加载新表格单元格时移动titleLabel,并且它不会做当视图最初加载时,它似乎是我的问题:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    if let cell = tableView.dequeueReusableCellWithIdentifier("newCell") as? newCell {
        cell.configureCell(myArray[indexPath.row])
        let centerPoint = cell.myButton.convertPoint(cell.myButton.center, toView: self.view)
        titleLabel.center.x = centerPoint.x - (titleLabel.frame.width / 2)
        return cell
    } else {
        let cell = newCell()
        let centerPoint = cell.myButton.convertPoint(cell.myButton.center, toView: self.view)
        titleLabel.center.x = centerPoint.x - (titleLabel.frame.width / 2)
        return cell
    }
}

所以我只是想知道在哪里可以放置这些代码,以便在显示任何内容之前运行它?或者如果有人有更好的方法,我真的很感激帮助。对于任何想知道的人来说,无论屏幕/表格的大小如何,标题都将保持在单元格中的某些元素之上。非常感谢提前。

P.S。我意识到这也可能不是让它发挥作用的最有效方式,但我只是先把事情弄清楚。这里的任何提示也非常受欢迎

*借用SO上的这个问题借来的图像: Using convertPoint to get the relative position inside a parent UIView

0 个答案:

没有答案