usa precio iphone

precio - iphone xr



¿Por qué hay un rectángulo rectángulo y un rectángulo de límites en una UIView? (3)

Bueno, aunque es tarde en la noche oscura, no entiendo por qué hay dos rectángulos diferentes: marco y límites.

Como lo entiendo, un solo rectángulo habría sido suficiente para hacer todo. Posicionando la Vista en relación con otro sistema de coordenadas, y luego recortando su contenido a un tamaño específico. ¿Qué más harías con dos rectángulos? ¿Y cómo interactúan entre ellos?

¿Alguien tiene una buena explicación? El de los documentos de la manzana con el niño que sostiene la fruta no es muy bueno para entenderlo.


Aquí está la hoja de trampa:

  • frame es donde está la vista (con respecto a la supervista)
  • bounds es donde se permite dibujar la vista (con respecto a sí mismo)

Algo más de aclaración:

Si está posicionando la vista en su super visión, casi siempre cambia el origen del marco.

Si está recortando donde está dibujando UIView, casi siempre modifica sus límites.

Tenga en cuenta que puede tener límites que sean más grandes que el marco. Es decir, puede dibujar "fuera de las líneas" de donde se encuentra.


El marco está en el sistema de coordenadas de la supervista, los límites están en el sistema de coordenadas de la vista. Desde mi punto de vista, es una conveniencia tener ambos. El marco parece ser el más útil de los dos, a menos que exista algún caso en el que no sepa dónde una subvista puede tener un sistema de coordenadas completamente diferente (p. Ej., Píxeles escalados de forma diferente) que la supervista.


He estado teniendo problemas con los límites últimamente y he hecho algunos experimentos. La propiedad de límites limita dónde puede dibujar un UIView, pero no limita sus subvistas. Los controles de límites de otra cosa son el envío de eventos táctiles. Una vista, por lo que yo sé, no recibirá eventos táctiles que estén fuera de sus límites. Además, cualquier subvista que esté fuera de los límites de la vista principal tampoco recibirá eventos táctiles. En estas situaciones, debe actualizar meticulosamente los límites de la vista de contenedor a medida que cambian el tamaño y la posición de sus subvistas. Todo siempre saldrá bien (porque las subvistas no están recortadas por los límites de su matriz), pero no se recibirán toques.

(Esto realmente debería ser una respuesta a una publicación anterior, pero como todavía no puedo responder, está atorada aquí ...)