2017-04-14 7 views
-1

私の会社のapple appstoreに似たエンタープライズアプリケーションを開発しています。これで私はappstoreからアプリをダウンロードしたり更新したりするときに表示される循環ダウンロードプログレスイメージを実装する必要があります。これはSwift言語を使ってどのように実装できますか? >モバイルアプリをインストールするApple devicsのプログレスサークル

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

dont't forget to add framework to your project

コード-詳細JPActivityIndicatorButton - 任意の提案は本当に参考になります ...詳細情報プラザについては

このenter image description here

+1

cocoascontrolから見つけることができます。このリンクは参考用に使用しています。https://github.com/mrackwitz/MRProgressとhttps://github.com/PavelKatunin/DownloadButton –

+0

ありがとうございました:) – victorious

+0

: u。 –

答えて

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

便利な場合に顔をしています

0

私は同様の仕事をしていて、今日これを実装することができました。私は最も簡単な方法は現在のUIを強化して、進捗サークルを扱う部分だけで作業することだと思います。

私の場合は、UIButtonのサブクラスである「UIButtonEnhanced」という新しいクラスを作成しました。

インタフェースビルダーでは、まずボタンのクラスを「UIButtonEnhanced」に変更してから、コンセントを作成する必要があります。ダウンロードが変更を進行するときに使用、その後、このコード

yourButton.drawCircle() 

yourButton.progress = 0.5 

あなたのダウンロード状況をあなたのViewControllerで

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) 
     } 
    } 
    } 

は、次のコードを使用して円を作成することができます変更、このコードを使用:

yourButton.status = .success 
関連する問題