仪表盘 iOS开发

动画前
动画后

用两个imageView做框架实现数据仪表:

if(kViewWidth==kViewHeight) {

self.backImageView= [[UIImageViewalloc]initWithFrame:CGRectMake(0,0,kViewWidth,kViewWidth/2.0)];

}elseif(kViewHeight>kViewWidth){

self.backImageView= [[UIImageViewalloc]initWithFrame:CGRectMake(0,(kViewHeight-kViewWidth) /2.0,kViewWidth,kViewWidth/2.0)];

}else{

self.backImageView= [[UIImageViewalloc]initWithFrame:CGRectMake((kViewWidth-kViewHeight)/2.0,0,kViewHeight,kViewHeight/2.0)];

}

self.backImageView.contentMode=UIViewContentModeScaleAspectFill;

[selfaddSubview:self.backImageView];

self.pointerImageView= [[UIImageViewalloc]initWithFrame:CGRectMake(0,CGRectGetMaxY(self.backImageView.frame),CGRectGetWidth(self.backImageView.frame) /2.0,5)];

[self.backImageViewaddSubview:self.pointerImageView];

实现锚点以及动画:

CGRectoldFrame =self.dashView.pointerImageView.frame;

oldFrame.origin.y= oldFrame.origin.y-5;

self.dashView.pointerImageView.layer.anchorPoint=CGPointMake(1,1); // 锚点

self.dashView.pointerImageView.frame= oldFrame; // 恢复原有的frame

[UIViewanimateWithDuration:3animations:^{

CGAffineTransformtransform =CGAffineTransformMakeRotation(120*M_PI/180.0);

[self.dashView.pointerImageViewsetTransform:transform];

}];

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容