iOS 实现脉冲雷达以及动态增减元素 By Swift

开始之前


Swift经过Xcode6 Beta4一版更新后,基本上已经可以作为生产工具了,虽然有一些地方和ObjC比起来要“落后”一些,但也无伤大雅。这里就用Xcode6 Beta4+iOS SDK 8.0开发,如果用ObjC的话,只需把某些语法和调用方式替换一下就可以了。
最终效果:

这效果是从MOV文件转成GIF的,而且CSDN不支持大于2M的图片上传, 优酷地址

创建基本动画


这效果是从MOV文件转成GIF的,而且CSDN不支持大于2M的图片上传,优酷地址

创建一个Single View Application工程,再创建一个Swift文件,我创建的叫“PulsingRadarView”,目前结构为:


在ViewController里面持有一个Optional的PulsingRadarView的属性,表示可以为nil,然后在viewDidLoad里做一个简单的初始化工作:

class ViewController: UIViewController {

    var radarView: PulsingRadarView!

    override func viewDidLoad() {

        super.viewDidLoad()

        

        let radarSize = CGSizeMake(self.view.bounds.size.widthself.view.bounds.size.width)

        radarView = PulsingRadarView(frame: CGRectMake(0,(self.view.bounds.size.height-radarSize.height)/2,

            radarSize.width,radarSize.height))

        self.view.addSubview(radarView)

    }

    

    override func didReceiveMemoryWarning() {

        super.didReceiveMemoryWarning()

        // Dispose of any resources that can be recreated.

    }

}

雷达是圆形的,所以宽高都是self.view.bounds.size.width。

PulsingRadarView里面现在应该是空的,我们首先导入QuartzCore,因为后面动画部分会用到CALayer,然后重写drawRect方法:

override func drawRect(rect: CGRect) {

    UIColor.whiteColor().setFill()

    UIRectFill(rect)

    

    let pulsingCount = 6

    let animationDuration: Double = 4

    

    var animationLayer = CALayer()

    for var i = 0; i < pulsingCount; i++ {

        var pulsingLayer = CALayer()

        pulsingLayer.frame = CGRectMake(00, rect.size.width, rect.size.height)

        pulsingLayer.borderColor = UIColor.grayColor().CGColor

        pulsingLayer.borderWidth = 1

        pulsingLayer.cornerRadius = rect.size.height / 2

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值