2016-11-17 2 views
1

Внутри моего viewController У меня есть это tableView с пользовательскими ячейками. На моем cellForRow:atIndexPath: метод, который я хотел бы получить доступ к местоположению (rect), согласносистеме координат моей ViewController в, из UIButton, который отображается в конкретной ячейке. Это, как я думал, что это будет работать:Не могу получить convertRect: fromView для работы

func tableView(tableView: UITableView, 
       cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 

    var cell = tableView.dequeueReusableCellWithIdentifier("cellId") as? MyCell 
    if cell != nil { 

     cell = MyCell(style: .Default, reuseIdentifier: "cellId") 
    } 

    let convertedFrame = view.convertRect(cell!.myButton.Frame, fromView: cell) 

    return cell! 
} 

Он просто дает мне текущий кадр кнопки в своей собственной системе координат (0.0, 0.0, 44.0, 44.0)

Любые подсказки о правильном использовании этого метода?

+2

Почему вы делаете это в 'cellForRowAtIndexPath'? Ячейка еще не добавлена ​​в таблицу. – rmaddy

+0

Хм. В этом есть смысл. Вероятно, это плохое место для этого. –

+0

Не только это имеет смысл, но и трюк. спасибо. –

ответ

0

Это просто вопрос вызова, прежде чем ячейка была фактически размещена в иерархии представлений. Благодаря rmaddy для указания его.

+0

общий код, где вы его разместили – Vinodh

Смежные вопросы