iOS 高仿《掌上生活》app 动画
来源:互联网 发布:c语言屯屯屯烫烫烫 编辑:程序博客网 时间:2024/04/28 01:12
前几天突然看到了招商银行的《掌上生活》app ,看到她的首页的动画还有点意思,然后我就模仿写了一个高仿的掌上生活。
具体用到了重力感应和CABasicAnimation方法:
代码如下:
- #import "ViewController.h"
- #import <QuartzCore/QuartzCore.h>
- #define Accelerometer_Notice_Windage 0.03
- #define DegreesToRadians(x) (M_PI * x / 180.0)
- @interface ViewController (){
- UIView *rightDown;
- UIView *leftdown;
- UIView *rightUp;
- UIView *leftup;
- float lastAccelerationX;
- float lastAccelerationY;
- float lastAccelerationZ;
- NSMutableArray* animationViewArray;
- }
- @end
- @implementation ViewController
- - (void)viewDidLoad
- {
- [super viewDidLoad];
- // Do any additional setup after loading the view, typically from a nib.
- [[UIAccelerometer sharedAccelerometer] setDelegate:self];
- lastAccelerationX=0;
- lastAccelerationY=0;
- lastAccelerationZ=0;
- animationViewArray=[[NSMutableArray alloc]init];
- self.view.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"bg.png"]];
- UIImageView *headerBG=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 320, 46)];
- headerBG.image=[UIImage imageNamed:@"navigation.png"];
- headerBG.userInteractionEnabled=YES;
- [self.view addSubview:headerBG];
- [headerBG release];
- UIImageView *cmblogo=[[UIImageView alloc]initWithFrame:CGRectMake(10, 10, 88, 26)];
- cmblogo.image=[UIImage imageNamed:@"logo.png"];
- [headerBG addSubview:cmblogo];
- [cmblogo release];
- UIImageView *titleimage=[[UIImageView alloc]initWithFrame:CGRectMake(110, 10, 93, 26)];
- titleimage.image=[UIImage imageNamed:@"font.png"];
- [headerBG addSubview:titleimage];
- [titleimage release];
- UIButton *loginbutton=[UIButton buttonWithType:UIButtonTypeCustom];
- loginbutton.frame=CGRectMake(260,6, 50, 36);
- [loginbutton setBackgroundImage:[UIImage imageNamed:@"btm_nav.png"] forState:UIControlStateNormal];
- [loginbutton setBackgroundImage:[UIImage imageNamed:@"btm_nav.png"] forState:UIControlStateNormal];
- [loginbutton addTarget:self action:@selector(doanimation) forControlEvents:UIControlEventTouchUpInside];
- [loginbutton setTitle:@"登录" forState:UIControlStateNormal];
- [loginbutton setTitle:@"登录" forState:UIControlStateHighlighted];
- [headerBG addSubview:loginbutton];
- //便利生活view设置
- leftdown=[[UIImageView alloc]initWithFrame:CGRectMake(16,45,122,258)];
- leftdown.backgroundColor=[UIColor clearColor];
- [self.view addSubview:leftdown];
- [animationViewArray addObject:leftdown];
- [leftdown release];
- UIImageView *bianliImageButton=[[UIImageView alloc]initWithFrame:CGRectMake(5,164,122,91)];
- bianliImageButton.image=[UIImage imageNamed:@"note_bl.png"];
- [leftdown addSubview:bianliImageButton];
- [bianliImageButton release];
- UIImageView *bianlishenghuoImage=[[UIImageView alloc]initWithFrame:CGRectMake(60,0,10, 175)];
- bianlishenghuoImage.image=[UIImage imageNamed:@"rope_lang-.png"];
- [leftdown addSubview:bianlishenghuoImage];
- [bianlishenghuoImage release];
- //帐单还款view设置
- leftup=[[UIImageView alloc]initWithFrame:CGRectMake(48,45,122,148)];
- leftup.backgroundColor=[UIColor clearColor];
- [self.view addSubview:leftup];
- [animationViewArray addObject:leftup];
- [leftup release];
- UIImageView *zhangdanImageButton=[[UIImageView alloc]initWithFrame:CGRectMake(1,56,125,91)];
- zhangdanImageButton.image=[UIImage imageNamed:@"note_cx.png"];
- [leftup addSubview:zhangdanImageButton];
- [zhangdanImageButton release];
- UIImageView *zhangdanhaikuanImage=[[UIImageView alloc]initWithFrame:CGRectMake(60,0,10, 70)];
- zhangdanhaikuanImage.image=[UIImage imageNamed:@"rope.png"];
- [leftup addSubview:zhangdanhaikuanImage];
- [zhangdanhaikuanImage release];
- //用卡服务view设置
- rightDown=[[UIImageView alloc]initWithFrame:CGRectMake(160,45,122,251)];
- rightDown.backgroundColor=[UIColor clearColor];
- [self.view addSubview:rightDown];
- [animationViewArray addObject:rightDown];
- [rightDown release];
- UIImageView *yongkaImageButton=[[UIImageView alloc]initWithFrame:CGRectMake(5,163,122,90)];
- yongkaImageButton.image=[UIImage imageNamed:@"note_zs_a.png"];
- [rightDown addSubview:yongkaImageButton];
- [yongkaImageButton release];
- UIImageView *fuwuImage=[[UIImageView alloc]initWithFrame:CGRectMake(60,0,10,175)];
- fuwuImage.image=[UIImage imageNamed:@"rope_lang-.png"];
- [rightDown addSubview:fuwuImage];
- [fuwuImage release];
- //缤纷优惠view设置
- rightUp=[[UIImageView alloc]initWithFrame:CGRectMake(180,45,122,148)];
- rightUp.backgroundColor=[UIColor clearColor];
- [self.view addSubview:rightUp];
- [animationViewArray addObject:rightUp];
- [rightUp release];
- UIImageView *bfImageButton=[[UIImageView alloc]initWithFrame:CGRectMake(2,60,125,88)];
- bfImageButton.image=[UIImage imageNamed:@"note_bf.png"];
- [rightUp addSubview:bfImageButton];
- [bfImageButton release];
- UIImageView *youhuiImage=[[UIImageView alloc]initWithFrame:CGRectMake(58,0,10, 70)];
- youhuiImage.image=[UIImage imageNamed:@"rope_lang-.png"];
- [rightUp addSubview:youhuiImage];
- [youhuiImage release];
- UIImageView *arrowImage=[[UIImageView alloc]initWithFrame:CGRectMake(0,44,320, 19)];
- arrowImage.image=[UIImage imageNamed:@"arrowall2.png"];
- [self.view addSubview:arrowImage];
- [arrowImage release];
- }
- -(void)doanimation{
- NSArray* tempXPoint=[[NSArray alloc]initWithObjects:@"77",@"109",@"221",@"241",nil];
- for (int i=0; i<[animationViewArray count]; i++){
- [self doWiggle:[animationViewArray objectAtIndex:i] startPoint:[tempXPoint objectAtIndex:i]];
- }
- [tempXPoint release];
- }
- -(void)doWiggle:(UIView *)touchView startPoint:(NSString *)string{
- CALayer *touchedLayer = [touchView layer];
- float xpoint=[string floatValue];
- const CGFloat boneScale = 1;
- CATransform3D scale = CATransform3DMakeScale(boneScale , boneScale, 1);
- touchedLayer.position = CGPointMake(xpoint,45);
- touchedLayer.anchorPoint = CGPointMake(0.5, 0.0);
- touchedLayer.bounds = CGRectMake(0,0,122,88);
- touchedLayer.transform = scale;
- CABasicAnimation* r1 = [CABasicAnimation animationWithKeyPath:@"transform"];
- CATransform3D rot1 = CATransform3DMakeRotation(0.5, 0,0,1);
- rot1 = CATransform3DConcat(rot1, touchedLayer.transform);
- r1.toValue = [NSValue valueWithCATransform3D:rot1];
- r1.autoreverses = YES;
- r1.repeatCount = NO;
- r1.duration = 0.5;
- r1.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
- [touchedLayer addAnimation:r1 forKey:nil];
- }
- #pragma mark -
- #pragma mark UIAccelerometerDelegate
- -(void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
- // NSLog(@"==%f,%f", acceleration.x,lastAccelerationX);
- // NSLog(@"%f",ABS(lastAccelerationX-acceleration.x));
- if( ABS(lastAccelerationX-acceleration.x)>Accelerometer_Notice_Windage &&
- ABS(lastAccelerationY-acceleration.y)>Accelerometer_Notice_Windage &&
- ABS(lastAccelerationZ-acceleration.z)>Accelerometer_Notice_Windage )
- {
- NSLog(@"asdfasf");
- [self doanimation];
- }
- lastAccelerationX=acceleration.x;
- lastAccelerationY=acceleration.y;
- lastAccelerationZ=acceleration.z;
- }
效果:
效果:
源代码下载
其他功能还在完善,敬请期待!
0 0
- iOS 高仿《掌上生活》app 动画
- iOS 高仿《掌上生活》app 动画
- iOS 高仿<爱鲜蜂>APP
- iOS高仿“花田小憩”APP
- iOS高仿“随便走”APP
- 招商银行掌上生活APP安卓版占用大量空间
- 分享高仿掌上大学html UI模板
- ios自定义UITabBar-仿写掌上英雄联盟的UITabBar
- 高仿- 萌聚 app。
- 【IOS】高仿暴风视频播放器app源码
- iOS视频直播初窥:高仿<喵播APP>
- iOS视频直播初窥:高仿<喵播APP>
- iOS视频直播初窥:高仿<喵播APP>
- iOS视频直播初窥:高仿<喵播APP>
- iOS视频直播:高仿<喵播APP>
- iOS视频直播初窥:高仿<喵播APP>
- iOS视频直播初窥:高仿<喵播APP>
- iOS视频直播初窥:高仿<喵播APP>
- 【Android UI设计与开发】第06期:底部菜单栏(一)使用TabActivity实现底部菜单栏
- 【边做项目边学Android】异常处理:android.os.NetworkOnMainThreadException--多线程问题
- 含有CheckBox的ListView
- 手机应用软件安全性测试
- SYN攻击
- iOS 高仿《掌上生活》app 动画
- c++ 中的__declspec关键字
- Linux shell编程 基础正则表达式
- CSS3 主要知识点总结+HTML5 新增标签
- 野田圣子、希尔顿、松下幸之助,都喝过马桶水吗?
- 9月28日逛网站心得
- SAP MM模块 常用函数
- 关系型数据库的范式
- C#游戏开发快速入门教程Unity5.5教程