1.增加一个旋转动画
UIImage *loadImage = [UIImageimageNamed:@"detailLoad.png"];
UIImageView *loadImageView = [[[UIImageViewalloc]initWithImage:loadImage ]autorelease];
loadImageView.backgroundColor = [UIColorclearColor];
loadImageView.center =self.view.center;
loadImageView.tag =kLoadImageView;
//imageview旋转动画
CAKeyframeAnimation *theAnimation = [CAKeyframeAnimationanimation];
theAnimation.values = [NSArrayarrayWithObjects:
[NSValuevalueWithCATransform3D:CATransform3DMakeRotation(0,0,0,1)],
[NSValuevalueWithCATransform3D:CATransform3DMakeRotation(3.13,0,0,1)],
[NSValuevalueWithCATransform3D:CATransform3DMakeRotation(6.26,0,0,1)],
nil];
theAnimation.cumulative =YES;
theAnimation.removedOnCompletion =YES;
theAnimation.repeatCount =HUGE_VALF;
[theAnimation setSpeed:.15];
[loadImageView.layeraddAnimation:theAnimationforKey:@"transform"];
[self.viewaddSubview:loadImageView];
2.图片自动放大缩小
UIImage *infoImage = [UIImageimageNamed:@"detail_info_btn.png"];
UIButton *infoButton = [[UIButton alloc] initWithFrame:CGRectMake(0,0, infoImage.size.width, infoImage.size.height)];
[infoButton setTag:kInfoButtonTag];
[infoButtonsetImage:infoImageforState:UIControlStateNormal];
[infoButtonaddTarget:selfaction:@selector(infoButtonClicked)forControlEvents:UIControlEventTouchUpInside];
[selfaddSubview:infoButton];
[infoButton release];
//变大缩小动画
CAKeyframeAnimation* bob = [CAKeyframeAnimationanimationWithKeyPath:@"transform"];
CATransform3D r[3] = {CATransform3DMakeScale(1.0,1.0,1),
CATransform3DMakeScale(1.2,1.2,1)};
bob.values = [NSArrayarrayWithObjects:[NSValuevalueWithCATransform3D:r[0]],
[NSValuevalueWithCATransform3D:r[1]],[NSValuevalueWithCATransform3D:r[0]],nil];
bob.repeatCount =HUGE_VAL;
bob.duration =1.75;
bob.timingFunction = [CAMediaTimingFunctionfunctionWithName:kCAMediaTimingFunctionLinear];
[infoButton.layer addAnimation:bobforKey:nil];
3.截取当前屏幕作为 一张图
//开始截图
UIGraphicsBeginImageContext(self.view.bounds.size);
[self.view.layerrenderInContext:UIGraphicsGetCurrentContext()];
UIImage *img =UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
4.让view 以任意方式 push出来
- (void)contentViewAniamted:(NSString *)subtype :(UIView *)currentView{
CATransition *animation = [CATransitionanimation];
animation.duration =.3;
animation.timingFunction =UIViewAnimationCurveEaseInOut;
animation.fillMode = kCAFillModeForwards; //必须设定 不然不生效
animation.type = kCATransitionPush;
animation.subtype = subtype;
[currentView.layer addAnimation:animationforKey:@"animation"];
[self.viewaddSubview:currentView];
}
- (void)show
{
LeftView *currentLeft = [[[LeftViewalloc]initWithFrame:CGRectMake(0,0,600,566) ]autorelease];
currentLeft.center =self.view.center;
[selfcontentViewAniamted:kCATransitionFromTop :currentLeft];
// [self makeZSViewControllerInVisible:currentLeft];
[self.view addSubview:currentLeft];
}
5.图片以中心点 放大
//执行动画
[UIView beginAnimations:@""context:@""];
[UIView setAnimationDuration:1.0f];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
self.bigImageView.frame =CGRectMake(self.bigImageView.frame.origin.x - bigImage.size.width/2,self.bigImageView.frame.origin.y - bigImage.size.height/2, bigImage.size.width, bigImage.size.height);
[UIViewcommitAnimations];
CATransition *transition = [CATransitionanimation];
transition.duration =1;
transition.timingFunction = [CAMediaTimingFunctionfunctionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type =kCATransitionPush;
transition.subtype =kCATransitionFromLeft;
transition.delegate =self;
[self.navigationController.view.layeraddAnimation:transitionforKey:nil];
[self.navigationControllerpopViewControllerAnimated:NO];
//通过键盘出现或者消失 来控制view上移
//通过键盘出现或者消失 来控制view上移
NSNotificationCenter *center = [NSNotificationCenterdefaultCenter];
[center addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotificationobject:nil];
[center addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotificationobject:nil];
-(void)keyboardWillShow:(NSNotification *)note
{
if (self.contentView.frame.origin.y <0)return;
[UIViewanimateWithDuration:.4
animations:^(void) {
self.contentView.center =CGPointMake(self.contentView.center.x,self.contentView.center.y-300);
}];
}
-(void)keyboardWillHide:(NSNotification *)note
{
if (self.contentView.frame.origin.y ==0)return;
[UIViewanimateWithDuration:.4
animations:^(void) {
self.contentView.center =CGPointMake(self.contentView.center.x,self.contentView.center.y+300);
}];
}
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask,
YES);
NSString *basePath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;
NSString *contentJsonPath = [basePath stringByAppendingPathComponent:@"content_.json"];
NSString *thumsPath = [basePath stringByAppendingPathComponent:@"thumbs.png"];
NSString *imgPath = [basePath stringByAppendingPathComponent:@"img.png"];
//将json文件保存起来
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
[contentJson writeToFile:contentJsonPath atomically:YES encoding:NSUTF8StringEncoding error:NULL];
[thumbs writeToFile:thumsPath atomically:YES];
[img writeToFile:imgPath atomically:YES];
[pool drain];