Los subviews de UITableViewCell informan el ancho incorrecto al usar las classs de tamaño

Por alguna razón, al usar classs de tamaño en xcode 6, obtengo anchos incorrectos para las subvenciones en mi celda. Tengo un UIImageView con autolayout para el tamaño (constante: 10 para arriba, L / R, abajo).

Cuando llame a lo siguiente desde tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) :

 println("w: \(cell.mapSnapshotImageView.bounds.size.width) h: \(cell.mapSnapshotImageView.bounds.size.height)") 

Siempre obtengo:

 w: 580.0 h: 80.0 

Aunque debería ser w: 300.0 h: 80.0 basado en mi celda 320×100 en un iPhone 5S.

Todo se muestra correctamente, pero quiero usar el ancho de la subvista para algunos cálculos para otras subvistas. ¿Alguna idea de porqué está pasando esto? ¿Informe de error o funciona según lo diseñado?

EDITAR:

Este problema solo se aplica a las celdas que se cargan inicialmente. Cuando las células se reutilizan, el problema no se presenta. salida de printing en celdas reutilizadas:

 w: 300.0 h: 80.0 

También me topé con este problema. Cuando cambias dinámicamente el tamaño de las vistas, las subvistas deben actualizar sus valores en consecuencia. Está haciendo reference a los valores antes de que se hayan actualizado.

Mi trabajo fue referencer los valores después de que se actualizaron. En este caso, estaba en viewDidAppear (). Espero que esto sea de alguna utilidad. Pasé un time tratando de resolverlo.

Llame a cell.layoutIfNeeded() en willDisplayCell:forRowAtIndexPath antes de acceder a los cuadros. Eso hará el truco.

Puede probar en el método layoutSubviews (), después de llamar a [layout de la celda IfNeeded] para get valores "correctos" para las subvistas.