Files
SideStore/AltStore/Components/ProgressButton.swift

64 lines
1.6 KiB
Swift
Raw Normal View History

//
// ProgressButton.swift
// AltStore
//
// Created by Riley Testut on 7/15/19.
// Copyright © 2019 Riley Testut. All rights reserved.
//
import UIKit
class ProgressButton: UIButton
{
var progress: Progress? {
didSet {
self.progressView.progress = Float(self.progress?.fractionCompleted ?? 0)
self.progressView.observedProgress = self.progress
}
}
var progressTintColor: UIColor? {
get {
return self.progressView.progressTintColor
}
set {
self.progressView.progressTintColor = newValue
}
}
private let progressView = UIProgressView(progressViewStyle: .default)
override var intrinsicContentSize: CGSize {
var size = super.intrinsicContentSize
size.width += 32
size.height += 4
return size
}
override func awakeFromNib()
{
super.awakeFromNib()
self.layer.masksToBounds = true
self.progressView.progress = 0
self.progressView.trackImage = UIImage()
self.progressView.isUserInteractionEnabled = false
self.addSubview(self.progressView)
}
override func layoutSubviews()
{
super.layoutSubviews()
self.progressView.bounds.size.width = self.bounds.width
let scale = self.bounds.height / self.progressView.bounds.height
self.progressView.transform = CGAffineTransform.identity.scaledBy(x: 1, y: scale)
self.progressView.center = CGPoint(x: self.bounds.midX, y: self.bounds.midY)
self.layer.cornerRadius = self.bounds.midY
}
}