diff --git a/CustomView.xcodeproj/project.pbxproj b/CustomView.xcodeproj/project.pbxproj index 73ab43a..5db43fc 100644 --- a/CustomView.xcodeproj/project.pbxproj +++ b/CustomView.xcodeproj/project.pbxproj @@ -311,7 +311,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = 34E95R7U23; + DEVELOPMENT_TEAM = 5HW626WUP4; INFOPLIST_FILE = CustomView/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", @@ -329,7 +329,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = 34E95R7U23; + DEVELOPMENT_TEAM = 5HW626WUP4; INFOPLIST_FILE = CustomView/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", diff --git a/CustomView.xcodeproj/project.xcworkspace/xcuserdata/liakassardjian.xcuserdatad/UserInterfaceState.xcuserstate b/CustomView.xcodeproj/project.xcworkspace/xcuserdata/liakassardjian.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000..4442550 Binary files /dev/null and b/CustomView.xcodeproj/project.xcworkspace/xcuserdata/liakassardjian.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/CustomView.xcodeproj/xcshareddata/xcschemes/CustomView.xcscheme b/CustomView.xcodeproj/xcshareddata/xcschemes/CustomView.xcscheme new file mode 100644 index 0000000..c731de9 --- /dev/null +++ b/CustomView.xcodeproj/xcshareddata/xcschemes/CustomView.xcscheme @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CustomView.xcodeproj/xcuserdata/liakassardjian.xcuserdatad/xcschemes/xcschememanagement.plist b/CustomView.xcodeproj/xcuserdata/liakassardjian.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..57f4dbb --- /dev/null +++ b/CustomView.xcodeproj/xcuserdata/liakassardjian.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + CustomView.xcscheme_^#shared#^_ + + orderHint + 0 + + + SuppressBuildableAutocreation + + 92949A482295DAF3008EE240 + + primary + + + + + diff --git a/CustomView/Base.lproj/Main.storyboard b/CustomView/Base.lproj/Main.storyboard index 4b8cb5b..0404d99 100644 --- a/CustomView/Base.lproj/Main.storyboard +++ b/CustomView/Base.lproj/Main.storyboard @@ -55,6 +55,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -67,7 +137,7 @@ - + @@ -93,16 +163,37 @@ - + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - + + + + + + @@ -124,7 +215,7 @@ - + @@ -162,7 +253,7 @@ - + @@ -205,15 +296,20 @@ - + + + + + + - + - + @@ -243,6 +339,33 @@ + + + + + + + + + + + + + + + @@ -393,8 +516,11 @@ + + + diff --git a/CustomView/Controllers/ProgressBarViewController.swift b/CustomView/Controllers/ProgressBarViewController.swift index 7c56694..894d028 100644 --- a/CustomView/Controllers/ProgressBarViewController.swift +++ b/CustomView/Controllers/ProgressBarViewController.swift @@ -14,6 +14,9 @@ class ProgressBarViewController: UITableViewController { @IBOutlet weak var widthSlider: UISlider! @IBOutlet weak var progressSlider: UISlider! @IBOutlet weak var targetSlider: UISlider! + @IBOutlet weak var targetLabel: UILabel! + @IBOutlet weak var progressLabel: UILabel! + @IBOutlet weak var colorSegmentedControl: UISegmentedControl! override func viewDidLoad() { super.viewDidLoad() @@ -21,6 +24,10 @@ class ProgressBarViewController: UITableViewController { self.progressBarView?.lineWidth = CGFloat(self.widthSlider.value) self.progressBarView?.progressValue = CGFloat(self.progressSlider.value) self.progressBarView?.targetValue = CGFloat(self.targetSlider.value) + + self.progressLabel.text = String(format: "%.2f", self.progressSlider.value * 100) + "%" + + self.targetLabel.text = String(format: "%.2f", self.targetSlider.value * 100) + "%" } override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) { @@ -35,10 +42,22 @@ class ProgressBarViewController: UITableViewController { @IBAction func progessChange(_ sender: Any) { self.progressBarView?.progressValue = CGFloat(self.progressSlider.value) + + self.progressLabel.text = String(format: "%.2f", self.progressSlider.value * 100) + "%" } @IBAction func targetChange(_ sender: Any) { self.progressBarView?.targetValue = CGFloat(self.targetSlider.value) + + self.targetLabel.text = String(format: "%.2f", self.targetSlider.value * 100) + "%" + } + + @IBAction func changeColor(_ sender: Any) { + if colorSegmentedControl.selectedSegmentIndex == 0 { + self.progressBarView?.progressColor = #colorLiteral(red: 1, green: 0.2527923882, blue: 1, alpha: 0.4874785959) + } else { + self.progressBarView?.progressColor = #colorLiteral(red: 0, green: 0.3593619466, blue: 1, alpha: 0.4874785959) + } } } diff --git a/CustomView/Controllers/ProgressCircleViewController.swift b/CustomView/Controllers/ProgressCircleViewController.swift index 266ef60..955c1b6 100644 --- a/CustomView/Controllers/ProgressCircleViewController.swift +++ b/CustomView/Controllers/ProgressCircleViewController.swift @@ -10,35 +10,83 @@ import UIKit class ProgressCircleViewController: UITableViewController { - @IBOutlet weak var progressCircleView: ProgressCircleView? + @IBOutlet weak var progressCircleView1: ProgressCircleView? + @IBOutlet weak var progressCircleView2: ProgressCircleView? + @IBOutlet weak var progressCircleView3: ProgressCircleView? @IBOutlet weak var widthSlider: UISlider! @IBOutlet weak var progressSlider: UISlider! @IBOutlet weak var targetSlider: UISlider! + @IBOutlet weak var targetLabel: UILabel! + @IBOutlet weak var progressLabel: UILabel! + @IBOutlet weak var colorSegmentedControl: UISegmentedControl! override func viewDidLoad() { super.viewDidLoad() - self.progressCircleView?.circleWidth = CGFloat(self.widthSlider.value) - self.progressCircleView?.progressValue = CGFloat(self.progressSlider.value) - self.progressCircleView?.targetValue = CGFloat(self.targetSlider.value) + self.progressCircleView1?.circleWidth = CGFloat(self.widthSlider.value) + self.progressCircleView1?.progressValue = CGFloat(self.progressSlider.value) + self.progressCircleView1?.targetValue = CGFloat(self.targetSlider.value) + + self.progressCircleView2?.circleWidth = CGFloat(self.widthSlider.value) + self.progressCircleView2?.progressValue = CGFloat(self.progressSlider.value) + self.progressCircleView2?.targetValue = CGFloat(self.targetSlider.value) + + self.progressCircleView3?.circleWidth = CGFloat(self.widthSlider.value) + self.progressCircleView3?.progressValue = CGFloat(self.progressSlider.value) + self.progressCircleView3?.targetValue = CGFloat(self.targetSlider.value) + + self.progressLabel.text = String(format: "%.2f", self.progressSlider.value * 100) + "%" + self.targetLabel.text = String(format: "%.2f", self.targetSlider.value * 100) + "%" + } override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) { super.viewWillTransition(to: size, with: coordinator) - self.progressCircleView?.setNeedsDisplay() + self.progressCircleView1?.setNeedsDisplay() + self.progressCircleView2?.setNeedsDisplay() + self.progressCircleView3?.setNeedsDisplay() } @IBAction func widthChange(_ sender: Any) { - self.progressCircleView?.circleWidth = CGFloat(self.widthSlider.value) + self.progressCircleView1?.circleWidth = CGFloat(self.widthSlider.value) + + self.progressCircleView2?.circleWidth = CGFloat(self.widthSlider.value) + + self.progressCircleView3?.circleWidth = CGFloat(self.widthSlider.value) } @IBAction func progessChange(_ sender: Any) { - self.progressCircleView?.progressValue = CGFloat(self.progressSlider.value) + self.progressCircleView1?.progressValue = CGFloat(self.progressSlider.value) + + self.progressCircleView2?.progressValue = CGFloat(self.progressSlider.value) + + self.progressCircleView3?.progressValue = CGFloat(self.progressSlider.value) + + self.progressLabel.text = String(format: "%.2f", self.progressSlider.value * 100) + "%" } @IBAction func targetChange(_ sender: Any) { - self.progressCircleView?.targetValue = CGFloat(self.targetSlider.value) + self.progressCircleView1?.targetValue = CGFloat(self.targetSlider.value) + + self.progressCircleView2?.targetValue = CGFloat(self.targetSlider.value) + + self.progressCircleView3?.targetValue = CGFloat(self.targetSlider.value) + + self.targetLabel.text = String(format: "%.2f", self.targetSlider.value * 100) + "%" + } + + + @IBAction func changeColor(_ sender: Any) { + if colorSegmentedControl.selectedSegmentIndex == 0 { + self.progressCircleView1?.progressColor = #colorLiteral(red: 1, green: 0.2527923882, blue: 1, alpha: 0.4874785959) + self.progressCircleView2?.progressColor = #colorLiteral(red: 1, green: 0.2527923882, blue: 1, alpha: 0.4874785959) + self.progressCircleView3?.progressColor = #colorLiteral(red: 1, green: 0.2527923882, blue: 1, alpha: 0.4874785959) + } else { + self.progressCircleView1?.progressColor = #colorLiteral(red: 0, green: 0.3593619466, blue: 1, alpha: 0.4874785959) + self.progressCircleView2?.progressColor = #colorLiteral(red: 0, green: 0.3593619466, blue: 1, alpha: 0.4874785959) + self.progressCircleView3?.progressColor = #colorLiteral(red: 0, green: 0.3593619466, blue: 1, alpha: 0.4874785959) + } } } diff --git a/CustomView/Views/ProgressBarView.swift b/CustomView/Views/ProgressBarView.swift index bfe9f6a..bb07c66 100644 --- a/CustomView/Views/ProgressBarView.swift +++ b/CustomView/Views/ProgressBarView.swift @@ -35,8 +35,13 @@ class ProgressBarView: UIView { var lineColor:UIColor = UIColor.black @IBInspectable var targetColor:UIColor = UIColor.blue + @IBInspectable - var progressColor:UIColor = UIColor.yellow + var progressColor:UIColor = UIColor.yellow { + didSet { + setNeedsDisplay() + } + } override func draw(_ rect: CGRect) { diff --git a/CustomView/Views/ProgressCircleView.swift b/CustomView/Views/ProgressCircleView.swift index 9eb1956..f733ff0 100644 --- a/CustomView/Views/ProgressCircleView.swift +++ b/CustomView/Views/ProgressCircleView.swift @@ -41,7 +41,11 @@ class ProgressCircleView: UIView { var circleColor:UIColor = UIColor.black @IBInspectable - var progressColor:UIColor = UIColor.yellow + var progressColor:UIColor = UIColor.yellow { + didSet { + setNeedsDisplay() + } + } @IBInspectable var targetColor:UIColor = UIColor.green