先给大家展示下效果图,如果大家感觉还不错,请参考实现代码。
效果图如下所示:
源码
https://github.com/YouXianMing/Swift-Animations
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
// // MixedColorProgressViewController.swift // Swift-Animations // // Created by YouXianMing on 16/8/21. // Copyright © 2016年 YouXianMing. All rights reserved. // import UIKit class MixedColorProgressViewController: NormalTitleViewController { private var upView : UIView! private var upLabel : UILabel! private var downView : UIView! private var downLabel : UILabel! private var timer : GCDTimer! = GCDTimer(inQueue: GCDQueue.mainQueue) override func setup() { super .setup() downView = UIView(frame: CGRectMake( 0 , 0 , 220 , 17 )) downView.center = (contentView?.middlePoint)! downView.layer.cornerRadius = 2 downView.backgroundColor = UIColor.whiteColor() downView.layer.masksToBounds = true contentView?.addSubview(downView) downLabel = UILabel(frame: downView.bounds) downLabel.font = UIFont.HelveticaNeueThin( 12.0 ) downLabel.text = "YouXianMing - iOS Programmer" downLabel.textColor = UIColor.redColor() downLabel.textAlignment = .Center downView.layer.borderWidth = 0.5 downView.layer.borderColor = UIColor.redColor().CGColor downView.addSubview(downLabel) upView = UIView(frame: CGRectMake( 0 , 0 , 220 , 17 )) upView.center = (contentView?.middlePoint)! upView.layer.cornerRadius = 2 upView.backgroundColor = UIColor.redColor() upView.layer.masksToBounds = true contentView?.addSubview(upView) upLabel = UILabel(frame: upView.bounds) upLabel.font = UIFont.HelveticaNeueThin( 12.0 ) upLabel.text = "YouXianMing - iOS Programmer" upLabel.textColor = UIColor.whiteColor() upLabel.textAlignment = .Center upView.addSubview(upLabel) weak var wself = self timer.event({ UIView.animateWithDuration( 0.5 , delay: 0 , usingSpringWithDamping: 3 , initialSpringVelocity: 0 , options: .CurveEaseInOut, animations: { wself?.upView.width = CGFloat(arc4random() % 220 ) }, completion: nil) }, timeIntervalWithSeconds: 1 , delayWithSeconds: 1 ) timer.start() } } |
以上所述是小编给大家介绍的Swift中通过叠加UILabel实现混合进度条的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
原文链接:http://www.cnblogs.com/YouXianMing/archive/2016/08/21/5793549.html