2017-04-14 4 views
-1

Ich entwickle eine Unternehmensanwendung, die Apple Appstore für meine Firma ähnelt. In diesem habe ich die Anforderung, das zirkulierende Download-Fortschrittsbild wie das zu implementieren, das erscheint, wenn wir eine App aus Appstore herunterladen oder aktualisieren. Wie kann dies mit Swift-Sprache implementiert werden? Jeder Vorschlag wirklich hilfreich sein ..Progress-Kreis in Apple Devices mit der Installation von mobilen Anwendungen

Für weitere Informationen plz haben Sie einen Blick auf dieses enter image description here

+1

Sie können von Cocoascontrol finden.Verwenden Sie diesen Link als Referenz https://github.com/mrackwitz/MRProgress und https://github.com/PavelKatunin/DownloadButton –

+0

Vielen Dank Kumpel :) – victorious

+0

: - Ich kann Ihnen helfen u. –

Antwort

0
`JPCActivityIndicatorButton` is working fine in `Xcode 8.3` `swift 3.x` 

Nützliche Fall ->

case Names.Spinning: 
     activityIndicator.transitionSavedState(Names.ProgressBar) 
    case Names.ProgressBar: 
       activityIndicator.transitionSavedState(Names.Paused) 

dont't forget to add framework to your project

-Code-Informationen JPActivityIndicatorButton

0

Ich habe an einer ähnlichen Aufgabe gearbeitet und es gerade geschafft, dies heute umzusetzen. Ich denke, der einfachste Weg besteht darin, die aktuelle Benutzeroberfläche zu verbessern, so dass Sie nur an dem Teil arbeiten müssen, der sich mit dem Fortschrittskreis beschäftigt.

In meinem Fall erstellte ich eine neue Klasse namens "UIButtonEnhanced", die eine Unterklasse von UIButton ist.

Bitte beachten Sie, dass Sie in Ihrem Interface Builder zuerst die Klasse der Schaltfläche in "UIButtonEnhanced" ändern und dann die Steckdose erstellen sollten.

enum DownloadStatus { 
    case remote 
    case downloading 
    case paused 
    case resumed 
    case success 
} 
    // MARK: extension is not ideal, a better solution should be a subclass of UIButton 
class UIButtonEnhanced: UIButton { 
    var progress: Float = 0 { 
     didSet { 
      circleShape.strokeEnd = CGFloat(self.progress) 
     } 
    } 

    var circleShape = CAShapeLayer() 
    public func drawCircle() { 
     let x: CGFloat = 0.0 
     let y: CGFloat = 0.0 
     let circlePath = UIBezierPath(roundedRect: CGRect(x: x, y: y, width: self.frame.height, height: self.frame.height), cornerRadius: self.frame.height/2).cgPath 
     circleShape.path = circlePath 
     circleShape.lineWidth = 3 
     circleShape.strokeColor = UIColor.white.cgColor 
     circleShape.strokeStart = 0 
     circleShape.strokeEnd = 0 
     circleShape.fillColor = UIColor.clear.cgColor 
     self.layer.addSublayer(circleShape) 
    } 

    // MARK: - Update the download status 
    var status: DownloadStatus = .remote { 
     didSet{ 
      var buttonImageName = "" 
      switch self.status { 
      case .remote: 
       buttonImageName = "DownloadButton" 
      case .downloading: 
       buttonImageName = "PauseButton" 
      case .success: 
       buttonImageName = "DeleteButton" 
      case .paused: 
       buttonImageName = "DownloadButton" 
      case .resumed: 
       buttonImageName = "PauseButton" 
      } 
      self.setImage(UIImage(named: buttonImageName), for: .normal) 
     } 
    } 
    } 

In Ihrem Viewcontroller, können Sie den Kreis mit dem folgenden Code erstellen:

yourButton.drawCircle() 

Dann, wenn der Download Änderungen Fortschritt, verwenden Sie diesen Code:

yourButton.progress = 0.5 

Wenn Sie Ihren Download-Status Änderungen, verwenden Sie diesen Code:

yourButton.status = .success 
Verwandte Themen