2012-04-02 14 views

Respuesta

12

Va a encontrar su respuesta here

EDIT: copiado directamente desde el blog:

  • init no causa layoutSubviews que se llama (la)
  • addSubview causa layoutSubviews para ser llamados en el vista que se agrega, la vista que se está agregando a (vista de destino) y todas las subvistas de la vista de destino
  • setFrame inteligentemente llama a layoutSubviews en la vista que tiene su marco establecido solo si el tamaño para metros de la trama es diferente
  • desplazamiento de un UIScrollView causa layoutSubviews para ser llamados en el ScrollView, y es supervista
  • la rotación de un dispositivo de llamadas de sólo layoutSubview en la vista padre (el viewControllers de responder Ver primaria)
  • removeFromSuperview - layoutSubviews se llama en la supervista solo
+3

+1 por la respuesta. Pero considere agregar alguna descripción del enlace en su respuesta aquí, de modo que si en el futuro, en cualquier caso, el enlace falla, su respuesta sigue siendo útil. –

1

Usted está correcto. Las subvistas de diseño se invocan automáticamente. Verifique los documentos para obtener más información al respecto.

Los documentos no especifican cuándo se llama. Sin embargo, puedes garantizar que se llama con bastante frecuencia. Realmente solo desea anular este método cuando no puede hacer que sus subvistas cambien de tamaño o se muevan utilizando puntales y muelles. Una instancia sería reorganizar las posiciones de las subvistas cuando el dispositivo cambia de orientación.

1

Se llamará al método layoutSubviews cada vez que el sistema crea que su vista debe volver a desplegarse. Por ejemplo, si se cambia el marco de la vista, o se agrega una subvista, etc. Si necesita activarlo manualmente, puede llamar al método setNeedsLayout.

Cuestiones relacionadas