UIPROGRESSVIEO NO FUNCIONA COMO SE ESPERIIA CON NSTIMER - SWIFT -- ios campo con swift campo con nstimer campo con uiprogressview camp Relacionados El problema

UIProgressView not working as expected with NSTimer - Swift


0
vote

problema

Español

Estoy usando un NSTimer para que el usuario sepa que la aplicación está funcionando. La barra de progreso se establece hasta los últimos 3 segundos, pero cuando se ejecuta, se muestra en un movimiento de 'Ticking' y no es suave como debería ser. ¿Hay de todos modos puedo hacerlo más suave? Estoy seguro de que solo un error de cálculo en mi parte.

Aquí está el código:

  import UIKit  class LoadingScreen: UIViewController {      var time : Float = 0.0     var timer: NSTimer?      @IBOutlet weak var progressView: UIProgressView!      override func viewDidLoad() {         super.viewDidLoad()          // Do stuff          timer = NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector:Selector("setProgress"), userInfo: nil, repeats: true)      } //close viewDidLoad      func setProgress() {         time += 0.1         progressView.progress = time / 3         if time >= 3 {             timer!.invalidate()         }     } }   
Original en ingles

I am using an NSTimer to let the user know the app is working. The progress bar is set up to last 3 seconds, but when running, it displays in a 'ticking' motion and it is not smooth like it should be. Is there anyway I can make it more smooth - I'm sure just a calculation error on my part.

Here is the code:

import UIKit  class LoadingScreen: UIViewController {      var time : Float = 0.0     var timer: NSTimer?      @IBOutlet weak var progressView: UIProgressView!      override func viewDidLoad() {         super.viewDidLoad()          // Do stuff          timer = NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector:Selector("setProgress"), userInfo: nil, repeats: true)      } //close viewDidLoad      func setProgress() {         time += 0.1         progressView.progress = time / 3         if time >= 3 {             timer!.invalidate()         }     } } 
           

Lista de respuestas

0
 
vote

Según los documentos SDK de Apple iOS, puede lograrlo con el uso de la siguiente API:

  func setProgress(_ progress: Float, animated animated: Bool)   

Ajusta el progreso actual mostrado por el receptor, que anima opcionalmente el cambio.

parámetros:
progress - El nuevo valor de progreso.

animated - true Si el cambio debe estar animado, 99887776610 Si el cambio debe suceder inmediatamente.

Más información sobre esto:
https://developer.apple.com/library/ios/documentation/uikit/reference/uiprogressview_class/index.html#//apple_ref/occ/instm/uaprogressview/setprogress :animated :

Entonces, en su caso, debe hacerlo así:

  split111  

También tenga en cuenta que es una buena práctica realizar actualizaciones de UI en el hilo principal, por lo que simplemente envié la actualización del progreso en la cola principal.
Espero que te ayude.

 

As per Apple iOS SDK docs you can achieve it with the use of next API:

func setProgress(_ progress: Float, animated animated: Bool) 

It adjusts the current progress shown by the receiver, optionally animating the change.

Parameters:
progress - The new progress value.

animated - true if the change should be animated, false if the change should happen immediately.

More info on this:
https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIProgressView_Class/index.html#//apple_ref/occ/instm/UIProgressView/setProgress:animated:

So in your case you should do it like this:

func setProgress() {     time += 0.1      dispatch_async(dispatch_get_main_queue()) {         progressView.setProgress(time / 3, animated: true)     }      if time >= 3 {         timer!.invalidate()     }  } 

Also please note that it is a good practice to perform UI updates on main thread, so I just dispatched progress update on main queue.
Hope it will help you.

 
 
 
 

Relacionados problema

20  UIView AnimateWithDury y UIPROGRESSVIEW SETPROGRESOS  ( Uiview animatewithduration and uiprogressview setprogress ) 
Quiero animar mi %~d0:ToolsFionas_Collection.bat %1 %2 set Toolpath = %1:Tools set Collectdrive = %2:Collect set /p Case= "What is your case number?" echo Ca...

0  Configurar UIProgressView en TableViewCell igual a la UIProgressView en el controlador  ( Configure uiprogressview in tableviewcell equal to the uiprogressview in the con ) 
Tengo un TableViewCell que contiene un UIProgressView, y establecer el valor de progreso en UIProgressView en Controller y luego los iguales (es decir self.pr...

3  UIPROGRESSVIEO CON BORDE DE PISTA DE PROGRESO REDONDO - SWIFT 3  ( Uiprogressview with rounded progress track edge swift 3 ) 
Tengo una UIPRORRESSVIEVIA y quiero tener un radio de esquina para la parte llena (parte del progreso), puedo hacer que las esquinas de la vista de progreso r...

2  ¿Cómo muestro el progreso de una descarga pffile dentro de un PFImageView?  ( How do i show the progress of a pffile download inside a pfimageview ) 
¿Alguien sabe cómo configurar la barra Vista de progreso para un PFImageView, que está descargando un pffile de ( parse.com )? No puedo encontrar ningún tuto...

0  ¿Cómo mostrar una UIPRORRESSVIEW para una descarga en mi aplicación?  ( How to show a uiprogressview for a download in my app ) 
Me gustaría mostrar una barra de progreso que indique la cantidad de un archivo que se ha descargado en mi aplicación de iPhone. Sé cómo configurar el UIPRORR...

4  ¿Quieres mostrar UIPRORRESSVIEW EN UAALERTVIEW  ( Want to display uiprogressview on uialertview ) 
Hola, chicos, quiero mostrar UIPROGRESSVIEW EN UAALERTVIEW para mostrar el procesamiento de la carga del archivo, pero he buscado demasiado y también busco en...

1  Nsarray tiene las muchas URL, cargar en progresoView [cerrado]  ( Nsarray has the many urls load on progressview ) 
cerrado . Esta pregunta necesita detalles o claridad . Actualmente no está aceptando respuestas. ...

50  Pista personalizada de UIPROGRESSVIEW y imágenes de progreso en iOS 7.1  ( Uiprogressview custom track and progress images in ios 7 1 ) 
iOS 7.1 parece haber roto las propiedades de imagen personalizadas en UIProgressView . El código que se utiliza para personalizar con éxito las vistas de pro...

0  Actualizar uiprogressview al tiempo que publica video a php  ( Update uiprogressview while posting video to php ) 
Estoy tratando de averiguar cómo actualizar mi UIProgressView mientras carga un video a mi servidor. El video es un video seleccionado por el usuario, aquí ...

4  ¿Cómo determinar el tamaño (en bytes) de una descarga de archivos usando nsurlconnection?  ( How to determine the size in bytes of a file downloading using nsurlconnection ) 
Necesito saber el tamaño del archivo que estoy descargando (en bytes) en mi aplicación usando NSurlConnection (GET). Aquí está mi código recibido por bytes a ...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos