¿Qué es ‘subview’ en iOS?

El elemento de IU elemental en iOS es un objeto vinculado a un rectángulo cuya clase es UIView. Cada vista puede contener múltiples subvistas de la (misma) clase UIView o sus descendientes. Por lo tanto, una subvista es solo una UIView normal contenida “dentro” de otra UIView.

Se deben tomar algunas notas sobre las vistas en iOS:

  • Como cada vista puede tener múltiples subvistas, la estructura general es un árbol, generalmente llamada jerarquía de vistas.
  • Una vista solo puede estar contenida en una supervista. Los métodos para agregar una subvista a una supervista la eliminan automáticamente de una supervista anterior (si la hubiera).
  • Cada vista se ‘dibuja’ a sí misma, y ​​luego sus subvistas se llaman para dibujar también. Anular el método de dibujo rara vez se usa, pero a veces puede ser muy útil.
  • Una subvista coordinar sistema es relativo a la esquina superior izquierda del cuadro delimitador de su supervista.
  • Aunque las vistas contienen sus subvistas en el árbol lógico, no es necesario que estén visualmente dentro del cuadro delimitador del súper: cada vista tiene una propiedad de clips a límites que determina si las áreas de las subvistas que se extienden más allá de su cuadro delimitador deben ser dibujado.
  • Cada UIView tiene una propiedad .layer: puede servir para algunos trucos geniales y aprender más al respecto es importante para comprender cómo se realizan los dibujos y las animaciones en los niveles inferiores.

Hay mucho más que saber, pero la documentación y el flujo de stackover de Apple cubren mucho y son mucho mejores lugares para preguntas de programación de iOS que Quora.

Aquí hay una respuesta ligeramente diferente, pero espero que ayude a su comprensión.

Subviews es un contenedor (NSArray *) de vistas en un objeto (UIView *). El objeto se considera una vista “Principal”. Una subvista es un objeto (UIView *) en ese contenedor. En otras palabras, cada vista tiene una lista de objetos que se consideran “subvistas”, lo que significa que están dentro de la vista principal. Las subvistas están sujetas a los límites de la vista principal, entre otras cosas.

Es importante entender esto porque puede ver 2 elementos en la pantalla, pero dependiendo de dónde se encuentren en la jerarquía de vistas, es posible que no pueda operarlos de la misma manera.

Entonces, por ejemplo, si tiene una vista que es un cuadro de 240 × 240, y un (UIImageView *) de una bola dentro de eso. La vista de bola (subvista) solo puede moverse dentro de ese cuadrado de 240 × 240 (vista principal). Si quiere poder, por ejemplo, hacer que el usuario arrastre la pelota dentro de ese cuadro, todo lo que tiene que hacer es tocarla y arrastrarla. Sin embargo, si desea que puedan arrastrar la bola fuera de ese cuadro, no pueden a menos que su código elimine la subvista de la bola de la vista del cuadro y la coloque dentro de otra vista.

Supongo que no esperas una respuesta larga (y ni siquiera debería existir para esta pregunta). Así:

Subvista: es solo una vista dentro de otra vista. Ambos de tipo UIKit UIView.

¿Por qué preguntas eso? Parece que comenzó a aprender el desarrollo de iOS desde el punto equivocado.