Compartir vía


Indicadores de progreso y actividad en Xamarin.iOS

Es probable que la aplicación tenga que llevar a cabo tareas de larga duración, como cargar o procesar datos, y que este retraso pueda provocar un retraso en la actualización de la interfaz de usuario. Durante este tiempo, siempre debe usar un indicador de progreso para asegurar al usuario que el sistema está ocupado realizando un trabajo. Esto proporciona al usuario el control de que la aplicación está trabajando en su solicitud y que no está esperando su entrada. Además, puede proporcionar un medio para detallar exactamente cuánto tiempo tiene que esperar.

iOS proporciona dos maneras principales de proporcionar esta indicación de progreso en la aplicación: indicadores de actividad (incluido un indicador de actividad de redespecífico) y barras de progreso.

Indicador de actividad

Los indicadores de actividad deben mostrarse cuando la aplicación ejecuta un proceso largo, pero no se conoce la duración exacta del tiempo que requerirá la tarea.

Apple tiene las siguientes sugerencias para trabajar con indicadores de actividad:

  • Siempre que sea posible, use barras de progreso en su lugar: dado que un indicador de actividad no proporciona ningún comentario al usuario durante cuánto tiempo tardará la ejecución del proceso, use siempre una barra de progreso si se conoce la longitud (por ejemplo, cuántos bytes se van a descargar en un archivo).
  • Haga que el indicador tenga animación: los usuarios relacionan un indicador de actividad estacionario con una aplicación detenida, por lo que siempre debe tener el indicador animado mientras se muestra.
  • Describa la tarea que se está procesando: simplemente mostrar el indicador de actividad por sí mismo no es suficiente; el usuario debe informarse sobre el proceso por el cual está esperando. Incluya una etiqueta significativa (normalmente una sola frase completa) que defina claramente la tarea.

Implementación de un indicador de actividad

Un indicador de actividad se implementa a través de la clase UIActivityIndictorView para indicar que UIActivity se está llevando a cabo.

Administración del comportamiento del indicador de actividad

Use los métodos StartAnimating() y StopAnimating() para iniciar y detener la animación del indicador de actividad.

Establezca la propiedad HidesWhenStopped en true para que el indicador de actividad desaparezca después de llamar a StopAnimating(). Se establece en true de forma predeterminada. En cualquier momento, puede ver si el indicador de actividad está ejecutando su animación giratoria comprobando la propiedad IsAnimating.

Administrar las apariencias del indicador de actividad

La enumeración UIActivityIndicatorViewStyle se puede pasar como un parámetro al crear una instancia del indicador de actividad. Puede usarla para establecer el estilo visual en Gray, White o WhiteLarge, por ejemplo:

activitySpinner = new UIActivityIndicatorView(UIActivityIndicatorViewStyle.WhiteLarge);

Puede invalidar el color proporcionado por UIActivityIndicatorViewStyle al establecer la propiedad Color.

Barra de progreso

Una barra de progreso se presenta como una línea que se rellena con color para indicar el estado y la duración de una tarea que consume mucho tiempo. Las barras de progreso siempre se deben usar cuando se conoce o se puede calcular la longitud de las tareas.

Apple tiene las siguientes sugerencias para trabajar con barras de progreso:

  • Progreso del informe con precisión: las barras de progreso siempre deben ser una representación precisa del tiempo necesario para completar una tarea. Nunca coloque un tiempo falso para hacer parecer que la aplicación está ocupada.
  • Uso de duraciones bien definidas: la barra de progreso no solo debe mostrar que se está llevando a cabo una tarea larga, sino que debe proporcionar al usuario una indicación de cuánto se ha completado de la tarea y una estimación del tiempo restante.

Implementación de una barra de progreso

Para crear una barra de progreso, se crea una instancia de UIProgressView

Barras de progreso y guiones gráficos

También puede agregar una barra de progreso a la interfaz de usuario al usar iOS Designer. Busque Vista de progreso en el cuadro de herramientas y arrástrela a su vista.

Las siguientes propiedades se pueden ajustar en el panel de propiedades:

La captura de pantalla muestra el panel de propiedades donde puede modificar las propiedades de estilo, el progreso, el tinte de progreso, el tinte de pista, la imagen de progreso y la imagen de pista.

Administrar el comportamiento de la barra de progreso

El progreso de la barra se puede establecer inicialmente mediante la propiedad Progress:

ProgressBar.Progress = 0f;

El progreso se puede ajustar mediante el método SetProgress y pasando una declaración booleana si desea que el cambio sea animado o no.

ProgressBar.SetProgress(1.0f, true);

Para más información sobre el uso de la barra de progreso, consulte la receta Notificar el progreso.

Administrar la apariencia de la barra de progreso

De forma similar a un indicador de actividad, la enumeración UIProgressViewStyle se puede pasar como un parámetro al crear una instancia de la barra de progreso.

La imagen de progreso y seguimiento y el color de tono se pueden ajustar mediante las siguientes propiedades:

progressBar = new UIProgressView(UIProgressViewStyle.Default)
            {
                ProgressImage = UIImage.FromBundle("TrackImage"),
                ProgressTintColor = UIColor.Cyan,
                TrackImage = UIImage.FromBundle("TrackImage"),
                TrackTintColor = UIColor.Magenta
            };