temperatura rapido porque mucho elevada digitos descarga cual codigo calienta aviso apple iphone objective-c cocoa-touch

rapido - porque se calienta mi iphone 6



¿Cuándo usar un UIView frente a un UIViewController en el iPhone? (9)

Siempre me he preguntado cuándo usar un UIView frente a un UIViewController en el iPhone.

Entiendo que no debes usar un UIViewController a menos que sea una vista de pantalla completa, pero ¿qué otras pautas hay?

Por ejemplo, quiero construir una superposición modal: una pantalla que se deslizará en su lugar sobre la pantalla actual. Si esta superposición modal es a pantalla completa, ¿debería ser un UIViewController? La última vez que construí algo así, clasifiqué UIViewController, pero ahora me pregunto si fue correcto.


  1. Uso UIViewController para mostrar la Vista en pantalla completa.

  2. Para un mejor control en la vista personalizada, prefiero la subclase de UIViewController en lugar de UIView, antes usaba UIView para crear subclases personalizadas.


Coloque todo en una pantalla en un UIViewController hasta que el controlador de vista comience a tener demasiados códigos, luego divida la pantalla en múltiples UIViewControllers contenidos en un controlador de vista maestro ...

Para poner eso en contexto con tu respuesta, crea un controlador de vista para esa superposición modal. De todos modos, tendrá uno si está usando un controlador de navegación para presentarlo (y probablemente debería hacerlo).


De la Guía de programación del controlador de vista de Apple para iOS :

"La función más importante de un controlador de vista es administrar una jerarquía de vistas. Cada controlador de vista tiene una sola vista de raíz que incluye todo el contenido del controlador de vista. A esa vista raíz, agrega las vistas que necesita para mostrar su contenido. "

También:

"Hay dos tipos de controladores de vista:

  • Los controladores de vista de contenido administran una parte discreta del contenido de su aplicación y son el principal tipo de controlador de vista que usted crea.
  • Los controladores de vista de contenedor recopilan información de otros controladores de vista (conocidos como controladores de vista secundarios) y la presentan de una manera que facilita la navegación o presenta el contenido de esos controladores de vista de forma diferente.

La mayoría de las aplicaciones son una mezcla de ambos tipos de controladores de visualización ".


Esta es una gran pregunta.

Mi regla básica básica Es que cada ''página'' principal de una aplicación obtiene su propio controlador de vista. Lo que quiero decir con eso es que durante la fase de encuadre del diseño de la aplicación, todo lo que existe como su propia entidad será eventualmente administrado por su propio Controlador de Vista. Si hay una pantalla modal que se desliza sobre una pantalla existente, la consideraré como una ''página'' separada y le daré su propio controlador de vista. Si hay una vista de superposiciones y páginas existentes (como una pantalla de carga o una ventana emergente de ayuda), las trataría de manera diferente, las implementaría como subclases de UIView y mantendría la lógica en ese controlador de vista de ''páginas''. Si la ventana emergente tiene un comportamiento, le devolveré la comunicación a esas páginas. Ver el controlador utilizando el patrón de delegado.

Espero que esto ayude. Es una cuestión filosófica y arquitectónica y se podría escribir mucho al respecto.


Si está familiarizado con el patrón MVC, entonces debería ser capaz de entender la diferencia entre UIVIew y UIViewController. Para hacer una declaración simple, UIView es para representar elementos de la interfaz de usuario en la pantalla. UIView es la superclase de casi todos los elementos de interfaz de usuario de Cocoa Touch. Esos elementos no saben qué información se supone que deben mostrar, qué deben hacer cuando un usuario hace clic en un botón, qué sucede cuando se completa una solicitud de red asíncrona, y así sucesivamente. UIViewController es para todo eso y más. El controlador de visualización es responsable de colocar los elementos de la IU en las ubicaciones correctas en la pantalla, configurar los contenidos de los elementos de la IU, manejar las pulsaciones de los botones y otras entradas del usuario, actualizar el modelo cuando sea necesario, etc.

Conceptualmente, un solo UIViewController controla el contenido de la pantalla completa en una aplicación de iPhone y es por eso que a menudo es fácil pensar en cosas en términos de controladores de visualización. Si necesita una vista donde el usuario pueda seleccionar ingredientes para una receta de alimentos, necesitará un UIViewController para eso. Hice esta distinción por mí mismo porque, viniendo de un fondo Java, no estaba acostumbrado al marco que impone MVC. Pensaría en cosas en términos de UIViews, y comenzaría a implementarlas de esa manera y luego me encontraría con todo tipo de problemas debido a eso. Si va a apegarse a UIKit para su aplicación, entonces el flujo de trabajo que Apple ha hecho para usted es: para cada vista separada en su aplicación, cree una subclase UIViewController y luego use Interface Builder para colocar los elementos de la IU y crear conexiones para botones etc. Funciona de maravilla, ahorra una tonelada de tiempo y te permite concentrarte en hacer que tu aplicación funcione bien.


Tengo un enfoque algo diferente:

Anule UIView si planea hacer un dibujo personalizado en drawRect. De lo contrario, subclase UIViewController y use [self.view addSubview: blah] para agregar los componentes de la página.

Hay algunos otros casos especiales, pero maneja aproximadamente el 95% de las situaciones.

(Todavía necesitará a menudo un UIViewController con una UIView personalizada. Pero es común tener un UIViewController personalizado sin la correspondiente UIView personalizada).


Un UIView es parte del UIViewController para ver la propiedad view de UIViewController para esto. Como señaló correctamente, UIViewController administra una pantalla completa y solo debería haber un UIViewController visible a la vez. Pero en la mayoría de los casos tendrá más UIViews o subclases de UIView visibles en la pantalla.

El ejemplo que dio sería un uso correcto en la mayoría de los casos. Como habrás notado, obtendrás mucha funcionalidad cuando subclases el UIViewController. Animar la aparición y el rechazo del UIViewController sería uno de ellos.

Como marcc señaló si lo que desea deslizar no es una pantalla independiente, sería mejor que use una UIView.

Como conclusión, diría que si quieres usar la funcionalidad que viene con la subclasificación de UIViewController, entonces hazlo un UIViewController. De lo contrario, una UIView podría ser mejor.

La clase itunes U Standford tiene una gran conferencia sobre UIViewControllers. Recomendaría verla, ya que tiene mucha información sobre UIViewControllers en general.


Uso UIViewController siempre que una vista es a pantalla completa y tiene salidas / acciones y / o subvistas.


¿Lo que se desliza en una pantalla independiente? Quiero decir, ¿interactúa directamente con el padre? Si es así, UIView un UIView , de lo contrario, probablemente recomiende un UIViewController .