示例代码

仪表盘 iOS开发

2017-09-13  本文已影响43人  想飞的菜鸟
动画前 动画后

用两个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];

}];

上一篇下一篇

猜你喜欢

热点阅读