es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Por qué `childView.convert(childView.bounds, to: parentView)` no es igual a `childView.frame` para UIPickerTableViewWrapperCell?

Según mi entendimiento, el frame es la ubicación y el tamaño de una vista usando el sistema de coordenadas de su vista padre, mientras que bounds es la ubicación y el tamaño de una vista usando su propio sistema de coordenadas, lo que significa que childView.convert(childView.bounds, to: parentView) debería ser igual a childView.frame.

Imagen

Imagen

Pero he encontrado que este no es el caso para UIPickerTableViewWrapperCell, como puedes ver en la imagen, el frame es (origin = (x = 0, y = 160032.44775782057), size = (width = 134, height = 30.248210824676789)), y el convert(bounds, to: parentView) es (origin = (x = -71.984082796011151, y = 160032.44585526528), size = (width = 134.04199076956854, height = 29.70736933068838)).

¿Por qué estos dos valores son diferentes?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Es posible que la diferencia en los valores entre frame y convert(bounds, to: parentView) para la celda UIPickerTableViewWrapperCell se deba a la forma en que la celda se distribuye en la jerarquía de vistas. Es posible que la vista padre tenga transformaciones o restricciones de diseño que afecten la posición de la celda, lo que genera la discrepancia entre las coordenadas de su frame y bounds. Además, la forma en que UIKit implementa la celda también puede contribuir a esta diferencia. Es importante tener en cuenta que, aunque frame y bounds se utilizan comúnmente en UIKit, no siempre son intercambiables y pueden comportarse de manera diferente según el contexto en el que se utilicen.

Comments are closed.